X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3d5a1c29aad86476f2e789e1e54cabf8b4605aa2..5bf94d55b564bfbd052a61ab8219aa063b2a80c6:/services/workbench2/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts diff --git a/services/workbench2/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts b/services/workbench2/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts index 9145a82069..2b30525e56 100644 --- a/services/workbench2/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts +++ b/services/workbench2/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts @@ -2,34 +2,67 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { ResourceKind } from "models/resource"; -import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set"; -import { msCollectionActionSet } from "views-components/multiselect-toolbar/ms-collection-action-set"; -import { msProjectActionSet } from "views-components/multiselect-toolbar/ms-project-action-set"; -import { msProcessActionSet } from "views-components/multiselect-toolbar/ms-process-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, + msAdminFilterGroupActionFilter, + msFrozenProjectActionFilter, + msAdminFrozenProjectActionFilter +} from 'views-components/multiselect-toolbar/ms-project-action-set'; +import { msProcessActionSet, msCommonProcessActionFilter, msAdminProcessActionFilter, msRunningProcessActionFilter } 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'; +import { ContextMenuKind } from 'views-components/context-menu/menu-item-sort'; -export type TMultiselectActionsFilters = Record]>; +const { + COLLECTION, + COLLECTION_ADMIN, + READONLY_COLLECTION, + PROCESS_RESOURCE, + RUNNING_PROCESS_RESOURCE, + RUNNING_PROCESS_ADMIN, + PROCESS_ADMIN, + PROJECT, + PROJECT_ADMIN, + FROZEN_PROJECT, + FROZEN_PROJECT_ADMIN, + READONLY_PROJECT, + FILTER_GROUP, + FILTER_GROUP_ADMIN, + WORKFLOW, + READONLY_WORKFLOW, +} = ContextMenuKind; -export const contextMenuActionConsts = { - MAKE_A_COPY: "Make a copy", - MOVE_TO: "Move to", - TOGGLE_TRASH_ACTION: "ToggleTrashAction", - COPY_TO_CLIPBOARD: "Copy to clipboard", - COPY_AND_RERUN_PROCESS: "Copy and re-run process", - REMOVE: "Remove", -}; - -const { MOVE_TO, TOGGLE_TRASH_ACTION, REMOVE, MAKE_A_COPY } = contextMenuActionConsts; +export type TMultiselectActionsFilters = Record]>; -//these sets govern what actions are on the ms toolbar for each resource kind -const projectMSActionsFilter = new Set([MOVE_TO, TOGGLE_TRASH_ACTION]); -const processResourceMSActionsFilter = new Set([MOVE_TO, REMOVE]); -const collectionMSActionsFilter = new Set([MAKE_A_COPY, MOVE_TO, TOGGLE_TRASH_ACTION]); - -const { COLLECTION, PROJECT, PROCESS } = ResourceKind; +const allActionNames = (actionSet: MultiSelectMenuActionSet): Set => new Set(actionSet[0].map((action) => action.name)); export const multiselectActionsFilters: TMultiselectActionsFilters = { - [PROJECT]: [msProjectActionSet, projectMSActionsFilter], - [PROCESS]: [msProcessActionSet, processResourceMSActionsFilter], - [COLLECTION]: [msCollectionActionSet, collectionMSActionsFilter], + [COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter], + [COLLECTION_ADMIN]: [msCollectionActionSet, allActionNames(msCollectionActionSet)], + [READONLY_COLLECTION]: [msCollectionActionSet, msReadOnlyCollectionActionFilter], + [ResourceKind.COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter], + + [PROCESS_RESOURCE]: [msProcessActionSet, msCommonProcessActionFilter], + [PROCESS_ADMIN]: [msProcessActionSet, msAdminProcessActionFilter], + [RUNNING_PROCESS_RESOURCE]: [msProcessActionSet, msRunningProcessActionFilter], + [RUNNING_PROCESS_ADMIN]: [msProcessActionSet, allActionNames(msProcessActionSet)], + [ResourceKind.PROCESS]: [msProcessActionSet, msCommonProcessActionFilter], + + [PROJECT]: [msProjectActionSet, msCommonProjectActionFilter], + [PROJECT_ADMIN]: [msProjectActionSet, allActionNames(msProjectActionSet)], + [FROZEN_PROJECT]: [msProjectActionSet, msFrozenProjectActionFilter], + [FROZEN_PROJECT_ADMIN]: [msProjectActionSet, msAdminFrozenProjectActionFilter], + [READONLY_PROJECT]: [msProjectActionSet, msReadOnlyProjectActionFilter], + [ResourceKind.PROJECT]: [msProjectActionSet, msCommonProjectActionFilter], + + [FILTER_GROUP]: [msProjectActionSet, msFilterGroupActionFilter], + [FILTER_GROUP_ADMIN]: [msProjectActionSet, msAdminFilterGroupActionFilter], + + [WORKFLOW]: [msWorkflowActionSet, msWorkflowActionFilter], + [READONLY_WORKFLOW]: [msWorkflowActionSet, msReadOnlyWorkflowActionFilter], };