X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/02370859e71ada20e2247df02958a9c532fe614b..d861bd54089e9279cd03b2e4561869ee877b9559:/src/store/workbench/workbench-actions.ts?ds=sidebyside diff --git a/src/store/workbench/workbench-actions.ts b/src/store/workbench/workbench-actions.ts index 6ea30855..03d65f62 100644 --- a/src/store/workbench/workbench-actions.ts +++ b/src/store/workbench/workbench-actions.ts @@ -88,7 +88,7 @@ import { apiClientAuthorizationPanelColumns } from 'views/api-client-authorizati import * as groupPanelActions from 'store/groups-panel/groups-panel-actions'; import { groupsPanelColumns } from 'views/groups-panel/groups-panel'; import * as groupDetailsPanelActions from 'store/group-details-panel/group-details-panel-actions'; -import { groupDetailsPanelColumns } from 'views/group-details-panel/group-details-panel'; +import { groupDetailsMembersPanelColumns, groupDetailsPermissionsPanelColumns } from 'views/group-details-panel/group-details-panel'; import { DataTableFetchMode } from "components/data-table/data-table"; import { loadPublicFavoritePanel, publicFavoritePanelActions } from 'store/public-favorites-panel/public-favorites-action'; import { publicFavoritePanelColumns } from 'views/public-favorites-panel/public-favorites-panel'; @@ -136,7 +136,8 @@ export const loadWorkbench = () => dispatch(searchResultsPanelActions.SET_COLUMNS({ columns: searchResultsPanelColumns })); dispatch(userBindedActions.SET_COLUMNS({ columns: userPanelColumns })); dispatch(groupPanelActions.GroupsPanelActions.SET_COLUMNS({ columns: groupsPanelColumns })); - dispatch(groupDetailsPanelActions.GroupDetailsPanelActions.SET_COLUMNS({ columns: groupDetailsPanelColumns })); + dispatch(groupDetailsPanelActions.GroupMembersPanelActions.SET_COLUMNS({ columns: groupDetailsMembersPanelColumns })); + dispatch(groupDetailsPanelActions.GroupPermissionsPanelActions.SET_COLUMNS({ columns: groupDetailsPermissionsPanelColumns })); dispatch(linkPanelActions.SET_COLUMNS({ columns: linkPanelColumns })); dispatch(apiClientAuthorizationsActions.SET_COLUMNS({ columns: apiClientAuthorizationPanelColumns })); dispatch(collectionsContentAddressActions.SET_COLUMNS({ columns: collectionContentAddressPanelColumns })); @@ -193,35 +194,34 @@ export const loadProject = (uuid: string) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { const userUuid = getUserUuid(getState()); dispatch(setIsProjectPanelTrashed(false)); - if (userUuid) { - if (extractUuidKind(uuid) === ResourceKind.USER && userUuid !== uuid) { - // Load another users home projects - dispatch(finishLoadingProject(uuid)); - } else if (userUuid !== uuid) { - const match = await loadGroupContentsResource({ uuid, userUuid, services }); - match({ - OWNED: async project => { - await dispatch(activateSidePanelTreeItem(uuid)); - dispatch(setSidePanelBreadcrumbs(uuid)); - dispatch(finishLoadingProject(project)); - }, - SHARED: project => { - dispatch(setSharedWithMeBreadcrumbs(uuid)); - dispatch(activateSidePanelTreeItem(uuid)); - dispatch(finishLoadingProject(project)); - }, - TRASHED: project => { - dispatch(setTrashBreadcrumbs(uuid)); - dispatch(setIsProjectPanelTrashed(true)); - dispatch(activateSidePanelTreeItem(SidePanelTreeCategory.TRASH)); - dispatch(finishLoadingProject(project)); - } - }); - } else { - await dispatch(activateSidePanelTreeItem(userUuid)); - dispatch(setSidePanelBreadcrumbs(userUuid)); - dispatch(finishLoadingProject(userUuid)); - } + if (!userUuid) { + return; + } + if (extractUuidKind(uuid) === ResourceKind.USER && userUuid !== uuid) { + // Load another users home projects + dispatch(finishLoadingProject(uuid)); + } else if (userUuid !== uuid) { + await dispatch(finishLoadingProject(uuid)); + const match = await loadGroupContentsResource({ uuid, userUuid, services }); + match({ + OWNED: async () => { + await dispatch(activateSidePanelTreeItem(uuid)); + dispatch(setSidePanelBreadcrumbs(uuid)); + }, + SHARED: async () => { + await dispatch(activateSidePanelTreeItem(uuid)); + dispatch(setSharedWithMeBreadcrumbs(uuid)); + }, + TRASHED: async () => { + await dispatch(activateSidePanelTreeItem(SidePanelTreeCategory.TRASH)); + dispatch(setTrashBreadcrumbs(uuid)); + dispatch(setIsProjectPanelTrashed(true)); + } + }); + } else { + await dispatch(finishLoadingProject(userUuid)); + await dispatch(activateSidePanelTreeItem(userUuid)); + dispatch(setSidePanelBreadcrumbs(userUuid)); } }); @@ -271,6 +271,20 @@ export const updateProject = (data: projectUpdateActions.ProjectUpdateFormDialog } }; +export const updateGroup = (data: projectUpdateActions.ProjectUpdateFormDialogData) => + async (dispatch: Dispatch) => { + const updatedGroup = await dispatch(groupPanelActions.updateGroup(data)); + if (updatedGroup) { + dispatch(snackbarActions.OPEN_SNACKBAR({ + message: "Group has been successfully updated.", + hideDuration: 2000, + kind: SnackbarKind.SUCCESS + })); + await dispatch(loadSidePanelTreeProjects(updatedGroup.ownerUuid)); + dispatch(reloadProjectMatchingUuid([updatedGroup.ownerUuid, updatedGroup.uuid])); + } + }; + export const loadCollection = (uuid: string) => handleFirstTimeLoad( async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {