21128: fixed multitrash icon Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox...
[arvados-workbench2.git] / src / components / multiselect-toolbar / ms-toolbar-action-filters.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { ResourceKind } from 'models/resource';
6 import { MultiSelectMenuActionSet, MultiSelectMenuActionNames } from 'views-components/multiselect-toolbar/ms-menu-action-set';
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
11 export type TMultiselectActionsFilters = Record<string, [MultiSelectMenuActionSet, Set<string>]>;
12
13 const {
14     ADD_TO_FAVORITES,
15     ADD_TO_TRASH,
16     API_DETAILS,
17     COPY_AND_RERUN_PROCESS,
18     COPY_TO_CLIPBOARD,
19     EDIT_PPROJECT,
20     FREEZE_PROJECT,
21     MAKE_A_COPY,
22     MOVE_TO,
23     NEW_PROJECT,
24     OPEN_IN_NEW_TAB,
25     OPEN_W_3RD_PARTY_CLIENT,
26     REMOVE,
27     SHARE,
28     VIEW_DETAILS,
29 } = MultiSelectMenuActionNames;
30
31 //these sets govern what actions are on the ms toolbar for each resource kind
32 const projectMSActionsFilter = new Set([
33     ADD_TO_FAVORITES,
34     ADD_TO_TRASH,
35     API_DETAILS,
36     COPY_AND_RERUN_PROCESS,
37     COPY_TO_CLIPBOARD,
38     EDIT_PPROJECT,
39     FREEZE_PROJECT,
40     MAKE_A_COPY,
41     MOVE_TO,
42     NEW_PROJECT,
43     OPEN_IN_NEW_TAB,
44     OPEN_W_3RD_PARTY_CLIENT,
45     REMOVE,
46     SHARE,
47     VIEW_DETAILS,
48 ]);
49 const processResourceMSActionsFilter = new Set([MOVE_TO, REMOVE]);
50 const collectionMSActionsFilter = new Set([MAKE_A_COPY, MOVE_TO, ADD_TO_TRASH]);
51
52 const { COLLECTION, PROJECT, PROCESS } = ResourceKind;
53
54 export const multiselectActionsFilters: TMultiselectActionsFilters = {
55     [PROJECT]: [msProjectActionSet, projectMSActionsFilter],
56     [PROCESS]: [msProcessActionSet, processResourceMSActionsFilter],
57     [COLLECTION]: [msCollectionActionSet, collectionMSActionsFilter],
58 };