1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { Dispatch } from "redux";
6 import { RootState } from "~/store/store";
7 import { ServiceRepository } from "~/services/services";
8 import { snackbarActions } from "~/store/snackbar/snackbar-actions";
9 import { trashPanelActions } from "~/store/trash-panel/trash-panel-action";
11 export const toggleProjectTrashed = (resource: { uuid: string; name: string, isTrashed?: boolean, ownerUuid?: string }) =>
12 async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository): Promise<any> => {
13 dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Working..." }));
14 if (resource.isTrashed) {
15 return services.groupsService.untrash(resource.uuid).then(() => {
16 // dispatch<any>(getProjectList(resource.ownerUuid)).then(() => {
17 // dispatch(sidePanelActions.TOGGLE_SIDE_PANEL_ITEM_OPEN(SidePanelId.PROJECTS));
18 // dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM_OPEN({ itemId: resource.ownerUuid!!, open: true, recursive: true }));
20 dispatch(trashPanelActions.REQUEST_ITEMS());
21 dispatch(snackbarActions.CLOSE_SNACKBAR());
22 dispatch(snackbarActions.OPEN_SNACKBAR({
23 message: "Restored from trash",
28 return services.groupsService.trash(resource.uuid).then(() => {
29 // dispatch<any>(getProjectList(resource.ownerUuid)).then(() => {
30 // dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM_OPEN({ itemId: resource.ownerUuid!!, open: true, recursive: true }));
32 dispatch(snackbarActions.CLOSE_SNACKBAR());
33 dispatch(snackbarActions.OPEN_SNACKBAR({
34 message: "Added to trash",
41 export const toggleCollectionTrashed = (resource: { uuid: string; name: string, isTrashed?: boolean, ownerUuid?: string }) =>
42 async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository): Promise<any> => {
43 dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Working..." }));
44 if (resource.isTrashed) {
45 return services.collectionService.untrash(resource.uuid).then(() => {
46 // dispatch<any>(getProjectList(resource.ownerUuid)).then(() => {
47 // dispatch(sidePanelActions.TOGGLE_SIDE_PANEL_ITEM_OPEN(SidePanelId.PROJECTS));
48 // dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM_OPEN({ itemId: resource.ownerUuid!!, open: true, recursive: true }));
50 dispatch(trashPanelActions.REQUEST_ITEMS());
51 dispatch(snackbarActions.CLOSE_SNACKBAR());
52 dispatch(snackbarActions.OPEN_SNACKBAR({
53 message: "Restored from trash",
58 return services.collectionService.trash(resource.uuid).then(() => {
59 dispatch(snackbarActions.CLOSE_SNACKBAR());
60 dispatch(snackbarActions.OPEN_SNACKBAR({
61 message: "Added to trash",