}
});
-export const COLLECTION_PARTIAL_COPY = 'COLLECTION_PARTIAL_COPY';
+export const COLLECTION_PARTIAL_COPY_FORM_NAME = 'collectionPartialCopyFormName';
export interface CollectionPartialCopyFormData {
name: string;
description: currentCollection.description,
projectUuid: ''
};
- dispatch(initialize(COLLECTION_PARTIAL_COPY, initialData));
+ dispatch(initialize(COLLECTION_PARTIAL_COPY_FORM_NAME, initialData));
dispatch<any>(resetPickerProjectTree());
- dispatch(dialogActions.OPEN_DIALOG({ id: COLLECTION_PARTIAL_COPY, data: {} }));
+ dispatch(dialogActions.OPEN_DIALOG({ id: COLLECTION_PARTIAL_COPY_FORM_NAME, data: {} }));
}
};
-export const doCollectionPartialCopy = ({ name, description, projectUuid }: CollectionPartialCopyFormData) =>
+
+export const copyCollectionPartial = ({ name, description, projectUuid }: CollectionPartialCopyFormData) =>
async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- dispatch(startSubmit(COLLECTION_PARTIAL_COPY));
+ dispatch(startSubmit(COLLECTION_PARTIAL_COPY_FORM_NAME));
const state = getState();
const currentCollection = state.collectionPanel.item;
if (currentCollection) {
const newCollection = await services.collectionService.create(collectionCopy);
const paths = filterCollectionFilesBySelection(state.collectionPanelFiles, false).map(file => file.id);
await services.collectionService.deleteFiles(newCollection.uuid, paths);
- dispatch(dialogActions.CLOSE_DIALOG({ id: COLLECTION_PARTIAL_COPY }));
+ dispatch(dialogActions.CLOSE_DIALOG({ id: COLLECTION_PARTIAL_COPY_FORM_NAME }));
dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'New collection created.', hideDuration: 2000 }));
} catch (e) {
const error = getCommonResourceServiceError(e);
if (error === CommonResourceServiceError.UNIQUE_VIOLATION) {
- dispatch(stopSubmit(COLLECTION_PARTIAL_COPY, { name: 'Collection with this name already exists.' }));
+ dispatch(stopSubmit(COLLECTION_PARTIAL_COPY_FORM_NAME, { name: 'Collection with this name already exists.' }));
} else if (error === CommonResourceServiceError.UNKNOWN) {
- dispatch(dialogActions.CLOSE_DIALOG({ id: COLLECTION_PARTIAL_COPY }));
+ dispatch(dialogActions.CLOSE_DIALOG({ id: COLLECTION_PARTIAL_COPY_FORM_NAME }));
dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Could not create a copy of collection', hideDuration: 2000 }));
} else {
- dispatch(dialogActions.CLOSE_DIALOG({ id: COLLECTION_PARTIAL_COPY }));
+ dispatch(dialogActions.CLOSE_DIALOG({ id: COLLECTION_PARTIAL_COPY_FORM_NAME }));
dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Collection has been copied but may contain incorrect files.', hideDuration: 2000 }));
}
}
+++ /dev/null
-// Copyright (C) The Arvados Authors. All rights reserved.
-//
-// SPDX-License-Identifier: AGPL-3.0
-
-import * as React from "react";
-import { compose } from "redux";
-import { reduxForm, InjectedFormProps } from 'redux-form';
-import { withDialog, WithDialogProps } from '~/store/dialog/with-dialog';
-import { COLLECTION_PARTIAL_COPY, doCollectionPartialCopy, CollectionPartialCopyFormData } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions';
-import { CollectionPartialCopyFields } from '~/views-components/form-fields/collection-form-fields';
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-
-export const CollectionPartialCopyDialog = compose(
- withDialog(COLLECTION_PARTIAL_COPY),
- reduxForm({
- form: COLLECTION_PARTIAL_COPY,
- onSubmit: (data: CollectionPartialCopyFormData, dispatch) => {
- dispatch(doCollectionPartialCopy(data));
- }
- }))((props: WithDialogProps<string> & InjectedFormProps<CollectionPartialCopyFormData>) =>
- <FormDialog
- dialogTitle='Create a collection'
- formFields={CollectionPartialCopyFields}
- submitLabel='Create a collection'
- {...props}
- />);
--- /dev/null
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+import * as React from "react";
+import { InjectedFormProps, Field } from 'redux-form';
+import { WithDialogProps } from '~/store/dialog/with-dialog';
+import { CollectionPartialCopyFormData } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions';
+import { FormDialog } from '~/components/form-dialog/form-dialog';
+import { CollectionPartialCopyFields } from '~/views-components/form-fields/collection-form-fields';
+
+type CopyFormDialogProps = WithDialogProps<string> & InjectedFormProps<CollectionPartialCopyFormData>;
+
+export const DialogCollectionPartialCopy = (props: CopyFormDialogProps) =>
+ <FormDialog
+ dialogTitle='Create a collection'
+ formFields={CollectionPartialCopyFields}
+ submitLabel='Create a collection'
+ {...props}
+ />;
\ No newline at end of file
--- /dev/null
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+import { compose } from "redux";
+import { reduxForm } from 'redux-form';
+import { withDialog } from '~/store/dialog/with-dialog';
+import { COLLECTION_PARTIAL_COPY_FORM_NAME, copyCollectionPartial, CollectionPartialCopyFormData } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions';
+import { DialogCollectionPartialCopy } from '~/views-components/dialog-copy/dialog-collection-partial-copy';
+
+export const CopyCollectionPartialDialog = compose(
+ withDialog(COLLECTION_PARTIAL_COPY_FORM_NAME),
+ reduxForm<CollectionPartialCopyFormData>({
+ form: COLLECTION_PARTIAL_COPY_FORM_NAME,
+ onSubmit: (data, dispatch) => {
+ dispatch(copyCollectionPartial(data));
+ }
+ })
+)(DialogCollectionPartialCopy);
import { FileRemoveDialog } from '~/views-components/file-remove-dialog/file-remove-dialog';
import { MultipleFilesRemoveDialog } from '~/views-components/file-remove-dialog/multiple-files-remove-dialog';
import { UploadCollectionFilesDialog } from '~/views-components/upload-collection-files-dialog/upload-collection-files-dialog';
-import { CollectionPartialCopyDialog } from '~/views-components/collection-partial-copy-dialog/collection-partial-copy-dialog';
+import { CopyCollectionPartialDialog } from '~/views-components/dialog-forms/copy-collection-partial-dialog';
import { SidePanel } from '~/views-components/side-panel/side-panel';
import { Routes } from '~/routes/routes';
import { Breadcrumbs } from '~/views-components/breadcrumbs/breadcrumbs';
<CreateProjectDialog />
<CreateCollectionDialog />
<RenameFileDialog />
- <CollectionPartialCopyDialog />
- <FileRemoveDialog />
<CopyCollectionDialog />
+ <CopyCollectionPartialDialog />
+ <FileRemoveDialog />
<MultipleFilesRemoveDialog />
<UpdateCollectionDialog />
<UploadCollectionFilesDialog />