1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
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';
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';
20 export enum msMenuResourceKind {
21 API_CLIENT_AUTHORIZATION = 'ApiClientAuthorization',
22 ROOT_PROJECT = 'RootProject',
24 FILTER_GROUP = 'FilterGroup',
25 READONLY_PROJECT = 'ReadOnlyProject',
26 FROZEN_PROJECT = 'FrozenProject',
27 FROZEN_PROJECT_ADMIN = 'FrozenProjectAdmin',
28 PROJECT_ADMIN = 'ProjectAdmin',
29 FILTER_GROUP_ADMIN = 'FilterGroupAdmin',
30 RESOURCE = 'Resource',
31 FAVORITE = 'Favorite',
33 COLLECTION_FILES = 'CollectionFiles',
34 COLLECTION_FILES_MULTIPLE = 'CollectionFilesMultiple',
35 READONLY_COLLECTION_FILES = 'ReadOnlyCollectionFiles',
36 READONLY_COLLECTION_FILES_MULTIPLE = 'ReadOnlyCollectionFilesMultiple',
37 COLLECTION_FILES_NOT_SELECTED = 'CollectionFilesNotSelected',
38 COLLECTION_FILE_ITEM = 'CollectionFileItem',
39 COLLECTION_DIRECTORY_ITEM = 'CollectionDirectoryItem',
40 READONLY_COLLECTION_FILE_ITEM = 'ReadOnlyCollectionFileItem',
41 READONLY_COLLECTION_DIRECTORY_ITEM = 'ReadOnlyCollectionDirectoryItem',
42 COLLECTION = 'Collection',
43 COLLECTION_ADMIN = 'CollectionAdmin',
44 READONLY_COLLECTION = 'ReadOnlyCollection',
45 OLD_VERSION_COLLECTION = 'OldVersionCollection',
46 TRASHED_COLLECTION = 'TrashedCollection',
48 RUNNING_PROCESS_ADMIN = 'RunningProcessAdmin',
49 PROCESS_ADMIN = 'ProcessAdmin',
50 RUNNING_PROCESS_RESOURCE = 'RunningProcessResource',
51 PROCESS_RESOURCE = 'ProcessResource',
52 READONLY_PROCESS_RESOURCE = 'ReadOnlyProcessResource',
53 PROCESS_LOGS = 'ProcessLogs',
54 REPOSITORY = 'Repository',
56 VIRTUAL_MACHINE = 'VirtualMachine',
57 KEEP_SERVICE = 'KeepService',
60 GROUP_MEMBER = 'GroupMember',
61 PERMISSION_EDIT = 'PermissionEdit',
63 WORKFLOW = 'Workflow',
64 READONLY_WORKFLOW = 'ReadOnlyWorkflow',
65 SEARCH_RESULTS = 'SearchResults',
73 RUNNING_PROCESS_RESOURCE,
74 RUNNING_PROCESS_ADMIN,
85 } = msMenuResourceKind;
87 export type TMultiselectActionsFilters = Record<string, [MultiSelectMenuActionSet, Set<string>]>;
89 const allActionNames = (actionSet: MultiSelectMenuActionSet): Set<string> => new Set(actionSet[0].map((action) => action.name));
91 export const multiselectActionsFilters: TMultiselectActionsFilters = {
92 [COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter],
93 [COLLECTION_ADMIN]: [msCollectionActionSet, allActionNames(msCollectionActionSet)],
94 [READONLY_COLLECTION]: [msCollectionActionSet, msReadOnlyCollectionActionFilter],
95 [ResourceKind.COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter],
97 [PROCESS_RESOURCE]: [msProcessActionSet, msCommonProcessActionFilter],
98 [PROCESS_ADMIN]: [msProcessActionSet, msAdminProcessActionFilter],
99 [RUNNING_PROCESS_RESOURCE]: [msProcessActionSet, msRunningProcessActionFilter],
100 [RUNNING_PROCESS_ADMIN]: [msProcessActionSet, allActionNames(msProcessActionSet)],
101 [ResourceKind.PROCESS]: [msProcessActionSet, msCommonProcessActionFilter],
103 [PROJECT]: [msProjectActionSet, msCommonProjectActionFilter],
104 [PROJECT_ADMIN]: [msProjectActionSet, allActionNames(msProjectActionSet)],
105 [FROZEN_PROJECT]: [msProjectActionSet, msFrozenProjectActionFilter],
106 [FROZEN_PROJECT_ADMIN]: [msProjectActionSet, msAdminFrozenProjectActionFilter],
107 [READONLY_PROJECT]: [msProjectActionSet, msReadOnlyProjectActionFilter],
108 [ResourceKind.PROJECT]: [msProjectActionSet, msCommonProjectActionFilter],
110 [FILTER_GROUP]: [msProjectActionSet, msFilterGroupActionFilter],
111 [FILTER_GROUP_ADMIN]: [msProjectActionSet, msAdminFilterGroupActionFilter],
113 [WORKFLOW]: [msWorkflowActionSet, msWorkflowActionFilter],
114 [READONLY_WORKFLOW]: [msWorkflowActionSet, msReadOnlyWorkflowActionFilter],