X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/d8b1191390b3d56740f133b021936f352ca49d55..3612a36e473bf1599180a9b3b90b03ca0aaafb45:/src/views-components/context-menu/action-sets/process-resource-action-set.ts 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 d9ad424e..64b90ff4 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 @@ -15,6 +15,7 @@ import { OutputIcon, AdvancedIcon, OpenIcon, + StopIcon, } from "components/icon/icon"; import { favoritePanelActions } from "store/favorite-panel/favorite-panel-action"; import { openMoveProcessDialog } from "store/processes/process-move-actions"; @@ -29,42 +30,39 @@ import { TogglePublicFavoriteAction } from "../actions/public-favorite-action"; import { togglePublicFavorite } from "store/public-favorites/public-favorites-actions"; import { publicFavoritePanelActions } from "store/public-favorites-panel/public-favorites-action"; import { openInNewTabAction } from "store/open-in-new-tab/open-in-new-tab.actions"; +import { cancelRunningWorkflow } from "store/processes/processes-actions"; export const readOnlyProcessResourceActionSet: ContextMenuActionSet = [ [ { component: ToggleFavoriteAction, execute: (dispatch, resources) => { - resources.forEach(resource => - dispatch(toggleFavorite(resource)).then(() => { - dispatch(favoritePanelActions.REQUEST_ITEMS()); - }) - ); + dispatch(toggleFavorite(resources[0])).then(() => { + dispatch(favoritePanelActions.REQUEST_ITEMS()); + }); }, }, { icon: OpenIcon, name: "Open in new tab", execute: (dispatch, resources) => { - resources.forEach(resource => dispatch(openInNewTabAction(resource))); + dispatch(openInNewTabAction(resources[0])); }, }, { icon: ReRunProcessIcon, name: "Copy and re-run process", execute: (dispatch, resources) => { - resources.forEach(resource => dispatch(openCopyProcessDialog(resource))); + dispatch(openCopyProcessDialog(resources[0])); }, }, { icon: OutputIcon, name: "Outputs", execute: (dispatch, resources) => { - resources.forEach(resource => { - if (resource.outputUuid) { - dispatch(navigateToOutput(resource.outputUuid)); - } - }); + if (resources[0].outputUuid) { + dispatch(navigateToOutput(resources[0].outputUuid)); + } }, }, { @@ -78,7 +76,7 @@ export const readOnlyProcessResourceActionSet: ContextMenuActionSet = [ icon: AdvancedIcon, name: "API Details", execute: (dispatch, resources) => { - resources.forEach(resource => dispatch(openAdvancedTabDialog(resource.uuid))); + dispatch(openAdvancedTabDialog(resources[0].uuid)); }, }, ], @@ -91,14 +89,14 @@ export const processResourceActionSet: ContextMenuActionSet = [ icon: RenameIcon, name: "Edit process", execute: (dispatch, resources) => { - resources.forEach(resource => dispatch(openProcessUpdateDialog(resource))); + dispatch(openProcessUpdateDialog(resources[0])); }, }, { icon: ShareIcon, name: "Share", execute: (dispatch, resources) => { - resources.forEach(({ uuid }) => dispatch(openSharingDialog(uuid))); + dispatch(openSharingDialog(resources[0].uuid)); }, }, { @@ -112,12 +110,24 @@ export const processResourceActionSet: ContextMenuActionSet = [ name: "Remove", icon: RemoveIcon, execute: (dispatch, resources) => { - resources.forEach(resource => dispatch(openRemoveProcessDialog(resource.uuid))); + dispatch(openRemoveProcessDialog(resources[0], resources.length)); }, }, ], ]; +const runningProcessOnlyActionSet: ContextMenuActionSet = [ + [ + { + name: "CANCEL", + icon: StopIcon, + execute: (dispatch, resources) => { + dispatch(cancelRunningWorkflow(resources[0].uuid)); + }, + }, + ] +]; + export const processResourceAdminActionSet: ContextMenuActionSet = [ [ ...processResourceActionSet.reduce((prev, next) => prev.concat(next), []), @@ -125,12 +135,24 @@ export const processResourceAdminActionSet: ContextMenuActionSet = [ component: TogglePublicFavoriteAction, name: "Add to public favorites", execute: (dispatch, resources) => { - resources.forEach(resource => - dispatch(togglePublicFavorite(resource)).then(() => { - dispatch(publicFavoritePanelActions.REQUEST_ITEMS()); - }) - ); + dispatch(togglePublicFavorite(resources[0])).then(() => { + dispatch(publicFavoritePanelActions.REQUEST_ITEMS()); + }); }, }, ], ]; + +export const runningProcessResourceActionSet = [ + [ + ...processResourceActionSet.reduce((prev, next) => prev.concat(next), []), + ...runningProcessOnlyActionSet.reduce((prev, next) => prev.concat(next), []), + ], +]; + +export const runningProcessResourceAdminActionSet: ContextMenuActionSet = [ + [ + ...processResourceAdminActionSet.reduce((prev, next) => prev.concat(next), []), + ...runningProcessOnlyActionSet.reduce((prev, next) => prev.concat(next), []), + ], +];