X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/25216cc7acedc987c26a159f0b640210c0ef101e..62cb779efb0b098c05053e957c765a807467b28b:/src/store/collections/collection-create-actions.ts diff --git a/src/store/collections/collection-create-actions.ts b/src/store/collections/collection-create-actions.ts index 0b73e6f1..f3d1fd3b 100644 --- a/src/store/collections/collection-create-actions.ts +++ b/src/store/collections/collection-create-actions.ts @@ -3,7 +3,14 @@ // SPDX-License-Identifier: AGPL-3.0 import { Dispatch } from "redux"; -import { reset, startSubmit, stopSubmit, initialize, FormErrors } from 'redux-form'; +import { + reset, + startSubmit, + stopSubmit, + initialize, + FormErrors, + formValueSelector +} from 'redux-form'; import { RootState } from 'store/store'; import { getUserUuid } from "common/getuser"; import { dialogActions } from "store/dialog/dialog-actions"; @@ -20,9 +27,17 @@ export interface CollectionCreateFormDialogData { ownerUuid: string; name: string; description: string; + storageClassesDesired: string[]; + properties: CollectionProperties; +} + +export interface CollectionProperties { + [key: string]: string | string[]; } export const COLLECTION_CREATE_FORM_NAME = "collectionCreateFormName"; +export const COLLECTION_CREATE_PROPERTIES_FORM_NAME = "collectionCreatePropertiesFormName"; +export const COLLECTION_CREATE_FORM_SELECTOR = formValueSelector(COLLECTION_CREATE_FORM_NAME); export const openCollectionCreateDialog = (ownerUuid: string) => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { @@ -44,7 +59,7 @@ export const createCollection = (data: CollectionCreateFormDialogData) => let newCollection: CollectionResource | undefined; try { dispatch(progressIndicatorActions.START_WORKING(COLLECTION_CREATE_FORM_NAME)); - newCollection = await services.collectionService.create(data); + newCollection = await services.collectionService.create(data, false); await dispatch(uploadCollectionFiles(newCollection.uuid)); dispatch(dialogActions.CLOSE_DIALOG({ id: COLLECTION_CREATE_FORM_NAME })); dispatch(reset(COLLECTION_CREATE_FORM_NAME)); @@ -53,11 +68,14 @@ export const createCollection = (data: CollectionCreateFormDialogData) => const error = getCommonResourceServiceError(e); if (error === CommonResourceServiceError.UNIQUE_NAME_VIOLATION) { dispatch(stopSubmit(COLLECTION_CREATE_FORM_NAME, { name: 'Collection with the same name already exists.' } as FormErrors)); - } else if (error === CommonResourceServiceError.NONE) { + } else { dispatch(stopSubmit(COLLECTION_CREATE_FORM_NAME)); dispatch(dialogActions.CLOSE_DIALOG({ id: COLLECTION_CREATE_FORM_NAME })); + const errMsg = e.errors + ? e.errors.join('') + : 'There was an error while creating the collection'; dispatch(snackbarActions.OPEN_SNACKBAR({ - message: 'Collection has not been created.', + message: errMsg, hideDuration: 2000, kind: SnackbarKind.ERROR }));