Rewrite edit project - add dialog form, actions, remove old code
[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 { projectActions, PROJECT_FORM_NAME } from "~/store/project/project-action";
9 import { NewProjectIcon, RenameIcon, CopyIcon, MoveToIcon } from "~/components/icon/icon";
10 import { ToggleFavoriteAction } from "../actions/favorite-action";
11 import { toggleFavorite } from "~/store/favorites/favorites-actions";
12 import { favoritePanelActions } from "~/store/favorite-panel/favorite-panel-action";
13 import { openMoveProjectDialog } from '~/store/move-project-dialog/move-project-dialog';
14 import { PROJECT_CREATE_FORM_NAME, openProjectCreateDialog } from '~/store/projects/project-create-actions';
15 import { openProjectUpdateDialog } from '~/store/projects/project-update-actions';
16
17 export const projectActionSet: ContextMenuActionSet = [[
18     {
19         icon: NewProjectIcon,
20         name: "New project",
21         execute: (dispatch, resource) => {
22             dispatch(reset(PROJECT_CREATE_FORM_NAME));
23             dispatch<any>(openProjectCreateDialog(resource.uuid));
24         }
25     },
26     {
27         icon: RenameIcon,
28         name: "Edit project",
29         execute: (dispatch, resource) => {
30             dispatch<any>(openProjectUpdateDialog(resource));
31         }
32     },
33     {
34         component: ToggleFavoriteAction,
35         execute: (dispatch, resource) => {
36             dispatch<any>(toggleFavorite(resource)).then(() => {
37                 dispatch<any>(favoritePanelActions.REQUEST_ITEMS());
38             });
39         }
40     },
41     {
42         icon: MoveToIcon,
43         name: "Move to",
44         execute: (dispatch, resource) => dispatch<any>(openMoveProjectDialog(resource))
45     },
46     {
47         icon: CopyIcon,
48         name: "Copy to project",
49         execute: (dispatch, resource) => {
50             // add code
51         }
52     },
53 ]];