X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/50af2fa94e9f3e3025723c3d0703cb90771f3fbd..a2783c48c8210410de72bd17a32ab72d0f364cde:/src/store/workbench/workbench-actions.ts diff --git a/src/store/workbench/workbench-actions.ts b/src/store/workbench/workbench-actions.ts index 1f31656a..aaf8f266 100644 --- a/src/store/workbench/workbench-actions.ts +++ b/src/store/workbench/workbench-actions.ts @@ -7,7 +7,7 @@ import { RootState } from "../store"; import { loadDetailsPanel } from '~/store/details-panel/details-panel-action'; import { snackbarActions } from '../snackbar/snackbar-actions'; import { loadFavoritePanel } from '../favorite-panel/favorite-panel-action'; -import { openProjectPanel, projectPanelActions } from '~/store/project-panel/project-panel-action'; +import { openProjectPanel, projectPanelActions, setIsProjectPanelTrashed } from '~/store/project-panel/project-panel-action'; import { activateSidePanelTreeItem, initSidePanelTree, SidePanelTreeCategory, loadSidePanelTreeProjects } from '../side-panel-tree/side-panel-tree-actions'; import { loadResource, updateResources } from '../resources/resources-actions'; import { favoritePanelActions } from '~/store/favorite-panel/favorite-panel-action'; @@ -122,6 +122,7 @@ export const loadProject = (uuid: string) => handleFirstTimeLoad( async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { const userUuid = services.authService.getUuid(); + dispatch(setIsProjectPanelTrashed(false)); if (userUuid) { if (userUuid !== uuid) { const match = await loadGroupContentsResource({ uuid, userUuid, services }); @@ -133,11 +134,12 @@ export const loadProject = (uuid: string) => }, SHARED: project => { dispatch(setSharedWithMeBreadcrumbs(uuid)); - dispatch(activateSidePanelTreeItem(SidePanelTreeCategory.SHARED_WITH_ME)); + dispatch(activateSidePanelTreeItem(uuid)); dispatch(finishLoadingProject(project)); }, TRASHED: project => { dispatch(setTrashBreadcrumbs(uuid)); + dispatch(setIsProjectPanelTrashed(true)); dispatch(activateSidePanelTreeItem(SidePanelTreeCategory.TRASH)); dispatch(finishLoadingProject(project)); } @@ -212,7 +214,7 @@ export const loadCollection = (uuid: string) => dispatch(collectionPanelActions.SET_COLLECTION(collection as CollectionResource)); dispatch(updateResources([collection])); dispatch(setSharedWithMeBreadcrumbs(collection.ownerUuid)); - dispatch(activateSidePanelTreeItem(SidePanelTreeCategory.SHARED_WITH_ME)); + dispatch(activateSidePanelTreeItem(collection.ownerUuid)); dispatch(loadCollectionFiles(collection.uuid)); }, TRASHED: collection => { @@ -256,12 +258,19 @@ export const updateCollection = (data: collectionUpdateActions.CollectionUpdateF export const copyCollection = (data: CopyFormDialogData) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { try { + const copyToProject = getResource(data.ownerUuid)(getState().resources); const collection = await dispatch(collectionCopyActions.copyCollection(data)); - dispatch(updateResources([collection])); - dispatch(reloadProjectMatchingUuid([collection.ownerUuid])); - dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Collection has been copied.', hideDuration: 2000 })); + if (copyToProject && collection) { + dispatch(reloadProjectMatchingUuid([copyToProject.uuid])); + dispatch(snackbarActions.OPEN_SNACKBAR({ + message: 'Collection has been copied.', + hideDuration: 3000, + kind: SnackbarKind.SUCCESS, + link: collection.ownerUuid + })); + } } catch (e) { - dispatch(snackbarActions.OPEN_SNACKBAR({ message: e.message, hideDuration: 2000 })); + dispatch(snackbarActions.OPEN_SNACKBAR({ message: e.message, hideDuration: 2000, kind: SnackbarKind.ERROR })); } };