21128: wrote basic process menu Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox...
[arvados-workbench2.git] / src / views-components / multiselect-toolbar / ms-process-action-set.ts
index 820fc7999eeb0595c22fba64a7f64cccfd8e61f0..467da89973eeb57e4ff6f84fbb12e5a8e1e068b8 100644 (file)
@@ -2,36 +2,79 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
-import { MoveToIcon, RemoveIcon, ReRunProcessIcon } from "components/icon/icon";
+import { MoveToIcon, RemoveIcon, ReRunProcessIcon, OutputIcon, RenameIcon } from "components/icon/icon";
 import { openMoveProcessDialog } from "store/processes/process-move-actions";
 import { openCopyProcessDialog } from "store/processes/process-copy-actions";
 import { openRemoveProcessDialog } from "store/processes/processes-actions";
+import { MultiSelectMenuAction, MultiSelectMenuActionSet, MultiSelectMenuActionNames, msCommonActionSet } from "./ms-menu-actions";
+import { navigateToOutput } from "store/process-panel/process-panel-actions";
+import { openProcessUpdateDialog } from "store/processes/process-update-actions";
 
-export const msProcessActionSet: ContextMenuActionSet = [
+const msCopyAndRerunProcess: MultiSelectMenuAction = {
+    name: MultiSelectMenuActionNames.COPY_AND_RERUN_PROCESS,
+    icon: ReRunProcessIcon,
+    hasAlts: false,
+    isForMulti: false,
+    execute: (dispatch, resources) => {
+        for (const resource of [...resources]) {
+            dispatch<any>(openCopyProcessDialog(resource));
+        }
+    },
+}
+
+const msRemoveProcess: MultiSelectMenuAction = {
+    name: MultiSelectMenuActionNames.REMOVE,
+    icon: RemoveIcon,
+    hasAlts: false,
+    isForMulti: true,
+    execute: (dispatch, resources) => {
+        dispatch<any>(openRemoveProcessDialog(resources[0], resources.length));
+    },
+}
+
+const msMoveTo: MultiSelectMenuAction = {
+    name: MultiSelectMenuActionNames.MOVE_TO,
+    icon: MoveToIcon,
+    hasAlts: false,
+    isForMulti: true,
+    execute: (dispatch, resources) => {
+        dispatch<any>(openMoveProcessDialog(resources[0]));
+    },
+}
+
+const msViewOutputs: MultiSelectMenuAction = {
+    name: MultiSelectMenuActionNames.OUTPUTS,
+    icon: OutputIcon,
+    hasAlts: false,
+    isForMulti: false,
+    execute: (dispatch, resources) => {
+        if (resources[0].outputUuid) {
+            dispatch<any>(navigateToOutput(resources[0].outputUuid));
+        }
+    },
+}
+
+const msEditProcess: MultiSelectMenuAction = {
+    name: MultiSelectMenuActionNames.EDIT_PROCESS,
+    icon: RenameIcon,
+    hasAlts: false,
+    isForMulti: false,
+    execute: (dispatch, resources) => {
+        dispatch<any>(openProcessUpdateDialog(resources[0]));
+    },
+}
+
+export const msProcessActionSet: MultiSelectMenuActionSet = [
     [
-        {
-            icon: ReRunProcessIcon,
-            name: "Copy and re-run process",
-            execute: (dispatch, resources) => {
-                for (const resource of [...resources]) {
-                    dispatch<any>(openCopyProcessDialog(resource));
-                }
-            },
-        },
-        {
-            icon: MoveToIcon,
-            name: "Move to",
-            execute: (dispatch, resources) => {
-                dispatch<any>(openMoveProcessDialog(resources[0]));
-            },
-        },
-        {
-            name: "Remove",
-            icon: RemoveIcon,
-            execute: (dispatch, resources) => {
-                dispatch<any>(openRemoveProcessDialog(resources[0], resources.length));
-            },
-        },
-    ],
+        ...msCommonActionSet,
+        msCopyAndRerunProcess,
+        msRemoveProcess,
+        msMoveTo,
+        msViewOutputs,
+        msEditProcess
+    ]
 ];
+
+const { MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, ADD_TO_PUBLIC_FAVORITES, OUTPUTS, EDIT_PROCESS } = MultiSelectMenuActionNames
+
+export const msCommonProcessActionFilter = new Set([MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, ADD_TO_PUBLIC_FAVORITES, OUTPUTS, EDIT_PROCESS ]);