00210aad3a80f58ec70711ee17e3611643ea671c
[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 { DetailsIcon, AdvancedIcon, OpenIcon, Link, StartIcon, TrashIcon } from 'components/icon/icon';
7 import { copyToClipboardAction, openInNewTabAction } from 'store/open-in-new-tab/open-in-new-tab.actions';
8 import { toggleDetailsPanel } from 'store/details-panel/details-panel-action';
9 import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
10 import { MultiSelectMenuActionSet, MultiSelectMenuActionNames } from './ms-menu-actions';
11
12 export const msReadOnlyWorkflowActionSet: MultiSelectMenuActionSet = [
13     [
14         {
15             name: MultiSelectMenuActionNames.OPEN_IN_NEW_TAB,
16             icon: OpenIcon,
17             hasAlts: false,
18             isForMulti: false,
19             execute: (dispatch, resources) => {
20                 dispatch<any>(openInNewTabAction(resources[0]));
21             },
22         },
23         {
24             name: MultiSelectMenuActionNames.COPY_TO_CLIPBOARD,
25             icon: Link,
26
27             hasAlts: false,
28             isForMulti: false,
29             execute: (dispatch, resources) => {
30                 dispatch<any>(copyToClipboardAction(resources));
31             },
32         },
33         {
34             name: MultiSelectMenuActionNames.VIEW_DETAILS,
35             icon: DetailsIcon,
36             hasAlts: false,
37             isForMulti: false,
38             execute: (dispatch) => {
39                 dispatch<any>(toggleDetailsPanel());
40             },
41         },
42         {
43             name: MultiSelectMenuActionNames.API_DETAILS,
44             icon: AdvancedIcon,
45             hasAlts: false,
46             isForMulti: false,
47             execute: (dispatch, resources) => {
48                 dispatch<any>(openAdvancedTabDialog(resources[0].uuid));
49             },
50         },
51         {
52             name: MultiSelectMenuActionNames.RUN_WORKFLOW,
53             icon: StartIcon,
54             hasAlts: false,
55             isForMulti: false,
56             execute: (dispatch, resources) => {
57                 dispatch<any>(openRunProcess(resources[0].uuid, resources[0].ownerUuid, resources[0].name));
58             },
59         },
60     ],
61 ];
62
63 export const msWorkflowActionSet: MultiSelectMenuActionSet = [
64     [
65         ...msReadOnlyWorkflowActionSet[0],
66         {
67             name: MultiSelectMenuActionNames.DELETE_WORKFLOW,
68             icon: TrashIcon,
69             hasAlts: false,
70             isForMulti: false,
71             execute: (dispatch, resources) => {
72                 dispatch<any>(deleteWorkflow(resources[0].uuid, resources[0].ownerUuid));
73             },
74         },
75     ],
76 ];