4095828de27bfed8b8cbbce5453cff7999a5b298
[arvados.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 } from 'components/icon/icon';
7 import { MultiSelectMenuAction, MultiSelectMenuActionSet, MultiSelectMenuActionNames, msCommonActionSet } from './ms-menu-actions';
8
9 const { OPEN_IN_NEW_TAB, COPY_TO_CLIPBOARD, VIEW_DETAILS, API_DETAILS, RUN_WORKFLOW, DELETE_WORKFLOW } = MultiSelectMenuActionNames;
10
11 const msRunWorkflow: MultiSelectMenuAction = {
12     name: RUN_WORKFLOW,
13     icon: StartIcon,
14     hasAlts: false,
15     isForMulti: false,
16     execute: (dispatch, resources) => {
17         dispatch<any>(openRunProcess(resources[0].uuid, resources[0].ownerUuid, resources[0].name));
18     },
19 };
20
21 const msDeleteWorkflow: MultiSelectMenuAction = {
22     name: DELETE_WORKFLOW,
23     icon: TrashIcon,
24     hasAlts: false,
25     isForMulti: false,
26     execute: (dispatch, resources) => {
27         dispatch<any>(deleteWorkflow(resources[0].uuid, resources[0].ownerUuid));
28     },
29 };
30
31 export const msWorkflowActionSet: MultiSelectMenuActionSet = [[...msCommonActionSet, msRunWorkflow, msDeleteWorkflow]];
32
33 export const msReadOnlyWorkflowActionFilter = new Set([OPEN_IN_NEW_TAB, COPY_TO_CLIPBOARD, VIEW_DETAILS, API_DETAILS, RUN_WORKFLOW ]);
34 export const msWorkflowActionFilter = new Set([OPEN_IN_NEW_TAB, COPY_TO_CLIPBOARD, VIEW_DETAILS, API_DETAILS, RUN_WORKFLOW, DELETE_WORKFLOW]);