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',
23 ROOT_PROJECT_ADMIN = 'RootProjectAdmin',
25 FILTER_GROUP = 'FilterGroup',
26 READONLY_PROJECT = 'ReadOnlyProject',
27 FROZEN_PROJECT = 'FrozenProject',
28 FROZEN_PROJECT_ADMIN = 'FrozenProjectAdmin',
29 PROJECT_ADMIN = 'ProjectAdmin',
30 FILTER_GROUP_ADMIN = 'FilterGroupAdmin',
31 RESOURCE = 'Resource',
32 FAVORITE = 'Favorite',
34 COLLECTION_FILES = 'CollectionFiles',
35 COLLECTION_FILES_MULTIPLE = 'CollectionFilesMultiple',
36 READONLY_COLLECTION_FILES = 'ReadOnlyCollectionFiles',
37 READONLY_COLLECTION_FILES_MULTIPLE = 'ReadOnlyCollectionFilesMultiple',
38 COLLECTION_FILES_NOT_SELECTED = 'CollectionFilesNotSelected',
39 COLLECTION_FILE_ITEM = 'CollectionFileItem',
40 COLLECTION_DIRECTORY_ITEM = 'CollectionDirectoryItem',
41 READONLY_COLLECTION_FILE_ITEM = 'ReadOnlyCollectionFileItem',
42 READONLY_COLLECTION_DIRECTORY_ITEM = 'ReadOnlyCollectionDirectoryItem',
43 COLLECTION = 'Collection',
44 COLLECTION_ADMIN = 'CollectionAdmin',
45 READONLY_COLLECTION = 'ReadOnlyCollection',
46 OLD_VERSION_COLLECTION = 'OldVersionCollection',
47 TRASHED_COLLECTION = 'TrashedCollection',
49 RUNNING_PROCESS_ADMIN = 'RunningProcessAdmin',
50 PROCESS_ADMIN = 'ProcessAdmin',
51 RUNNING_PROCESS_RESOURCE = 'RunningProcessResource',
52 PROCESS_RESOURCE = 'ProcessResource',
53 READONLY_PROCESS_RESOURCE = 'ReadOnlyProcessResource',
54 PROCESS_LOGS = 'ProcessLogs',
55 REPOSITORY = 'Repository',
57 VIRTUAL_MACHINE = 'VirtualMachine',
58 KEEP_SERVICE = 'KeepService',
61 GROUP_MEMBER = 'GroupMember',
62 PERMISSION_EDIT = 'PermissionEdit',
64 WORKFLOW = 'Workflow',
65 READONLY_WORKFLOW = 'ReadOnlyWorkflow',
66 SEARCH_RESULTS = 'SearchResults',
74 RUNNING_PROCESS_RESOURCE,
75 RUNNING_PROCESS_ADMIN,
88 } = msMenuResourceKind;
90 export type TMultiselectActionsFilters = Record<string, [MultiSelectMenuActionSet, Set<string>]>;
92 const allActionNames = (actionSet: MultiSelectMenuActionSet): Set<string> => new Set(actionSet[0].map((action) => action.name));
94 export const multiselectActionsFilters: TMultiselectActionsFilters = {
95 [COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter],
96 [COLLECTION_ADMIN]: [msCollectionActionSet, allActionNames(msCollectionActionSet)],
97 [READONLY_COLLECTION]: [msCollectionActionSet, msReadOnlyCollectionActionFilter],
98 [ResourceKind.COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter],
100 [PROCESS_RESOURCE]: [msProcessActionSet, msCommonProcessActionFilter],
101 [PROCESS_ADMIN]: [msProcessActionSet, msAdminProcessActionFilter],
102 [RUNNING_PROCESS_RESOURCE]: [msProcessActionSet, msRunningProcessActionFilter],
103 [RUNNING_PROCESS_ADMIN]: [msProcessActionSet, allActionNames(msProcessActionSet)],
104 [ResourceKind.PROCESS]: [msProcessActionSet, msCommonProcessActionFilter],
106 [PROJECT]: [msProjectActionSet, msCommonProjectActionFilter],
107 [PROJECT_ADMIN]: [msProjectActionSet, allActionNames(msProjectActionSet)],
108 [FROZEN_PROJECT]: [msProjectActionSet, msFrozenProjectActionFilter],
109 [FROZEN_PROJECT_ADMIN]: [msProjectActionSet, msAdminFrozenProjectActionFilter],
110 [READONLY_PROJECT]: [msProjectActionSet, msReadOnlyProjectActionFilter],
111 [ResourceKind.PROJECT]: [msProjectActionSet, msCommonProjectActionFilter],
113 [FILTER_GROUP]: [msProjectActionSet, msFilterGroupActionFilter],
114 [FILTER_GROUP_ADMIN]: [msProjectActionSet, msAdminFilterGroupActionFilter],
116 [WORKFLOW]: [msWorkflowActionSet, msWorkflowActionFilter],
117 [READONLY_WORKFLOW]: [msWorkflowActionSet, msReadOnlyWorkflowActionFilter],