import { workflowPanelColumns } from "views/workflow-panel/workflow-panel-view";
import { progressIndicatorActions } from "store/progress-indicator/progress-indicator-actions";
import { getProgressIndicator } from "store/progress-indicator/progress-indicator-reducer";
-import { extractUuidKind, ResourceKind } from "models/resource";
+import { extractUuidKind, Resource, ResourceKind } from "models/resource";
import { FilterBuilder } from "services/api/filter-builder";
import { GroupContentsResource } from "services/groups-service/groups-service";
import { MatchCases, ofType, unionize, UnionOf } from "common/unionize";
};
export const moveProject = (data: MoveToFormDialogData) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- const projectsToMove: string[] = selectedToArray(getState().multiselect.checkedList);
+ const itemsToMove: string[] = selectedToArray(getState().multiselect.checkedList);
//if no items in checkedlist, default to normal context menu behavior
- if (!projectsToMove.length) projectsToMove.push(data.uuid);
+ if (!itemsToMove.length) itemsToMove.push(data.uuid);
const sourceUuid = getResource(data.uuid)(getState().resources)?.ownerUuid;
const destinationUuid = data.ownerUuid;
- for (const projectUuid of projectsToMove) {
- await moveSingleProject(projectUuid);
+ for (const uuid of itemsToMove) {
+ await moveSingleProject(uuid);
}
- async function moveSingleProject(projectUuid) {
- try {
- const originalProject = getResource(projectUuid)(getState().resources);
- const oldProject = { ...originalProject, ownerUuid: data.ownerUuid } as any;
- const oldOwnerUuid = oldProject ? oldProject.ownerUuid : "";
- const movedProject = await dispatch<any>(projectMoveActions.moveProject(oldProject));
- if (movedProject) {
+ async function moveSingleProject(uuid) {
+ const originalItem = getResource(uuid)(getState().resources) as Resource & { name: string };
+ if (originalItem.kind === ResourceKind.PROJECT) {
+ try {
+ const oldProject: MoveToFormDialogData = { name: originalItem.name, uuid: originalItem.uuid, ownerUuid: data.ownerUuid };
+ const oldOwnerUuid = oldProject ? oldProject.ownerUuid : "";
+ const movedProject = await dispatch<any>(projectMoveActions.moveProject(oldProject));
+ if (movedProject) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: "Project has been moved",
+ hideDuration: 2000,
+ kind: SnackbarKind.SUCCESS,
+ })
+ );
+ await dispatch<any>(reloadProjectMatchingUuid([oldOwnerUuid, movedProject.ownerUuid, movedProject.uuid]));
+ }
+ } catch (e) {
dispatch(
snackbarActions.OPEN_SNACKBAR({
- message: "Project has been moved",
+ message: e.message,
hideDuration: 2000,
- kind: SnackbarKind.SUCCESS,
+ kind: SnackbarKind.ERROR,
})
);
- await dispatch<any>(reloadProjectMatchingUuid([oldOwnerUuid, movedProject.ownerUuid, movedProject.uuid]));
}
- } catch (e) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: e.message,
- hideDuration: 2000,
- kind: SnackbarKind.ERROR,
- })
- );
}
}
if (sourceUuid) await dispatch<any>(loadSidePanelTreeProjects(sourceUuid));
};
export const moveProcess = (data: MoveToFormDialogData) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- try {
- const process = await dispatch<any>(processMoveActions.moveProcess(data));
- dispatch<any>(updateResources([process]));
- dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: "Process has been moved.",
- hideDuration: 2000,
- kind: SnackbarKind.SUCCESS,
- })
- );
- } catch (e) {
- dispatch(
- snackbarActions.OPEN_SNACKBAR({
- message: e.message,
- hideDuration: 2000,
- kind: SnackbarKind.ERROR,
- })
- );
+ const itemsToMove: string[] = selectedToArray(getState().multiselect.checkedList);
+ //if no items in checkedlist, default to normal context menu behavior
+ if (!itemsToMove.length) itemsToMove.push(data.uuid);
+
+ for (const uuid of itemsToMove) {
+ await moveSingleProcess(uuid);
+ }
+
+ async function moveSingleProcess(uuid) {
+ const originalItem = getResource(uuid)(getState().resources) as Resource & { name: string };
+ if (originalItem.kind === ResourceKind.PROCESS) {
+ try {
+ const oldProcess: MoveToFormDialogData = { name: originalItem.name, uuid: originalItem.uuid, ownerUuid: data.ownerUuid };
+ const process = await dispatch<any>(processMoveActions.moveProcess(oldProcess));
+ dispatch<any>(updateResources([process]));
+ dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: "Process has been moved.",
+ hideDuration: 2000,
+ kind: SnackbarKind.SUCCESS,
+ })
+ );
+ } catch (e) {
+ dispatch(
+ snackbarActions.OPEN_SNACKBAR({
+ message: e.message,
+ hideDuration: 2000,
+ kind: SnackbarKind.ERROR,
+ })
+ );
+ }
+ }
}
};