21128: added optional allActionNames filter Arvados-DCO-1.1-Signed-off-by: Lisa Knox...
[arvados-workbench2.git] / src / components / multiselect-toolbar / ms-toolbar-action-filters.ts
index 7b786e5928aa02d62e9dfa4b60eddd35a3788607..9ad80f7dfc21606ab17c5f7144ca54406c06e995 100644 (file)
@@ -2,34 +2,65 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ResourceKind } from "models/resource";
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
-import { msCollectionActionSet } from "views-components/multiselect-toolbar/ms-collection-action-set";
-import { msProjectActionSet } from "views-components/multiselect-toolbar/ms-project-action-set";
-import { msProcessActionSet } from "views-components/multiselect-toolbar/ms-process-action-set";
-
-export type TMultiselectActionsFilters = Record<string, [ContextMenuActionSet, Set<string>]>;
-
-export const contextMenuActionConsts = {
-    MAKE_A_COPY: "Make a copy",
-    MOVE_TO: "Move to",
-    TOGGLE_TRASH_ACTION: "ToggleTrashAction",
-    COPY_TO_CLIPBOARD: "Copy to clipboard",
-    COPY_AND_RERUN_PROCESS: "Copy and re-run process",
-    REMOVE: "Remove",
-};
+import { ResourceKind } from 'models/resource';
+import { MultiSelectMenuActionSet, MultiSelectMenuActionNames } from 'views-components/multiselect-toolbar/ms-menu-actions';
+import { msCollectionActionSet } from 'views-components/multiselect-toolbar/ms-collection-action-set';
+import { msProjectActionSet } from 'views-components/multiselect-toolbar/ms-project-action-set';
+import { msProcessActionSet } from 'views-components/multiselect-toolbar/ms-process-action-set';
+import { msWorkflowActionSet } from 'views-components/multiselect-toolbar/ms-workflow-action-set';
+
+export type TMultiselectActionsFilters = Record<string, [MultiSelectMenuActionSet, Set<string>]>;
+
+const {
+    ADD_TO_FAVORITES,
+    ADD_TO_TRASH,
+    API_DETAILS,
+    COPY_AND_RERUN_PROCESS,
+    COPY_TO_CLIPBOARD,
+    DELETE_WORKFLOW,
+    EDIT_PPROJECT,
+    FREEZE_PROJECT,
+    MAKE_A_COPY,
+    MOVE_TO,
+    NEW_PROJECT,
+    OPEN_IN_NEW_TAB,
+    OPEN_W_3RD_PARTY_CLIENT,
+    REMOVE,
+    RUN_WORKFLOW,
+    SHARE,
+    VIEW_DETAILS,
+} = MultiSelectMenuActionNames;
+
+const allActionNames = (actionSet: MultiSelectMenuActionSet): Set<string> => new Set(actionSet[0].map((action) => action.name));
 
-const { MOVE_TO, TOGGLE_TRASH_ACTION, COPY_TO_CLIPBOARD, REMOVE, MAKE_A_COPY } = contextMenuActionConsts;
+//use allActionNames or filter manually below
 
-//these sets govern what actions are on the ms toolbar for each resource kind
-const projectMSActionsFilter = new Set([COPY_TO_CLIPBOARD, MOVE_TO, TOGGLE_TRASH_ACTION]);
 const processResourceMSActionsFilter = new Set([MOVE_TO, REMOVE]);
-const collectionMSActionsFilter = new Set([MAKE_A_COPY, MOVE_TO, TOGGLE_TRASH_ACTION]);
+const projectMSActionsFilter = new Set([
+    ADD_TO_FAVORITES,
+    ADD_TO_TRASH,
+    API_DETAILS,
+    COPY_AND_RERUN_PROCESS,
+    COPY_TO_CLIPBOARD,
+    EDIT_PPROJECT,
+    FREEZE_PROJECT,
+    MAKE_A_COPY,
+    MOVE_TO,
+    NEW_PROJECT,
+    OPEN_IN_NEW_TAB,
+    OPEN_W_3RD_PARTY_CLIENT,
+    REMOVE,
+    SHARE,
+    VIEW_DETAILS,
+]);
+const workflowMSActionFilter = new Set([OPEN_IN_NEW_TAB, COPY_TO_CLIPBOARD, VIEW_DETAILS, API_DETAILS, RUN_WORKFLOW, DELETE_WORKFLOW]);
 
-const { COLLECTION, PROJECT, PROCESS } = ResourceKind;
+const { COLLECTION, PROCESS, PROJECT, WORKFLOW } = ResourceKind;
 
 export const multiselectActionsFilters: TMultiselectActionsFilters = {
-    [PROJECT]: [msProjectActionSet, projectMSActionsFilter],
+    [COLLECTION]: [msCollectionActionSet, allActionNames(msCollectionActionSet)],
     [PROCESS]: [msProcessActionSet, processResourceMSActionsFilter],
-    [COLLECTION]: [msCollectionActionSet, collectionMSActionsFilter],
+    [PROJECT]: [msProjectActionSet, projectMSActionsFilter],
+    [WORKFLOW]: [msWorkflowActionSet, workflowMSActionFilter]
 };
+