Merge branch 'master' into 13969-advanced-tab
[arvados-workbench2.git] / src / views-components / context-menu / action-sets / process-action-set.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set";
6 import { ToggleFavoriteAction } from "~/views-components/context-menu/actions/favorite-action";
7 import { toggleFavorite } from "~/store/favorites/favorites-actions";
8 import {
9     RenameIcon, ShareIcon, MoveToIcon, CopyIcon, DetailsIcon, ProvenanceGraphIcon,
10     AdvancedIcon, RemoveIcon, ReRunProcessIcon, LogIcon, InputIcon, CommandIcon, OutputIcon
11 } from "~/components/icon/icon";
12 import { favoritePanelActions } from "~/store/favorite-panel/favorite-panel-action";
13 import { navigateToProcessLogs } from '~/store/navigation/navigation-action';
14 import { openMoveProcessDialog } from '~/store/processes/process-move-actions';
15 import { openProcessUpdateDialog } from "~/store/processes/process-update-actions";
16 import { openCopyProcessDialog } from '~/store/processes/process-copy-actions';
17 import { openProcessCommandDialog } from '~/store/processes/process-command-actions';
18 import { detailsPanelActions } from '~/store/details-panel/details-panel-action';
19 import { openAdvancedTabDialog } from "~/store/advanced-tab/advanced-tab";
20
21 export const processActionSet: ContextMenuActionSet = [[
22     {
23         icon: RenameIcon,
24         name: "Edit process",
25         execute: (dispatch, resource) => {
26             dispatch<any>(openProcessUpdateDialog(resource));
27         }
28     },
29     {
30         icon: ShareIcon,
31         name: "Share",
32         execute: (dispatch, resource) => {
33             // add code
34         }
35     },
36     {
37         icon: MoveToIcon,
38         name: "Move to",
39         execute: (dispatch, resource) => {
40             dispatch<any>(openMoveProcessDialog(resource));
41         }
42     },
43     {
44         component: ToggleFavoriteAction,
45         execute: (dispatch, resource) => {
46             dispatch<any>(toggleFavorite(resource)).then(() => {
47                 dispatch<any>(favoritePanelActions.REQUEST_ITEMS());
48             });
49         }
50     },
51     {
52         icon: CopyIcon,
53         name: "Copy to project",
54         execute: (dispatch, resource) => {
55             dispatch<any>(openCopyProcessDialog(resource));
56         }
57     },
58     {
59         icon: ReRunProcessIcon,
60         name: "Re-run process",
61         execute: (dispatch, resource) => {
62             // add code
63         }
64     },
65     {
66         icon: InputIcon,
67         name: "Inputs",
68         execute: (dispatch, resource) => {
69             // add code
70         }
71     },
72     {
73         icon: OutputIcon,
74         name: "Outputs",
75         execute: (dispatch, resource) => {
76             // add code
77         }
78     },
79     {
80         icon: CommandIcon,
81         name: "Command",
82         execute: (dispatch, resource) => {
83             dispatch<any>(openProcessCommandDialog(resource.uuid));
84         }
85     },
86     {
87         icon: DetailsIcon,
88         name: "View details",
89         execute: dispatch => {
90             dispatch(detailsPanelActions.TOGGLE_DETAILS_PANEL());
91         }
92     },
93     {
94         icon: LogIcon,
95         name: "Log",
96         execute: (dispatch, resource) => {
97             dispatch<any>(navigateToProcessLogs(resource.uuid));
98         }
99     },
100     {
101         icon: ProvenanceGraphIcon,
102         name: "Provenance graph",
103         execute: (dispatch, resource) => {
104             // add code
105         }
106     },
107     {
108         icon: AdvancedIcon,
109         name: "Advanced",
110         execute: (dispatch, resource) => {
111             dispatch<any>(openAdvancedTabDialog(resource.uuid));
112         }
113     },
114     {
115         icon: RemoveIcon,
116         name: "Remove",
117         execute: (dispatch, resource) => {
118             // add code
119         }
120     }
121 ]];