import { Process } from "./process";
import { dialogActions } from "store/dialog/dialog-actions";
import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
-import { projectPanelActions } from "store/project-panel/project-panel-action";
+import { projectPanelActions } from "store/project-panel/project-panel-action-bind";
import { navigateToRunProcess } from "store/navigation/navigation-action";
import { goToStep, runProcessPanelActions } from "store/run-process-panel/run-process-panel-actions";
import { getResource } from "store/resources/resources";
import { selectedToArray } from "components/multiselect-toolbar/MultiselectToolbar";
import { Resource, ResourceKind } from "models/resource";
import { ContextMenuResource } from "store/context-menu/context-menu-actions";
+import { CommonResourceServiceError, getCommonResourceServiceError } from "services/common-service/common-resource-service";
export const loadProcess =
(containerRequestUuid: string) =>
"scheduling_parameters",
"started_at",
"state",
+ "subrequests_cost",
"uuid",
];
const resource = getState().dialog.removeProcessDialog.data.resource;
const checkedList = getState().multiselect.checkedList;
- const uuidsToRemove: string[] = resource.isSingle ? [resource.uuid] : selectedToArray(checkedList);
+ const uuidsToRemove: string[] = resource.fromContextMenu ? [resource.uuid] : selectedToArray(checkedList);
//if no items in checkedlist, default to normal context menu behavior
if (!uuidsToRemove.length) uuidsToRemove.push(uuid);
.filter(resource => resource.kind === ResourceKind.PROCESS);
for (const process of processesToRemove) {
- dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Removing ...", kind: SnackbarKind.INFO }));
- await services.containerRequestService.delete(process.uuid);
- dispatch(projectPanelActions.REQUEST_ITEMS());
- dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Removed.", hideDuration: 2000, kind: SnackbarKind.SUCCESS }));
+ try {
+ dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Removing ...", kind: SnackbarKind.INFO }));
+ await services.containerRequestService.delete(process.uuid, false);
+ dispatch(projectPanelActions.REQUEST_ITEMS());
+ dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Removed.", hideDuration: 2000, kind: SnackbarKind.SUCCESS }));
+ } catch (e) {
+ const error = getCommonResourceServiceError(e);
+ if (error === CommonResourceServiceError.PERMISSION_ERROR_FORBIDDEN) {
+ dispatch(snackbarActions.OPEN_SNACKBAR({ message: `Access denied`, hideDuration: 2000, kind: SnackbarKind.ERROR }));
+ } else {
+ dispatch(snackbarActions.OPEN_SNACKBAR({ message: `Deletion failed`, hideDuration: 2000, kind: SnackbarKind.ERROR }));
+ }
+ }
}
};