1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { ResourceKind } from 'models/resource';
6 import { MultiSelectMenuActionSet, MultiSelectMenuActionNames } from 'views-components/multiselect-toolbar/ms-menu-actions';
7 import { msCollectionActionSet } from 'views-components/multiselect-toolbar/ms-collection-action-set';
8 import { msProjectActionSet } from 'views-components/multiselect-toolbar/ms-project-action-set';
9 import { msProcessActionSet } from 'views-components/multiselect-toolbar/ms-process-action-set';
10 import { msWorkflowActionSet } from 'views-components/multiselect-toolbar/ms-workflow-action-set';
12 export type TMultiselectActionsFilters = Record<string, [MultiSelectMenuActionSet, Set<string>]>;
18 COPY_AND_RERUN_PROCESS,
27 OPEN_W_3RD_PARTY_CLIENT,
32 } = MultiSelectMenuActionNames;
34 const allActionNames = (actionSet: MultiSelectMenuActionSet): Set<string> => new Set(actionSet[0].map((action) => action.name));
36 //use allActionNames or filter manually below
38 const processResourceMSActionsFilter = new Set([MOVE_TO, REMOVE]);
39 const projectMSActionsFilter = new Set([
43 COPY_AND_RERUN_PROCESS,
51 OPEN_W_3RD_PARTY_CLIENT,
56 const workflowMSActionFilter = new Set([OPEN_IN_NEW_TAB, COPY_TO_CLIPBOARD, VIEW_DETAILS, API_DETAILS, RUN_WORKFLOW, DELETE_WORKFLOW]);
58 const { COLLECTION, PROCESS, PROJECT, WORKFLOW } = ResourceKind;
60 export const multiselectActionsFilters: TMultiselectActionsFilters = {
61 [COLLECTION]: [msCollectionActionSet, allActionNames(msCollectionActionSet)],
62 [PROCESS]: [msProcessActionSet, processResourceMSActionsFilter],
63 [PROJECT]: [msProjectActionSet, projectMSActionsFilter],
64 [WORKFLOW]: [msWorkflowActionSet, workflowMSActionFilter]