From 44e89f6c8f0bb6d2ededea8ef107766f65b9bb6a Mon Sep 17 00:00:00 2001 From: Pawel Kowalczyk Date: Tue, 13 Nov 2018 14:13:01 +0100 Subject: [PATCH 1/1] handling an error which occurs when tryind to upload a big file into the collection Feature #14466 Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk --- .../collections/collection-create-actions.ts | 17 ++++++++++++++--- .../collections/collection-upload-actions.ts | 11 +++++++++-- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/store/collections/collection-create-actions.ts b/src/store/collections/collection-create-actions.ts index b05945c1..707e080c 100644 --- a/src/store/collections/collection-create-actions.ts +++ b/src/store/collections/collection-create-actions.ts @@ -12,6 +12,7 @@ import { uploadCollectionFiles } from './collection-upload-actions'; import { fileUploaderActions } from '~/store/file-uploader/file-uploader-actions'; import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions"; import { isItemNotInProject, isProjectOrRunProcessRoute } from '~/store/projects/project-create-actions'; +import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions'; export interface CollectionCreateFormDialogData { ownerUuid: string; @@ -38,9 +39,9 @@ export const openCollectionCreateDialog = (ownerUuid: string) => export const createCollection = (data: CollectionCreateFormDialogData) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { dispatch(startSubmit(COLLECTION_CREATE_FORM_NAME)); - try { - dispatch(progressIndicatorActions.START_WORKING(COLLECTION_CREATE_FORM_NAME)); - const newCollection = await services.collectionService.create(data); + const newCollection = await services.collectionService.create(data); + try { + dispatch(progressIndicatorActions.START_WORKING(COLLECTION_CREATE_FORM_NAME)); await dispatch(uploadCollectionFiles(newCollection.uuid)); dispatch(dialogActions.CLOSE_DIALOG({ id: COLLECTION_CREATE_FORM_NAME })); dispatch(reset(COLLECTION_CREATE_FORM_NAME)); @@ -50,8 +51,18 @@ export const createCollection = (data: CollectionCreateFormDialogData) => const error = getCommonResourceServiceError(e); if (error === CommonResourceServiceError.UNIQUE_VIOLATION) { dispatch(stopSubmit(COLLECTION_CREATE_FORM_NAME, { name: 'Collection with the same name already exists.' })); + } else if (error === CommonResourceServiceError.NONE) { + dispatch(stopSubmit(COLLECTION_CREATE_FORM_NAME)); + dispatch(dialogActions.CLOSE_DIALOG({ id: COLLECTION_CREATE_FORM_NAME })); + dispatch(snackbarActions.OPEN_SNACKBAR({ + message: 'Collection has not been created.', + hideDuration: 2000, + kind: SnackbarKind.ERROR + })); + await services.collectionService.delete(newCollection.uuid); } dispatch(progressIndicatorActions.STOP_WORKING(COLLECTION_CREATE_FORM_NAME)); return; } }; + \ No newline at end of file diff --git a/src/store/collections/collection-upload-actions.ts b/src/store/collections/collection-upload-actions.ts index ef241a7c..c410cf04 100644 --- a/src/store/collections/collection-upload-actions.ts +++ b/src/store/collections/collection-upload-actions.ts @@ -9,7 +9,7 @@ import { dialogActions } from '~/store/dialog/dialog-actions'; import { loadCollectionFiles } from '../collection-panel/collection-panel-files/collection-panel-files-actions'; import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions'; import { fileUploaderActions } from '~/store/file-uploader/file-uploader-actions'; -import { reset, startSubmit } from 'redux-form'; +import { reset, startSubmit, stopSubmit } from 'redux-form'; import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions"; export const uploadCollectionFiles = (collectionUuid: string) => @@ -45,7 +45,14 @@ export const submitCollectionFiles = () => })); dispatch(progressIndicatorActions.STOP_WORKING(COLLECTION_UPLOAD_FILES_DIALOG)); } catch (e) { - dispatch(progressIndicatorActions.STOP_WORKING(COLLECTION_UPLOAD_FILES_DIALOG)); + dispatch(stopSubmit(COLLECTION_UPLOAD_FILES_DIALOG)); + dispatch(closeUploadCollectionFilesDialog()); + dispatch(snackbarActions.OPEN_SNACKBAR({ + message: 'Data has not been uploaded. Too large file', + hideDuration: 2000, + kind: SnackbarKind.ERROR + })); + dispatch(progressIndicatorActions.STOP_WORKING(COLLECTION_UPLOAD_FILES_DIALOG)); } } }; -- 2.30.2