Merge 'main' into 20382-process-action-menu-cancel
[arvados-workbench2.git] / src / views-components / context-menu / action-sets / process-resource-action-set.ts
index 7d039b13d75d752c7095115f295d604151b7f1ad..7d85518d2d217050dfbbe6a0e7d6f0c92576f10a 100644 (file)
@@ -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,6 +30,7 @@ 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 = [
     [
@@ -114,6 +116,19 @@ export const processResourceActionSet: ContextMenuActionSet = [
     ],
 ];
 
+export const runningProcessResourceActionSet = [
+    [
+        ...processResourceActionSet.reduce((prev, next) => prev.concat(next), []),
+        {
+            name: "CANCEL",
+            icon: StopIcon,
+            execute: (dispatch, resource) => {
+                dispatch(cancelRunningWorkflow(resource.uuid));
+            },
+        },
+    ],
+];
+
 export const processResourceAdminActionSet: ContextMenuActionSet = [
     [
         ...processResourceActionSet.reduce((prev, next) => prev.concat(next), []),
@@ -128,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, resources) => {
+                dispatch<any>(togglePublicFavorite(resources[0])).then(() => {
+                    dispatch<any>(publicFavoritePanelActions.REQUEST_ITEMS());
+                });
+            },
+        },
+        {
+            name: "CANCEL",
+            icon: StopIcon,
+            execute: (dispatch, resources) => {
+                dispatch<any>(cancelRunningWorkflow(resources[0].uuid));
+            },
+        },
+    ],
+];