import { ContextMenuActionNames } from 'views-components/context-menu/context-menu-action-set';
import { sortByProperty } from 'common/array-utils';
import { horizontalMenuDivider, verticalMenuDivider } from './actions/context-menu-divider';
+import { MultiSelectMenuAction } from 'views-components/multiselect-toolbar/ms-menu-actions';
export enum ContextMenuKind {
API_CLIENT_AUTHORIZATION = "ApiClientAuthorization",
ROOT_PROJECT = "RootProject",
+ ROOT_PROJECT_ADMIN = "RootProjectAdmin",
PROJECT = "Project",
FILTER_GROUP = "FilterGroup",
READONLY_PROJECT = "ReadOnlyProject",
VIRTUAL_MACHINE = "VirtualMachine",
KEEP_SERVICE = "KeepService",
USER = "User",
+ USER_DETAILS = "UserDetails",
GROUPS = "Group",
GROUP_MEMBER = "GroupMember",
PERMISSION_EDIT = "PermissionEdit",
WORKFLOW = "Workflow",
READONLY_WORKFLOW = "ReadOnlyWorkflow",
SEARCH_RESULTS = "SearchResults",
+ MULTI = "Multi",
}
ContextMenuActionNames.DIVIDER,
ContextMenuActionNames.EDIT_PROCESS,
ContextMenuActionNames.COPY_AND_RERUN_PROCESS,
- ContextMenuActionNames.MOVE_TO,
+ ContextMenuActionNames.CANCEL,
ContextMenuActionNames.REMOVE,
ContextMenuActionNames.DIVIDER,
ContextMenuActionNames.ADD_TO_FAVORITES,
const projectOrder = [
ContextMenuActionNames.VIEW_DETAILS,
ContextMenuActionNames.OPEN_IN_NEW_TAB,
- ContextMenuActionNames.COPY_TO_CLIPBOARD,
+ ContextMenuActionNames.COPY_LINK_TO_CLIPBOARD,
ContextMenuActionNames.OPEN_WITH_3RD_PARTY_CLIENT,
ContextMenuActionNames.API_DETAILS,
ContextMenuActionNames.DIVIDER,
+ ContextMenuActionNames.SHARE,
ContextMenuActionNames.NEW_PROJECT,
ContextMenuActionNames.EDIT_PROJECT,
- ContextMenuActionNames.SHARE,
ContextMenuActionNames.MOVE_TO,
- ContextMenuActionNames.REMOVE,
+ ContextMenuActionNames.MOVE_TO_TRASH,
ContextMenuActionNames.DIVIDER,
ContextMenuActionNames.FREEZE_PROJECT,
ContextMenuActionNames.ADD_TO_FAVORITES,
const collectionOrder = [
ContextMenuActionNames.VIEW_DETAILS,
ContextMenuActionNames.OPEN_IN_NEW_TAB,
- ContextMenuActionNames.COPY_TO_CLIPBOARD,
+ ContextMenuActionNames.COPY_LINK_TO_CLIPBOARD,
ContextMenuActionNames.OPEN_WITH_3RD_PARTY_CLIENT,
ContextMenuActionNames.API_DETAILS,
ContextMenuActionNames.DIVIDER,
- ContextMenuActionNames.NEW_COLLECTION,
- ContextMenuActionNames.EDIT_COLLECTION,
ContextMenuActionNames.SHARE,
+ ContextMenuActionNames.EDIT_COLLECTION,
ContextMenuActionNames.MOVE_TO,
ContextMenuActionNames.MAKE_A_COPY,
ContextMenuActionNames.MOVE_TO_TRASH,
const workflowOrder = [
ContextMenuActionNames.VIEW_DETAILS,
ContextMenuActionNames.OPEN_IN_NEW_TAB,
- ContextMenuActionNames.COPY_TO_CLIPBOARD,
+ ContextMenuActionNames.COPY_LINK_TO_CLIPBOARD,
ContextMenuActionNames.API_DETAILS,
ContextMenuActionNames.DIVIDER,
ContextMenuActionNames.RUN_WORKFLOW,
- ContextMenuActionNames.REMOVE,
+ ContextMenuActionNames.DELETE_WORKFLOW,
]
+const defaultMultiOrder = [
+ ContextMenuActionNames.MOVE_TO,
+ ContextMenuActionNames.MAKE_A_COPY,
+ ContextMenuActionNames.MOVE_TO_TRASH,
+];
+
const kindToOrder: Record<string, ContextMenuActionNames[]> = {
+ [ContextMenuKind.MULTI]: defaultMultiOrder,
+
[ContextMenuKind.PROCESS]: processOrder,
[ContextMenuKind.PROCESS_ADMIN]: processOrder,
[ContextMenuKind.PROCESS_RESOURCE]: processOrder,
HORIZONTAL: 'horizontal'
}
-export const sortMenuItems = (menuKind: ContextMenuKind, menuItems: ContextMenuAction[], orthagonality: string) => {
+export const sortMenuItems = (menuKind: ContextMenuKind, menuItems: ContextMenuAction[], orthagonality: string): ContextMenuAction[] | MultiSelectMenuAction[] => {
const preferredOrder = kindToOrder[menuKind];
//if no specified order, sort by name
const bucketMap = new Map();
const leftovers: ContextMenuAction[] = [];
- // if we have multiple dividers, we need each of them to have a different key
+ // if we have multiple dividers, we need each of them to have a different "name" property
let count = 0;
preferredOrder.forEach((name) => {