Merge branch '14103-improve-dialogs'
[arvados-workbench2.git] / src / views-components / context-menu / action-sets / project-action-set.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { reset, initialize } from "redux-form";
6
7 import { ContextMenuActionSet } from "../context-menu-action-set";
8 import { NewProjectIcon, RenameIcon, CopyIcon, MoveToIcon } from "~/components/icon/icon";
9 import { ToggleFavoriteAction } from "../actions/favorite-action";
10 import { toggleFavorite } from "~/store/favorites/favorites-actions";
11 import { favoritePanelActions } from "~/store/favorite-panel/favorite-panel-action";
12 import { openMoveProjectDialog } from '~/store/projects/project-move-actions';
13 import { PROJECT_CREATE_FORM_NAME, openProjectCreateDialog } from '~/store/projects/project-create-actions';
14 import { openProjectUpdateDialog } from '~/store/projects/project-update-actions';
15
16 export const projectActionSet: ContextMenuActionSet = [[
17     {
18         icon: NewProjectIcon,
19         name: "New project",
20         execute: (dispatch, resource) => {
21             dispatch(reset(PROJECT_CREATE_FORM_NAME));
22             dispatch<any>(openProjectCreateDialog(resource.uuid));
23         }
24     },
25     {
26         icon: RenameIcon,
27         name: "Edit project",
28         execute: (dispatch, resource) => {
29             dispatch<any>(openProjectUpdateDialog(resource));
30         }
31     },
32     {
33         component: ToggleFavoriteAction,
34         execute: (dispatch, resource) => {
35             dispatch<any>(toggleFavorite(resource)).then(() => {
36                 dispatch<any>(favoritePanelActions.REQUEST_ITEMS());
37             });
38         }
39     },
40     {
41         icon: MoveToIcon,
42         name: "Move to",
43         execute: (dispatch, resource) => dispatch<any>(openMoveProjectDialog(resource))
44     },
45     {
46         icon: CopyIcon,
47         name: "Copy to project",
48         execute: (dispatch, resource) => {
49             // add code
50         }
51     },
52 ]];