16118: Restricts UI elements when a collection is read-only.
[arvados-workbench2.git] / src / views-components / context-menu / action-sets / collection-files-action-set.ts
index c86f1d7d617770f30979345ededb2066b898d9d6..fc0139c86f7f42f227872225fe3ad138e18829cf 100644 (file)
@@ -4,21 +4,45 @@
 
 import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
 import { collectionPanelFilesAction, openMultipleFilesRemoveDialog } from "~/store/collection-panel/collection-panel-files/collection-panel-files-actions";
-import { openCollectionPartialCopyDialog } from '~/store/collections/collection-partial-copy-actions';
+import { openCollectionPartialCopyDialog, openCollectionPartialCopyToSelectedCollectionDialog } from '~/store/collections/collection-partial-copy-actions';
+import { DownloadCollectionFileAction } from "~/views-components/context-menu/actions/download-collection-file-action";
 
-export const collectionFilesActionSet: ContextMenuActionSet = [[{
-    name: "Select all",
-    execute: dispatch => dispatch(collectionPanelFilesAction.SELECT_ALL_COLLECTION_FILES())
-}, {
-    name: "Unselect all",
-    execute: dispatch => dispatch(collectionPanelFilesAction.UNSELECT_ALL_COLLECTION_FILES())
-}, {
-    name: "Remove selected",
-    execute: dispatch => dispatch(openMultipleFilesRemoveDialog())
-}, {
-    name: "Download selected",
-    execute: () => { return; }
-}, {
-    name: "Create a new collection with selected",
-    execute: dispatch => dispatch<any>(openCollectionPartialCopyDialog())
-}]];
+export const readOnlyCollectionFilesActionSet: ContextMenuActionSet = [[
+    {
+        name: "Select all",
+        execute: dispatch => {
+            dispatch(collectionPanelFilesAction.SELECT_ALL_COLLECTION_FILES());
+        }
+    },
+    {
+        name: "Unselect all",
+        execute: dispatch => {
+            dispatch(collectionPanelFilesAction.UNSELECT_ALL_COLLECTION_FILES());
+        }
+    },
+    {
+        component: DownloadCollectionFileAction,
+        execute: () => { return; }
+    },
+    {
+        name: "Create a new collection with selected",
+        execute: dispatch => {
+            dispatch<any>(openCollectionPartialCopyDialog());
+        }
+    },
+    {
+        name: "Copy selected into the collection",
+        execute: dispatch => {
+            dispatch<any>(openCollectionPartialCopyToSelectedCollectionDialog());
+        }
+    }
+]];
+
+export const collectionFilesActionSet: ContextMenuActionSet = readOnlyCollectionFilesActionSet.concat([[
+    {
+        name: "Remove selected",
+        execute: dispatch => {
+            dispatch(openMultipleFilesRemoveDialog());
+        }
+    },
+]]);