From 8f519cc734ecd69df86dffff02f460addfa0c6e7 Mon Sep 17 00:00:00 2001 From: Lisa Knox Date: Wed, 3 Apr 2024 11:04:14 -0400 Subject: [PATCH] 21448: added default multiselect order Arvados-DCO-1.1-Signed-off-by: Lisa Knox --- .../MultiselectToolbar.tsx | 7 ++++-- .../context-menu/menu-item-sort.ts | 23 ++++++++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/services/workbench2/src/components/multiselect-toolbar/MultiselectToolbar.tsx b/services/workbench2/src/components/multiselect-toolbar/MultiselectToolbar.tsx index 69f5d036d6..3301b5dfe1 100644 --- a/services/workbench2/src/components/multiselect-toolbar/MultiselectToolbar.tsx +++ b/services/workbench2/src/components/multiselect-toolbar/MultiselectToolbar.tsx @@ -123,8 +123,11 @@ export const MultiselectToolbar = connect( singleSelectedUuid === null ? action.isForMulti : true ); - const actions: ContextMenuAction[] | MultiSelectMenuAction[] = - singleResourceKind && singleResourceKind.length ? sortMenuItems(singleResourceKind[0] as ContextMenuKind, rawActions, menuDirection.HORIZONTAL) : rawActions.sort(sortByProperty('name')); + const actions: ContextMenuAction[] | MultiSelectMenuAction[] = sortMenuItems( + singleResourceKind && singleResourceKind.length ? (singleResourceKind[0] as ContextMenuKind) : ContextMenuKind.MULTI, + rawActions, + menuDirection.HORIZONTAL + ); return ( diff --git a/services/workbench2/src/views-components/context-menu/menu-item-sort.ts b/services/workbench2/src/views-components/context-menu/menu-item-sort.ts index 17c3ba7c5f..1f7c61fa15 100644 --- a/services/workbench2/src/views-components/context-menu/menu-item-sort.ts +++ b/services/workbench2/src/views-components/context-menu/menu-item-sort.ts @@ -6,6 +6,7 @@ import { ContextMenuAction } from './context-menu-action-set'; 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", @@ -53,6 +54,7 @@ export enum ContextMenuKind { WORKFLOW = "Workflow", READONLY_WORKFLOW = "ReadOnlyWorkflow", SEARCH_RESULTS = "SearchResults", + MULTI = "Multi", } @@ -117,7 +119,26 @@ const workflowOrder = [ ContextMenuActionNames.DELETE_WORKFLOW, ] +const defaultMultiOrder = [ + ContextMenuActionNames.VIEW_DETAILS, + ContextMenuActionNames.OPEN_IN_NEW_TAB, + ContextMenuActionNames.COPY_LINK_TO_CLIPBOARD, + ContextMenuActionNames.OPEN_WITH_3RD_PARTY_CLIENT, + ContextMenuActionNames.API_DETAILS, + ContextMenuActionNames.SHARE, + ContextMenuActionNames.NEW_PROJECT, + ContextMenuActionNames.EDIT_PROJECT, + ContextMenuActionNames.MOVE_TO, + ContextMenuActionNames.MAKE_A_COPY, + ContextMenuActionNames.MOVE_TO_TRASH, + ContextMenuActionNames.FREEZE_PROJECT, + ContextMenuActionNames.ADD_TO_FAVORITES, + ContextMenuActionNames.ADD_TO_PUBLIC_FAVORITES, +]; + const kindToOrder: Record = { + [ContextMenuKind.MULTI]: defaultMultiOrder, + [ContextMenuKind.PROCESS]: processOrder, [ContextMenuKind.PROCESS_ADMIN]: processOrder, [ContextMenuKind.PROCESS_RESOURCE]: processOrder, @@ -143,7 +164,7 @@ export const menuDirection = { HORIZONTAL: 'horizontal' } -export const sortMenuItems = (menuKind: ContextMenuKind, menuItems: ContextMenuAction[], orthagonality: string): ContextMenuAction[] => { +export const sortMenuItems = (menuKind: ContextMenuKind, menuItems: ContextMenuAction[], orthagonality: string): ContextMenuAction[] | MultiSelectMenuAction[] => { const preferredOrder = kindToOrder[menuKind]; //if no specified order, sort by name -- 2.30.2