Merge branch '21128-toolbar-context-menu'
[arvados-workbench2.git] / src / views-components / multiselect-toolbar / ms-workflow-action-set.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { openRunProcess, deleteWorkflow } from 'store/workflow-panel/workflow-panel-actions';
6 import { StartIcon, TrashIcon, Link } from 'components/icon/icon';
7 import { MultiSelectMenuAction, MultiSelectMenuActionSet, msCommonActionSet } from './ms-menu-actions';
8 import { MultiSelectMenuActionNames } from "views-components/multiselect-toolbar/ms-menu-actions";
9 import { copyToClipboardAction } from 'store/open-in-new-tab/open-in-new-tab.actions';
10
11 const { OPEN_IN_NEW_TAB, COPY_TO_CLIPBOARD, VIEW_DETAILS, API_DETAILS, RUN_WORKFLOW, DELETE_WORKFLOW } = MultiSelectMenuActionNames;
12
13 const msRunWorkflow: MultiSelectMenuAction = {
14     name: RUN_WORKFLOW,
15     icon: StartIcon,
16     hasAlts: false,
17     isForMulti: false,
18     execute: (dispatch, resources) => {
19         dispatch<any>(openRunProcess(resources[0].uuid, resources[0].ownerUuid, resources[0].name));
20     },
21 };
22
23 const msDeleteWorkflow: MultiSelectMenuAction = {
24     name: DELETE_WORKFLOW,
25     icon: TrashIcon,
26     hasAlts: false,
27     isForMulti: false,
28     execute: (dispatch, resources) => {
29         dispatch<any>(deleteWorkflow(resources[0].uuid, resources[0].ownerUuid));
30     },
31 };
32
33 const msCopyToClipboardMenuAction: MultiSelectMenuAction  = {
34     name: COPY_TO_CLIPBOARD,
35     icon: Link,
36     hasAlts: false,
37     isForMulti: false,
38     execute: (dispatch, resources) => {
39         dispatch<any>(copyToClipboardAction(resources));
40     },
41 };
42
43 export const msWorkflowActionSet: MultiSelectMenuActionSet = [[...msCommonActionSet, msRunWorkflow, msDeleteWorkflow, msCopyToClipboardMenuAction]];
44
45 export const msReadOnlyWorkflowActionFilter = new Set([OPEN_IN_NEW_TAB, COPY_TO_CLIPBOARD, VIEW_DETAILS, API_DETAILS, RUN_WORKFLOW ]);
46 export const msWorkflowActionFilter = new Set([OPEN_IN_NEW_TAB, COPY_TO_CLIPBOARD, VIEW_DETAILS, API_DETAILS, RUN_WORKFLOW, DELETE_WORKFLOW]);