Add context menu sharing handlers
[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 "../context-menu-action-set";
6 import { ToggleFavoriteAction } from "../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 { openSharingDialog } from "~/store/sharing-dialog/sharing-dialog-actions";
20
21 export const processActionSet: ContextMenuActionSet = [[
22     {
23         icon: RenameIcon,
24         name: "Edit process",
25         execute: (dispatch, resource) => dispatch<any>(openProcessUpdateDialog(resource))
26     },
27     {
28         icon: ShareIcon,
29         name: "Share",
30         execute: (dispatch, { uuid }) => {
31             dispatch<any>(openSharingDialog(uuid));
32         }
33     },
34     {
35         icon: MoveToIcon,
36         name: "Move to",
37         execute: (dispatch, resource) => dispatch<any>(openMoveProcessDialog(resource))
38     },
39     {
40         component: ToggleFavoriteAction,
41         execute: (dispatch, resource) => {
42             dispatch<any>(toggleFavorite(resource)).then(() => {
43                 dispatch<any>(favoritePanelActions.REQUEST_ITEMS());
44             });
45         }
46     },
47     {
48         icon: CopyIcon,
49         name: "Copy to project",
50         execute: (dispatch, resource) => dispatch<any>(openCopyProcessDialog(resource))
51     },
52     {
53         icon: ReRunProcessIcon,
54         name: "Re-run process",
55         execute: (dispatch, resource) => {
56             // add code
57         }
58     },
59     {
60         icon: InputIcon,
61         name: "Inputs",
62         execute: (dispatch, resource) => {
63             // add code
64         }
65     },
66     {
67         icon: OutputIcon,
68         name: "Outputs",
69         execute: (dispatch, resource) => {
70             // add code
71         }
72     },
73     {
74         icon: CommandIcon,
75         name: "Command",
76         execute: (dispatch, resource) => {
77             dispatch<any>(openProcessCommandDialog(resource.uuid));
78         }
79     },
80     {
81         icon: DetailsIcon,
82         name: "View details",
83         execute: dispatch => dispatch(detailsPanelActions.TOGGLE_DETAILS_PANEL())
84     },
85     {
86         icon: LogIcon,
87         name: "Log",
88         execute: (dispatch, resource) => {
89             dispatch<any>(navigateToProcessLogs(resource.uuid));
90         }
91     },
92     {
93         icon: ProvenanceGraphIcon,
94         name: "Provenance graph",
95         execute: (dispatch, resource) => {
96             // add code
97         }
98     },
99     {
100         icon: AdvancedIcon,
101         name: "Advanced",
102         execute: (dispatch, resource) => {
103             // add code
104         }
105     },
106     {
107         icon: RemoveIcon,
108         name: "Remove",
109         execute: (dispatch, resource) => {
110             // add code
111         }
112     }
113 ]];