//
// 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 { UserDetailsActionSet } from 'views-components/multiselect-toolbar/ms-user-details-action-set';
+import { ResourceKind } from 'models/resource';
+import { ContextMenuKind } from 'views-components/context-menu/menu-item-sort';
-export type TMultiselectActionsFilters = Record<string, [ContextMenuActionSet, Set<string>]>;
+const {
+ COLLECTION,
+ COLLECTION_ADMIN,
+ READONLY_COLLECTION,
+ PROCESS_RESOURCE,
+ RUNNING_PROCESS_RESOURCE,
+ RUNNING_PROCESS_ADMIN,
+ PROCESS_ADMIN,
+ PROJECT,
+ ROOT_PROJECT,
+ PROJECT_ADMIN,
+ ROOT_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",
-};
+export type TMultiselectActionsFilters = Record<string, [MultiSelectMenuActionSet, Set<string>]>;
-const { MOVE_TO, TOGGLE_TRASH_ACTION, REMOVE, MAKE_A_COPY } = contextMenuActionConsts;
+const allActionNames = (actionSet: MultiSelectMenuActionSet): Set<string> => new Set(actionSet[0].map((action) => action.name));
-//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]);
+export const multiselectActionsFilters: TMultiselectActionsFilters = {
+ [COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter],
+ [COLLECTION_ADMIN]: [msCollectionActionSet, allActionNames(msCollectionActionSet)],
+ [READONLY_COLLECTION]: [msCollectionActionSet, msReadOnlyCollectionActionFilter],
+ [ResourceKind.COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter],
-const { COLLECTION, PROJECT, PROCESS } = ResourceKind;
+ [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],
-export const multiselectActionsFilters: TMultiselectActionsFilters = {
- [PROJECT]: [msProjectActionSet, projectMSActionsFilter],
- [PROCESS]: [msProcessActionSet, processResourceMSActionsFilter],
- [COLLECTION]: [msCollectionActionSet, collectionMSActionsFilter],
+ [ROOT_PROJECT]: [UserDetailsActionSet, allActionNames(UserDetailsActionSet)],
+ [ROOT_PROJECT_ADMIN]: [UserDetailsActionSet, allActionNames(UserDetailsActionSet)],
};