From: Lisa Knox Date: Thu, 7 Dec 2023 14:46:49 +0000 (-0500) Subject: 21128: fixed process menu Arvados-DCO-1.1-Signed-off-by: Lisa Knox --- diff --git a/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts b/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts index af8a52a9..71b56572 100644 --- a/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts +++ b/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts @@ -11,7 +11,7 @@ import { msFilterGroupActionFilter, msFrozenProjectActionFilter, } from 'views-components/multiselect-toolbar/ms-project-action-set'; -import { msProcessActionSet, msCommonProcessActionFilter } from 'views-components/multiselect-toolbar/ms-process-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'; @@ -63,7 +63,23 @@ export enum msMenuResourceKind { SEARCH_RESULTS = 'SearchResults', } -const { COLLECTION, COLLECTION_ADMIN, READONLY_COLLECTION, PROCESS, PROCESS_ADMIN, PROJECT, PROJECT_ADMIN, FROZEN_PROJECT, FROZEN_PROJECT_ADMIN, READONLY_PROJECT, FILTER_GROUP, WORKFLOW, READONLY_WORKFLOW } = msMenuResourceKind; +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, + WORKFLOW, + READONLY_WORKFLOW, +} = msMenuResourceKind; export type TMultiselectActionsFilters = Record]>; @@ -71,19 +87,25 @@ const allActionNames = (actionSet: MultiSelectMenuActionSet): Set => new export const multiselectActionsFilters: TMultiselectActionsFilters = { [COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter], + [COLLECTION_ADMIN]: [msCollectionActionSet, allActionNames(msCollectionActionSet)], [READONLY_COLLECTION]: [msCollectionActionSet, msReadOnlyCollectionActionFilter], [ResourceKind.COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter], - [COLLECTION_ADMIN]: [msCollectionActionSet, allActionNames(msCollectionActionSet)], - [PROCESS]: [msProcessActionSet, msCommonProcessActionFilter], + + [PROCESS_RESOURCE]: [msProcessActionSet, msCommonProcessActionFilter], + [PROCESS_ADMIN]: [msProcessActionSet, msAdminProcessActionFilter], + [RUNNING_PROCESS_RESOURCE]: [msProcessActionSet, msRunningProcessActionFilter], + [RUNNING_PROCESS_ADMIN]: [msProcessActionSet, allActionNames(msProcessActionSet)], [ResourceKind.PROCESS]: [msProcessActionSet, msCommonProcessActionFilter], - [PROCESS_ADMIN]: [msProcessActionSet, msCommonProcessActionFilter], + [PROJECT]: [msProjectActionSet, msCommonProjectActionFilter], - [ResourceKind.PROJECT]: [msProjectActionSet, msCommonProjectActionFilter], [PROJECT_ADMIN]: [msProjectActionSet, allActionNames(msProjectActionSet)], [FROZEN_PROJECT]: [msProjectActionSet, msFrozenProjectActionFilter], [FROZEN_PROJECT_ADMIN]: [msProjectActionSet, msFrozenProjectActionFilter], [READONLY_PROJECT]: [msProjectActionSet, msReadOnlyProjectActionFilter], + [ResourceKind.PROJECT]: [msProjectActionSet, msCommonProjectActionFilter], + [FILTER_GROUP]: [msProjectActionSet, msFilterGroupActionFilter], + [WORKFLOW]: [msWorkflowActionSet, msWorkflowActionFilter], [READONLY_WORKFLOW]: [msWorkflowActionSet, msReadOnlyWorkflowActionFilter], }; diff --git a/src/views-components/multiselect-toolbar/ms-menu-actions.ts b/src/views-components/multiselect-toolbar/ms-menu-actions.ts index b9420997..6bb930b9 100644 --- a/src/views-components/multiselect-toolbar/ms-menu-actions.ts +++ b/src/views-components/multiselect-toolbar/ms-menu-actions.ts @@ -24,6 +24,7 @@ export enum MultiSelectMenuActionNames { MOVE_TO_TRASH = 'Move to trash', ADD_TO_PUBLIC_FAVORITES = 'Add to public favorites', API_DETAILS = 'API Details', + CANCEL = 'CANCEL', COPY_AND_RERUN_PROCESS = 'Copy and re-run process', COPY_TO_CLIPBOARD = 'Copy to clipboard', DELETE_WORKFLOW = 'Delete Worflow', diff --git a/src/views-components/multiselect-toolbar/ms-process-action-set.ts b/src/views-components/multiselect-toolbar/ms-process-action-set.ts index a5a4f0fb..7802ad81 100644 --- a/src/views-components/multiselect-toolbar/ms-process-action-set.ts +++ b/src/views-components/multiselect-toolbar/ms-process-action-set.ts @@ -2,7 +2,7 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { MoveToIcon, RemoveIcon, ReRunProcessIcon, OutputIcon, RenameIcon } from "components/icon/icon"; +import { MoveToIcon, RemoveIcon, ReRunProcessIcon, OutputIcon, RenameIcon, StopIcon } from "components/icon/icon"; import { openMoveProcessDialog } from "store/processes/process-move-actions"; import { openCopyProcessDialog } from "store/processes/process-copy-actions"; import { openRemoveProcessDialog } from "store/processes/processes-actions"; @@ -10,6 +10,7 @@ import { MultiSelectMenuAction, MultiSelectMenuActionSet, msCommonActionSet } fr import { MultiSelectMenuActionNames } from "views-components/multiselect-toolbar/ms-menu-actions"; import { openProcessUpdateDialog } from "store/processes/process-update-actions"; import { msNavigateToOutput } from "store/multiselect/multiselect-actions"; +import { cancelRunningWorkflow } from "store/processes/processes-actions"; const msCopyAndRerunProcess: MultiSelectMenuAction = { name: MultiSelectMenuActionNames.COPY_AND_RERUN_PROCESS, @@ -65,6 +66,16 @@ const msEditProcess: MultiSelectMenuAction = { }, } +const msCancelProcess: MultiSelectMenuAction = { + name: MultiSelectMenuActionNames.CANCEL, + icon: StopIcon, + hasAlts: false, + isForMulti: false, + execute: (dispatch, resources) => { + dispatch(cancelRunningWorkflow(resources[0].uuid)); + }, +} + export const msProcessActionSet: MultiSelectMenuActionSet = [ [ ...msCommonActionSet, @@ -72,10 +83,16 @@ export const msProcessActionSet: MultiSelectMenuActionSet = [ msRemoveProcess, msMoveTo, msViewOutputs, - msEditProcess + msEditProcess, + msCancelProcess ] ]; -const { MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, ADD_TO_PUBLIC_FAVORITES, OUTPUTS, EDIT_PROCESS } = MultiSelectMenuActionNames +const { MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, ADD_TO_PUBLIC_FAVORITES, OUTPUTS, EDIT_PROCESS, CANCEL } = MultiSelectMenuActionNames + +export const msCommonProcessActionFilter = new Set([MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, OUTPUTS, EDIT_PROCESS ]); +export const msRunningProcessActionFilter = new Set([MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, OUTPUTS, EDIT_PROCESS, CANCEL ]); + +export const msReadOnlyProcessActionFilter = new Set([COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, OUTPUTS ]); +export const msAdminProcessActionFilter = new Set([MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, ADD_TO_PUBLIC_FAVORITES, OUTPUTS, EDIT_PROCESS ]); -export const msCommonProcessActionFilter = new Set([MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, ADD_TO_PUBLIC_FAVORITES, OUTPUTS, EDIT_PROCESS ]);