21128: fixed mixed operators warning Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa...
[arvados-workbench2.git] / src / components / multiselect-toolbar / ms-toolbar-action-filters.ts
index de6cbc61d1e5565a8c6c9745e30ebca16a170182..01eba20050cf9de4603f1290bb10099aa7bfdb92 100644 (file)
@@ -2,88 +2,88 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { MultiSelectMenuActionSet, MultiSelectMenuActionNames } from 'views-components/multiselect-toolbar/ms-menu-actions';
-import { msCollectionActionSet } from 'views-components/multiselect-toolbar/ms-collection-action-set';
-import { msProjectActionSet, msReadOnlyProjectActionSet, msFilterGroupActionSet, msFrozenActionSet } from 'views-components/multiselect-toolbar/ms-project-action-set';
-import { msProcessActionSet } from 'views-components/multiselect-toolbar/ms-process-action-set';
-import { msWorkflowActionSet } from 'views-components/multiselect-toolbar/ms-workflow-action-set';
+import { MultiSelectMenuActionSet } from 'views-components/multiselect-toolbar/ms-menu-actions';
+import { msCollectionActionSet, msCommonCollectionActionFilter, msReadOnlyCollectionActionFilter } from 'views-components/multiselect-toolbar/ms-collection-action-set';
+import {
+    msProjectActionSet,
+    msCommonProjectActionFilter,
+    msReadOnlyProjectActionFilter,
+    msFilterGroupActionFilter,
+    msFrozenProjectActionFilter,
+} from 'views-components/multiselect-toolbar/ms-project-action-set';
+import { msProcessActionSet, processResourceMSActionsFilter } from 'views-components/multiselect-toolbar/ms-process-action-set';
+import { msWorkflowActionSet, msWorkflowActionFilter, msReadOnlyWorkflowActionFilter } from 'views-components/multiselect-toolbar/ms-workflow-action-set';
+import { ResourceKind } from 'models/resource';
 
-export type TMultiselectActionsFilters = Record<string, [MultiSelectMenuActionSet, Set<string>]>;
-
-const {
-    ADD_TO_FAVORITES,
-    ADD_TO_TRASH,
-    API_DETAILS,
-    COPY_AND_RERUN_PROCESS,
-    COPY_TO_CLIPBOARD,
-    DELETE_WORKFLOW,
-    EDIT_PPROJECT,
-    FREEZE_PROJECT,
-    MAKE_A_COPY,
-    MOVE_TO,
-    NEW_PROJECT,
-    OPEN_IN_NEW_TAB,
-    OPEN_W_3RD_PARTY_CLIENT,
-    REMOVE,
-    RUN_WORKFLOW,
-    SHARE,
-    VIEW_DETAILS,
-} = MultiSelectMenuActionNames;
-
-const allActionNames = (actionSet: MultiSelectMenuActionSet): Set<string> => new Set(actionSet[0].map((action) => action.name));
-
-//use allActionNames or filter manually below
-
-const processResourceMSActionsFilter = new Set([MOVE_TO, REMOVE]);
-const projectMSActionsFilter = new Set([
-    ADD_TO_FAVORITES,
-    ADD_TO_TRASH,
-    API_DETAILS,
-    COPY_AND_RERUN_PROCESS,
-    COPY_TO_CLIPBOARD,
-    EDIT_PPROJECT,
-    FREEZE_PROJECT,
-    MAKE_A_COPY,
-    MOVE_TO,
-    NEW_PROJECT,
-    OPEN_IN_NEW_TAB,
-    OPEN_W_3RD_PARTY_CLIENT,
-    REMOVE,
-    SHARE,
-    VIEW_DETAILS,
-]);
-const workflowMSActionFilter = new Set([OPEN_IN_NEW_TAB, COPY_TO_CLIPBOARD, VIEW_DETAILS, API_DETAILS, RUN_WORKFLOW, DELETE_WORKFLOW]);
+export enum msMenuResourceKind {
+    API_CLIENT_AUTHORIZATION = 'ApiClientAuthorization',
+    ROOT_PROJECT = 'RootProject',
+    PROJECT = 'Project',
+    FILTER_GROUP = 'FilterGroup',
+    READONLY_PROJECT = 'ReadOnlyProject',
+    FROZEN_PROJECT = 'FrozenProject',
+    FROZEN_PROJECT_ADMIN = 'FrozenProjectAdmin',
+    PROJECT_ADMIN = 'ProjectAdmin',
+    FILTER_GROUP_ADMIN = 'FilterGroupAdmin',
+    RESOURCE = 'Resource',
+    FAVORITE = 'Favorite',
+    TRASH = 'Trash',
+    COLLECTION_FILES = 'CollectionFiles',
+    COLLECTION_FILES_MULTIPLE = 'CollectionFilesMultiple',
+    READONLY_COLLECTION_FILES = 'ReadOnlyCollectionFiles',
+    READONLY_COLLECTION_FILES_MULTIPLE = 'ReadOnlyCollectionFilesMultiple',
+    COLLECTION_FILES_NOT_SELECTED = 'CollectionFilesNotSelected',
+    COLLECTION_FILE_ITEM = 'CollectionFileItem',
+    COLLECTION_DIRECTORY_ITEM = 'CollectionDirectoryItem',
+    READONLY_COLLECTION_FILE_ITEM = 'ReadOnlyCollectionFileItem',
+    READONLY_COLLECTION_DIRECTORY_ITEM = 'ReadOnlyCollectionDirectoryItem',
+    COLLECTION = 'Collection',
+    COLLECTION_ADMIN = 'CollectionAdmin',
+    READONLY_COLLECTION = 'ReadOnlyCollection',
+    OLD_VERSION_COLLECTION = 'OldVersionCollection',
+    TRASHED_COLLECTION = 'TrashedCollection',
+    PROCESS = 'Process',
+    RUNNING_PROCESS_ADMIN = 'RunningProcessAdmin',
+    PROCESS_ADMIN = 'ProcessAdmin',
+    RUNNING_PROCESS_RESOURCE = 'RunningProcessResource',
+    PROCESS_RESOURCE = 'ProcessResource',
+    READONLY_PROCESS_RESOURCE = 'ReadOnlyProcessResource',
+    PROCESS_LOGS = 'ProcessLogs',
+    REPOSITORY = 'Repository',
+    SSH_KEY = 'SshKey',
+    VIRTUAL_MACHINE = 'VirtualMachine',
+    KEEP_SERVICE = 'KeepService',
+    USER = 'User',
+    GROUPS = 'Group',
+    GROUP_MEMBER = 'GroupMember',
+    PERMISSION_EDIT = 'PermissionEdit',
+    LINK = 'Link',
+    WORKFLOW = 'Workflow',
+    READONLY_WORKFLOW = 'ReadOnlyWorkflow',
+    SEARCH_RESULTS = 'SearchResults',
+}
 
