From 4752bffbcf5d0e1fc16f4bb2e7934c348834dd9c Mon Sep 17 00:00:00 2001 From: Janicki Artur Date: Mon, 10 Sep 2018 14:53:00 +0200 Subject: [PATCH] improve code after CR Feature #14155 Arvados-DCO-1.1-Signed-off-by: Janicki Artur --- src/store/processes/process-update-actions.ts | 15 ++++++++----- src/store/workbench/workbench-actions.ts | 22 ++++++++++--------- .../action-sets/process-action-set.ts | 4 +--- .../process-resource-action-set.ts | 4 +--- 4 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/store/processes/process-update-actions.ts b/src/store/processes/process-update-actions.ts index 7e01ecddaf..92cf032f37 100644 --- a/src/store/processes/process-update-actions.ts +++ b/src/store/processes/process-update-actions.ts @@ -8,10 +8,9 @@ import { RootState } from "~/store/store"; import { dialogActions } from "~/store/dialog/dialog-actions"; import { getCommonResourceServiceError, CommonResourceServiceError } from "~/services/common-service/common-resource-service"; import { ServiceRepository } from "~/services/services"; -import { ProjectResource } from '~/models/project'; -import { ContextMenuResource } from "~/store/context-menu/context-menu-actions"; import { getProcess } from '~/store/processes/process'; import { projectPanelActions } from '~/store/project-panel/project-panel-action'; +import { snackbarActions } from '~/store/snackbar/snackbar-actions'; export interface ProcessUpdateFormDialogData { uuid: string; @@ -24,9 +23,10 @@ export const openProcessUpdateDialog = (resource: ProcessUpdateFormDialogData) = (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { const process = getProcess(resource.uuid)(getState().resources); if(process) { - resource.name = process.containerRequest.name; - dispatch(initialize(PROCESS_UPDATE_FORM_NAME, resource)); + dispatch(initialize(PROCESS_UPDATE_FORM_NAME, { ...resource, name: process.containerRequest.name })); dispatch(dialogActions.OPEN_DIALOG({ id: PROCESS_UPDATE_FORM_NAME, data: {} })); + } else { + dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Process not found', hideDuration: 2000 })); } }; @@ -35,16 +35,19 @@ export const updateProcess = (resource: ProcessUpdateFormDialogData) => dispatch(startSubmit(PROCESS_UPDATE_FORM_NAME)); try { const process = await services.containerRequestService.get(resource.uuid); - await services.containerRequestService.update(resource.uuid, { ...process, name: resource.name }); + const updatedProcess = await services.containerRequestService.update(resource.uuid, { ...process, name: resource.name }); dispatch(projectPanelActions.REQUEST_ITEMS()); dispatch(dialogActions.CLOSE_DIALOG({ id: PROCESS_UPDATE_FORM_NAME })); - return process; + return updatedProcess; } catch (e) { const error = getCommonResourceServiceError(e); if (error === CommonResourceServiceError.UNIQUE_VIOLATION) { dispatch(stopSubmit(PROCESS_UPDATE_FORM_NAME, { name: 'Process with the same name already exists.' })); } else if (error === CommonResourceServiceError.MODIFYING_CONTAINER_REQUEST_FINAL_STATE) { dispatch(stopSubmit(PROCESS_UPDATE_FORM_NAME, { name: 'You cannot modified in "Final" state.' })); + } else { + dispatch(dialogActions.CLOSE_DIALOG({ id: PROCESS_UPDATE_FORM_NAME })); + dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Could not update the process.', hideDuration: 2000 })); } return; } diff --git a/src/store/workbench/workbench-actions.ts b/src/store/workbench/workbench-actions.ts index 1b00c2b2dc..deb07ab33c 100644 --- a/src/store/workbench/workbench-actions.ts +++ b/src/store/workbench/workbench-actions.ts @@ -31,13 +31,11 @@ import * as collectionMoveActions from '~/store/collections/collection-move-acti import * as processesActions from '../processes/processes-actions'; import * as processMoveActions from '~/store/processes/process-move-actions'; import * as processUpdateActions from '~/store/processes/process-update-actions'; - import { trashPanelColumns } from "~/views/trash-panel/trash-panel"; import { loadTrashPanel, trashPanelActions } from "~/store/trash-panel/trash-panel-action"; import { initProcessLogsPanel } from '../process-logs-panel/process-logs-panel-actions'; import { loadProcessPanel } from '~/store/process-panel/process-panel-actions'; - export const loadWorkbench = () => async (dispatch: Dispatch, getState: () => RootState) => { const { auth, router } = getState(); @@ -199,14 +197,18 @@ export const loadProcess = (uuid: string) => export const updateProcess = (data: processUpdateActions.ProcessUpdateFormDialogData) => async (dispatch: Dispatch) => { - const process = await dispatch(processUpdateActions.updateProcess(data)); - if (process) { - dispatch(snackbarActions.OPEN_SNACKBAR({ - message: "Process has been successfully updated.", - hideDuration: 2000 - })); - dispatch(updateResources([process])); - dispatch(reloadProjectMatchingUuid([process.ownerUuid])); + try { + const process = await dispatch(processUpdateActions.updateProcess(data)); + if (process) { + dispatch(snackbarActions.OPEN_SNACKBAR({ + message: "Process has been successfully updated.", + hideDuration: 2000 + })); + dispatch(updateResources([process])); + dispatch(reloadProjectMatchingUuid([process.ownerUuid])); + } + } catch (e) { + dispatch(snackbarActions.OPEN_SNACKBAR({ message: e.message, hideDuration: 2000 })); } }; diff --git a/src/views-components/context-menu/action-sets/process-action-set.ts b/src/views-components/context-menu/action-sets/process-action-set.ts index de1556fe96..284b9e8e86 100644 --- a/src/views-components/context-menu/action-sets/process-action-set.ts +++ b/src/views-components/context-menu/action-sets/process-action-set.ts @@ -18,9 +18,7 @@ export const processActionSet: ContextMenuActionSet = [[ { icon: RenameIcon, name: "Edit process", - execute: (dispatch, resource) => { - dispatch(openProcessUpdateDialog(resource)); - } + execute: (dispatch, resource) => dispatch(openProcessUpdateDialog(resource)) }, { icon: ShareIcon, diff --git a/src/views-components/context-menu/action-sets/process-resource-action-set.ts b/src/views-components/context-menu/action-sets/process-resource-action-set.ts index 14f17051fa..9deaff961f 100644 --- a/src/views-components/context-menu/action-sets/process-resource-action-set.ts +++ b/src/views-components/context-menu/action-sets/process-resource-action-set.ts @@ -14,9 +14,7 @@ export const processResourceActionSet: ContextMenuActionSet = [[ { icon: RenameIcon, name: "Edit process", - execute: (dispatch, resource) => { - dispatch(openProcessUpdateDialog(resource)); - } + execute: (dispatch, resource) => dispatch(openProcessUpdateDialog(resource)) }, { icon: ShareIcon, -- 2.39.5