15768: fixed rename of single collection bug Arvados-DCO-1.1-Signed-off-by: Lisa...
[arvados-workbench2.git] / src / store / workbench / workbench-actions.ts
index 71fdc6aa88075146cbbb79683d999232efce55b7..bf21bd3fee018c61b4d8886d62137841af14e423 100644 (file)
@@ -8,12 +8,8 @@ import { getUserUuid } from "common/getuser";
 import { loadDetailsPanel } from "store/details-panel/details-panel-action";
 import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
 import { favoritePanelActions, loadFavoritePanel } from "store/favorite-panel/favorite-panel-action";
-import {
-    getProjectPanelCurrentUuid,
-    openProjectPanel,
-    projectPanelActions,
-    setIsProjectPanelTrashed,
-} from "store/project-panel/project-panel-action";
+import { getProjectPanelCurrentUuid, setIsProjectPanelTrashed } from "store/project-panel/project-panel-action";
+import { projectPanelActions } from "store/project-panel/project-panel-action-bind";
 import {
     activateSidePanelTreeItem,
     initSidePanelTree,
@@ -101,6 +97,7 @@ import { allProcessesPanelColumns } from "views/all-processes-panel/all-processe
 import { AdminMenuIcon } from "components/icon/icon";
 import { userProfileGroupsColumns } from "views/user-profile-panel/user-profile-panel-root";
 import { selectedToArray, selectedToKindSet } from "components/multiselect-toolbar/MultiselectToolbar";
+import { multiselectActions } from "store/multiselect/multiselect-actions";
 
 export const WORKBENCH_LOADING_SCREEN = "workbenchLoadingScreen";
 
@@ -331,7 +328,6 @@ export const moveProject =
                         kind: SnackbarKind.ERROR,
                     })
                 );
-                // }
             }
         }
         if (sourceUuid) await dispatch<any>(loadSidePanelTreeProjects(sourceUuid));
@@ -437,14 +433,18 @@ export const copyCollection = (data: CopyFormDialogData) => async (dispatch: Dis
         .filter(resource => resource.kind === ResourceKind.COLLECTION);
 
     for (const collection of collectionsToCopy) {
-        await copySingleCollection(collection as CollectionCopyResource);
+        await copySingleCollection({ ...collection, ownerUuid: data.ownerUuid } as CollectionCopyResource);
     }
 
     async function copySingleCollection(copyToProject: CollectionCopyResource) {
-        const newName = data.isSingle ? data.name : `Copy of: ${copyToProject.name}`;
+        const newName = data.isSingle || collectionsToCopy.length === 1 ? data.name : `Copy of: ${copyToProject.name}`;
         try {
             const collection = await dispatch<any>(
-                collectionCopyActions.copyCollection({ ...copyToProject, name: newName, isSingle: data.isSingle })
+                collectionCopyActions.copyCollection({
+                    ...copyToProject,
+                    name: newName,
+                    isSingle: collectionsToCopy.length === 1 ? true : data.isSingle,
+                })
             );
             if (copyToProject && collection) {
                 await dispatch<any>(reloadProjectMatchingUuid([copyToProject.uuid]));
@@ -456,6 +456,7 @@ export const copyCollection = (data: CopyFormDialogData) => async (dispatch: Dis
                         link: collection.ownerUuid,
                     })
                 );
+                dispatch<any>(multiselectActions.deselectOne(copyToProject.uuid));
             }
         } catch (e) {
             dispatch(
@@ -467,6 +468,7 @@ export const copyCollection = (data: CopyFormDialogData) => async (dispatch: Dis
             );
         }
     }
+    dispatch(projectPanelActions.REQUEST_ITEMS());
 };
 
 export const moveCollection =
@@ -780,7 +782,6 @@ export const loadGroupDetailsPanel = (groupUuid: string) =>
 
 const finishLoadingProject = (project: GroupContentsResource | string) => async (dispatch: Dispatch<any>) => {
     const uuid = typeof project === "string" ? project : project.uuid;
-    dispatch(openProjectPanel(uuid));
     dispatch(loadDetailsPanel(uuid));
     if (typeof project !== "string") {
         dispatch(updateResources([project]));