From 3bce3f7ad3a50e6e8c7da962691e53d45d808894 Mon Sep 17 00:00:00 2001 From: Lisa Knox Date: Mon, 28 Aug 2023 14:10:08 -0400 Subject: [PATCH] 15768: multimove processes works Arvados-DCO-1.1-Signed-off-by: Lisa Knox --- src/store/workbench/workbench-actions.ts | 53 +++++++++++++++--------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/src/store/workbench/workbench-actions.ts b/src/store/workbench/workbench-actions.ts index fb335782b0..9b928ce30d 100644 --- a/src/store/workbench/workbench-actions.ts +++ b/src/store/workbench/workbench-actions.ts @@ -528,26 +528,39 @@ export const updateProcess = (data: processUpdateActions.ProcessUpdateFormDialog }; export const moveProcess = (data: MoveToFormDialogData) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { - console.log("PROCESSS_DATA: ", data); - try { - const process = await dispatch(processMoveActions.moveProcess(data)); - dispatch(updateResources([process])); - dispatch(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(processMoveActions.moveProcess(oldProcess)); + dispatch(updateResources([process])); + dispatch(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, + }) + ); + } + } } }; -- 2.30.2