21700: Install Bundler system-wide in Rails postinst
[arvados.git] / services / workbench2 / 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 { MultiSelectMenuActionSet } from 'views-components/multiselect-toolbar/ms-menu-actions';
6 import { msCollectionActionSet, msCommonCollectionActionFilter, msReadOnlyCollectionActionFilter } from 'views-components/multiselect-toolbar/ms-collection-action-set';
7 import {
8     msProjectActionSet,
9     msCommonProjectActionFilter,
10     msReadOnlyProjectActionFilter,
11     msFilterGroupActionFilter,
12     msAdminFilterGroupActionFilter,
13     msFrozenProjectActionFilter,
14     msAdminFrozenProjectActionFilter
15 } from 'views-components/multiselect-toolbar/ms-project-action-set';
16 import { msProcessActionSet, msCommonProcessActionFilter, msAdminProcessActionFilter, msRunningProcessActionFilter } from 'views-components/multiselect-toolbar/ms-process-action-set';
17 import { msWorkflowActionSet, msWorkflowActionFilter, msReadOnlyWorkflowActionFilter } from 'views-components/multiselect-toolbar/ms-workflow-action-set';
18 import { ResourceKind } from 'models/resource';
19 import { ContextMenuKind } from 'views-components/context-menu/menu-item-sort';
20
21 const {
22     COLLECTION,
23     COLLECTION_ADMIN,
24     READONLY_COLLECTION,
25     PROCESS_RESOURCE,
26     RUNNING_PROCESS_RESOURCE,
27     RUNNING_PROCESS_ADMIN,
28     PROCESS_ADMIN,
29     PROJECT,
30     PROJECT_ADMIN,
31     FROZEN_PROJECT,
32     FROZEN_PROJECT_ADMIN,
33     READONLY_PROJECT,
34     FILTER_GROUP,
35     FILTER_GROUP_ADMIN,
36     WORKFLOW,
37     READONLY_WORKFLOW,
38 } = ContextMenuKind;
39
40 export type TMultiselectActionsFilters = Record<string, [MultiSelectMenuActionSet, Set<string>]>;
41
42 const allActionNames = (actionSet: MultiSelectMenuActionSet): Set<string> => new Set(actionSet[0].map((action) => action.name));
43
44 export const multiselectActionsFilters: TMultiselectActionsFilters = {
45     [COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter],
46     [COLLECTION_ADMIN]: [msCollectionActionSet, allActionNames(msCollectionActionSet)],
47     [READONLY_COLLECTION]: [msCollectionActionSet, msReadOnlyCollectionActionFilter],
48     [ResourceKind.COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter],
49
50     [PROCESS_RESOURCE]: [msProcessActionSet, msCommonProcessActionFilter],
51     [PROCESS_ADMIN]: [msProcessActionSet, msAdminProcessActionFilter],
52     [RUNNING_PROCESS_RESOURCE]: [msProcessActionSet, msRunningProcessActionFilter],
53     [RUNNING_PROCESS_ADMIN]: [msProcessActionSet, allActionNames(msProcessActionSet)],
54     [ResourceKind.PROCESS]: [msProcessActionSet, msCommonProcessActionFilter],
55     
56     [PROJECT]: [msProjectActionSet, msCommonProjectActionFilter],
57     [PROJECT_ADMIN]: [msProjectActionSet, allActionNames(msProjectActionSet)],
58     [FROZEN_PROJECT]: [msProjectActionSet, msFrozenProjectActionFilter],
59     [FROZEN_PROJECT_ADMIN]: [msProjectActionSet, msAdminFrozenProjectActionFilter], 
60     [READONLY_PROJECT]: [msProjectActionSet, msReadOnlyProjectActionFilter],
61     [ResourceKind.PROJECT]: [msProjectActionSet, msCommonProjectActionFilter],
62     
63     [FILTER_GROUP]: [msProjectActionSet, msFilterGroupActionFilter],
64     [FILTER_GROUP_ADMIN]: [msProjectActionSet, msAdminFilterGroupActionFilter],
65     
66     [WORKFLOW]: [msWorkflowActionSet, msWorkflowActionFilter],
67     [READONLY_WORKFLOW]: [msWorkflowActionSet, msReadOnlyWorkflowActionFilter],
68 };