From 5fa710bf0218bd474233fd5867b15cc6622e6b31 Mon Sep 17 00:00:00 2001 From: Lisa Knox Date: Tue, 26 Sep 2023 16:33:12 -0400 Subject: [PATCH] 20382: works for admins Arvados-DCO-1.1-Signed-off-by: Lisa Knox --- src/index.tsx | 2 ++ .../context-menu/context-menu-actions.ts | 8 +++-- .../process-resource-action-set.ts | 31 ++++++++++++++----- .../context-menu/context-menu.tsx | 1 + 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index 9339391e..0284fecc 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -56,6 +56,7 @@ import { processResourceActionSet, runningProcessResourceActionSet, processResourceAdminActionSet, + runningProcessResourceAdminActionSet, readOnlyProcessResourceActionSet, } from "views-components/context-menu/action-sets/process-resource-action-set"; import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions"; @@ -122,6 +123,7 @@ addMenuActionSet(ContextMenuKind.GROUPS, groupActionSet); addMenuActionSet(ContextMenuKind.GROUP_MEMBER, groupMemberActionSet); addMenuActionSet(ContextMenuKind.COLLECTION_ADMIN, collectionAdminActionSet); addMenuActionSet(ContextMenuKind.PROCESS_ADMIN, processResourceAdminActionSet); +addMenuActionSet(ContextMenuKind.RUNNING_PROCESS_ADMIN, runningProcessResourceAdminActionSet); addMenuActionSet(ContextMenuKind.PROJECT_ADMIN, projectAdminActionSet); addMenuActionSet(ContextMenuKind.FROZEN_PROJECT, frozenActionSet); addMenuActionSet(ContextMenuKind.FROZEN_PROJECT_ADMIN, frozenAdminActionSet); diff --git a/src/store/context-menu/context-menu-actions.ts b/src/store/context-menu/context-menu-actions.ts index e3d708c7..113e9de2 100644 --- a/src/store/context-menu/context-menu-actions.ts +++ b/src/store/context-menu/context-menu-actions.ts @@ -300,12 +300,14 @@ export const resourceUuidToContextMenuKind = : ContextMenuKind.READONLY_COLLECTION; case ResourceKind.PROCESS: return isAdminUser && isEditable - ? ContextMenuKind.PROCESS_ADMIN + ? resource && isProcessCancelable(getProcess(resource.uuid)(getState().resources) as Process) + ? ContextMenuKind.RUNNING_PROCESS_ADMIN + : ContextMenuKind.PROCESS_ADMIN : readonly ? ContextMenuKind.READONLY_PROCESS_RESOURCE : resource && isProcessCancelable(getProcess(resource.uuid)(getState().resources) as Process) - ? ContextMenuKind.RUNNING_PROCESS_RESOURCE - : ContextMenuKind.PROCESS_RESOURCE; + ? ContextMenuKind.PROCESS_RESOURCE + : ContextMenuKind.RUNNING_PROCESS_RESOURCE; case ResourceKind.USER: return ContextMenuKind.ROOT_PROJECT; case ResourceKind.LINK: diff --git a/src/views-components/context-menu/action-sets/process-resource-action-set.ts b/src/views-components/context-menu/action-sets/process-resource-action-set.ts index 579161d6..3d057d42 100644 --- a/src/views-components/context-menu/action-sets/process-resource-action-set.ts +++ b/src/views-components/context-menu/action-sets/process-resource-action-set.ts @@ -113,13 +113,6 @@ export const processResourceActionSet: ContextMenuActionSet = [ dispatch(openRemoveProcessDialog(resource.uuid)); }, }, - // { - // name: "Cancel", - // icon: StopIcon, - // execute: (dispatch, resource) => { - // dispatch(cancelRunningWorkflow(resource.uuid)); - // }, - // }, ], ]; @@ -127,7 +120,7 @@ export const runningProcessResourceActionSet = [ [ ...processResourceActionSet.reduce((prev, next) => prev.concat(next), []), { - name: "Cancel", + name: "CANCEL", icon: StopIcon, execute: (dispatch, resource) => { dispatch(cancelRunningWorkflow(resource.uuid)); @@ -150,3 +143,25 @@ export const processResourceAdminActionSet: ContextMenuActionSet = [ }, ], ]; + +export const runningProcessResourceAdminActionSet: ContextMenuActionSet = [ + [ + ...processResourceActionSet.reduce((prev, next) => prev.concat(next), []), + { + component: TogglePublicFavoriteAction, + name: "Add to public favorites", + execute: (dispatch, resource) => { + dispatch(togglePublicFavorite(resource)).then(() => { + dispatch(publicFavoritePanelActions.REQUEST_ITEMS()); + }); + }, + }, + { + name: "CANCEL", + icon: StopIcon, + execute: (dispatch, resource) => { + dispatch(cancelRunningWorkflow(resource.uuid)); + }, + }, + ], +]; diff --git a/src/views-components/context-menu/context-menu.tsx b/src/views-components/context-menu/context-menu.tsx index a61690c6..97fb5feb 100644 --- a/src/views-components/context-menu/context-menu.tsx +++ b/src/views-components/context-menu/context-menu.tsx @@ -99,6 +99,7 @@ export enum ContextMenuKind { OLD_VERSION_COLLECTION = "OldVersionCollection", TRASHED_COLLECTION = "TrashedCollection", PROCESS = "Process", + RUNNING_PROCESS_ADMIN = "RunningProcessAdmin", PROCESS_ADMIN = "ProcessAdmin", RUNNING_PROCESS_RESOURCE = "RunningProcessResource", PROCESS_RESOURCE = "ProcessResource", -- 2.30.2