21128: renamed overloaded context menu types Arvados-DCO-1.1-Signed-off-by: Lisa...
[arvados-workbench2.git] / src / views-components / context-menu / action-sets / collection-files-item-action-set.ts
index 03674665ded13609382a580705284e4d4c69e415..5f767b485a28f604b582acad1a48d5298dbac1db 100644 (file)
@@ -2,15 +2,37 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from '../context-menu-action-set';
-import { RemoveIcon, RenameIcon } from 'components/icon/icon';
-import { DownloadCollectionFileAction } from '../actions/download-collection-file-action';
-import { openFileRemoveDialog, openRenameFileDialog } from 'store/collection-panel/collection-panel-files/collection-panel-files-actions';
-import { CollectionFileViewerAction } from 'views-components/context-menu/actions/collection-file-viewer-action';
-import { CollectionCopyToClipboardAction } from '../actions/collection-copy-to-clipboard-action';
+import { ContextMenuActionItemSet } from "../context-menu-action-set";
+import { FileCopyIcon, FileMoveIcon, RemoveIcon, RenameIcon } from "components/icon/icon";
+import { DownloadCollectionFileAction } from "../actions/download-collection-file-action";
+import { openFileRemoveDialog, openRenameFileDialog } from "store/collection-panel/collection-panel-files/collection-panel-files-actions";
+import { CollectionFileViewerAction } from "views-components/context-menu/actions/collection-file-viewer-action";
+import { CollectionCopyToClipboardAction } from "../actions/collection-copy-to-clipboard-action";
+import {
+    openCollectionPartialMoveToExistingCollectionDialog,
+    openCollectionPartialMoveToNewCollectionDialog,
+} from "store/collections/collection-partial-move-actions";
+import {
+    openCollectionPartialCopyToExistingCollectionDialog,
+    openCollectionPartialCopyToNewCollectionDialog,
+} from "store/collections/collection-partial-copy-actions";
 
-export const readOnlyCollectionDirectoryItemActionSet: ContextMenuActionSet = [
+export const readOnlyCollectionDirectoryItemActionSet: ContextMenuActionItemSet = [
     [
+        {
+            name: "Copy item into new collection",
+            icon: FileCopyIcon,
+            execute: (dispatch, resources) => {
+                dispatch<any>(openCollectionPartialCopyToNewCollectionDialog(resources[0]));
+            },
+        },
+        {
+            name: "Copy item into existing collection",
+            icon: FileCopyIcon,
+            execute: (dispatch, resources) => {
+                dispatch<any>(openCollectionPartialCopyToExistingCollectionDialog(resources[0]));
+            },
+        },
         {
             component: CollectionFileViewerAction,
             execute: () => {
@@ -26,7 +48,7 @@ export const readOnlyCollectionDirectoryItemActionSet: ContextMenuActionSet = [
     ],
 ];
 
-export const readOnlyCollectionFileItemActionSet: ContextMenuActionSet = [
+export const readOnlyCollectionFileItemActionSet: ContextMenuActionItemSet = [
     [
         {
             component: DownloadCollectionFileAction,
@@ -38,33 +60,45 @@ export const readOnlyCollectionFileItemActionSet: ContextMenuActionSet = [
     ],
 ];
 
-const writableActionSet: ContextMenuActionSet = [
+const writableActionSet: ContextMenuActionItemSet = [
     [
         {
-            name: 'Rename',
+            name: "Move item into new collection",
+            icon: FileMoveIcon,
+            execute: (dispatch, resources) => {
+                dispatch<any>(openCollectionPartialMoveToNewCollectionDialog(resources[0]));
+            },
+        },
+        {
+            name: "Move item into existing collection",
+            icon: FileMoveIcon,
+            execute: (dispatch, resources) => {
+                dispatch<any>(openCollectionPartialMoveToExistingCollectionDialog(resources[0]));
+            },
+        },
+        {
+            name: "Rename",
             icon: RenameIcon,
             execute: (dispatch, resources) => {
-                resources.forEach((resource) =>
-                    dispatch<any>(
-                        openRenameFileDialog({
-                            name: resource.name,
-                            id: resource.uuid,
-                            path: resource.uuid.split('/').slice(1).join('/'),
-                        })
-                    )
+                dispatch<any>(
+                    openRenameFileDialog({
+                        name: resources[0].name,
+                        id: resources[0].uuid,
+                        path: resources[0].uuid.split("/").slice(1).join("/"),
+                    })
                 );
             },
         },
         {
-            name: 'Remove',
+            name: "Remove",
             icon: RemoveIcon,
             execute: (dispatch, resources) => {
-                resources.forEach((resource) => dispatch<any>(openFileRemoveDialog(resource.uuid)));
+                dispatch<any>(openFileRemoveDialog(resources[0].uuid));
             },
         },
     ],
 ];
 
-export const collectionDirectoryItemActionSet: ContextMenuActionSet = readOnlyCollectionDirectoryItemActionSet.concat(writableActionSet);
+export const collectionDirectoryItemActionSet: ContextMenuActionItemSet = readOnlyCollectionDirectoryItemActionSet.concat(writableActionSet);
 
-export const collectionFileItemActionSet: ContextMenuActionSet = readOnlyCollectionFileItemActionSet.concat(writableActionSet);
+export const collectionFileItemActionSet: ContextMenuActionItemSet = readOnlyCollectionFileItemActionSet.concat(writableActionSet);