+const { COLLECTION, COLLECTION_ADMIN, READONLY_COLLECTION, PROCESS, PROCESS_ADMIN, PROJECT, PROJECT_ADMIN, FROZEN_PROJECT, FROZEN_PROJECT_ADMIN, READONLY_PROJECT, FILTER_GROUP, WORKFLOW, READONLY_WORKFLOW } = msMenuResourceKind;
 
-export enum msResourceKind {
-    API_CLIENT_AUTHORIZATION = "arvados#apiClientAuthorization",
-    COLLECTION = "arvados#collection",
-    CONTAINER = "arvados#container",
-    CONTAINER_REQUEST = "arvados#containerRequest",
-    GROUP = "arvados#group",
-    LINK = "arvados#link",
-    LOG = "arvados#log",
-    PROCESS = "arvados#containerRequest",
-    PROJECT = "arvados#group",
-    PROJECT_FROZEN = "arvados#group_frozen",
-    PROJECT_READONLY = "arvados#group_readonly",
-    REPOSITORY = "arvados#repository",
-    SSH_KEY = "arvados#authorizedKeys",
-    KEEP_SERVICE = "arvados#keepService",
-    USER = "arvados#user",
-    VIRTUAL_MACHINE = "arvados#virtualMachine",
-    WORKFLOW = "arvados#workflow",
-    NONE = "arvados#none"
-}
+export type TMultiselectActionsFilters = Record<string, [MultiSelectMenuActionSet, Set<string>]>;
 
-const { COLLECTION, PROCESS, PROJECT, PROJECT_FROZEN, PROJECT_READONLY, WORKFLOW } = msResourceKind;
+const allActionNames = (actionSet: MultiSelectMenuActionSet): Set<string> => new Set(actionSet[0].map((action) => action.name));
 
 export const multiselectActionsFilters: TMultiselectActionsFilters = {
-    [COLLECTION]: [msCollectionActionSet, allActionNames(msCollectionActionSet)],
+    [COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter],
+    [READONLY_COLLECTION]: [msCollectionActionSet, msReadOnlyCollectionActionFilter],
+    [ResourceKind.COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter],
+    [COLLECTION_ADMIN]: [msCollectionActionSet, allActionNames(msCollectionActionSet)],
     [PROCESS]: [msProcessActionSet, processResourceMSActionsFilter],
-    [PROJECT]: [msProjectActionSet, projectMSActionsFilter],
-    [PROJECT_FROZEN]: [msProjectActionSet, allActionNames(msFrozenActionSet)],
-    [PROJECT_READONLY]: [msProjectActionSet, allActionNames(msReadOnlyProjectActionSet)],
-    [WORKFLOW]: [msWorkflowActionSet, workflowMSActionFilter]
+    [ResourceKind.PROCESS]: [msProcessActionSet, processResourceMSActionsFilter],
+    [PROCESS_ADMIN]: [msProcessActionSet, processResourceMSActionsFilter],
+    [PROJECT]: [msProjectActionSet, msCommonProjectActionFilter],
+    [ResourceKind.PROJECT]: [msProjectActionSet, msCommonProjectActionFilter],
+    [PROJECT_ADMIN]: [msProjectActionSet, allActionNames(msProjectActionSet)],
+    [FROZEN_PROJECT]: [msProjectActionSet, msFrozenProjectActionFilter],
+    [FROZEN_PROJECT_ADMIN]: [msProjectActionSet, msFrozenProjectActionFilter], 
+    [READONLY_PROJECT]: [msProjectActionSet, msReadOnlyProjectActionFilter],
+    [FILTER_GROUP]: [msProjectActionSet, msFilterGroupActionFilter],
+    [WORKFLOW]: [msWorkflowActionSet, msWorkflowActionFilter],
+    [READONLY_WORKFLOW]: [msWorkflowActionSet, msReadOnlyWorkflowActionFilter],
 };
-