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 { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
9 /* import { setBreadcrumbs } from '~/store/breadcrumbs/breadcrumbs-actions';
10 import { dialogActions } from '~/store/dialog/dialog-actions';
11 import { ProcessResource } from '~/models/process';
12 import { getResource } from '~/store/resources/resources';
13 import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
14 import { REMOVE_PROCESS_DIALOG } from '~/store/processes/processes-actions';
16 export const SUBPROCESS_PANEL_ID = "subprocessPanel";
17 export const SUBPROCESS_ATTRIBUTES_DIALOG = 'subprocessAttributesDialog';
18 export const subprocessPanelActions = bindDataExplorerActions(SUBPROCESS_PANEL_ID);
20 export const loadSubprocessPanel = () =>
21 (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
22 dispatch(subprocessPanelActions.REQUEST_ITEMS());
26 export const openSubprocessAttributesDialog = (uuid: string) =>
27 (dispatch: Dispatch, getState: () => RootState) => {
28 const { resources } = getState();
29 const subprocess = getResource<ProcessResource>(uuid)(resources);
30 dispatch(dialogActions.OPEN_DIALOG({ id: SUBPROCESS_ATTRIBUTES_DIALOG, data: { subprocess } }));
33 export const openLinkRemoveDialog = (uuid: string) =>
34 (dispatch: Dispatch, getState: () => RootState) => {
35 dispatch(dialogActions.OPEN_DIALOG({
36 id: REMOVE_PROCESS_DIALOG,
38 title: 'Remove process',
39 text: 'Are you sure you want to remove this process?',
40 confirmButtonLabel: 'Remove',
46 export const removeSubprocess = (uuid: string) =>
47 async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
48 dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Removing ...', kind: SnackbarKind.INFO }));
50 await services.containerRequestService.delete(uuid);
51 dispatch(subprocessPanelActions.REQUEST_ITEMS());
52 dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Process has been successfully removed.', hideDuration: 2000, kind: SnackbarKind.SUCCESS }));