18219: Unifies code for showing the list of properties on rsc forms.
[arvados-workbench2.git] / src / views-components / dialog-create / dialog-collection-create.tsx
index 2fb007b8a6a6e102039f75e39912a2bfc67812b7..163eb9831ec9a0b6a4ad52abb3dca89d48a05820 100644 (file)
@@ -2,39 +2,47 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import * as React from 'react';
-import { InjectedFormProps } from 'redux-form';
-import { WithDialogProps } from '~/store/dialog/with-dialog';
-import { CollectionCreateFormDialogData } from '~/store/collections/collection-create-actions';
-import { collectionUploaderActions, UploadFile } from "~/store/collections/uploader/collection-uploader-actions";
-import { FormDialog } from '~/components/form-dialog/form-dialog';
-import { CollectionNameField, CollectionDescriptionField } from '~/views-components/form-fields/collection-form-fields';
-import { FileUpload } from '~/components/file-upload/file-upload';
-
-// interface DialogCollectionDataProps {
-//     open: boolean;
-//     handleSubmit: any;
-//     submitting: boolean;
-//     invalid: boolean;
-//     pristine: boolean;
-//     files: UploadFile[];
-// }
+import React from 'react';
+import { InjectedFormProps, Field } from 'redux-form';
+import { WithDialogProps } from 'store/dialog/with-dialog';
+import { CollectionCreateFormDialogData, COLLECTION_CREATE_FORM_NAME } from 'store/collections/collection-create-actions';
+import { FormDialog } from 'components/form-dialog/form-dialog';
+import {
+    CollectionNameField,
+    CollectionDescriptionField,
+    CollectionStorageClassesField
+} from 'views-components/form-fields/collection-form-fields';
+import { FileUploaderField } from '../file-uploader/file-uploader';
+import { ResourceParentField } from '../form-fields/resource-form-fields';
+import { CreateCollectionPropertiesForm } from 'views-components/collection-properties/create-collection-properties-form';
+import { FormGroup, FormLabel } from '@material-ui/core';
+import { resourcePropertiesList } from 'views-components/resource-properties/resource-properties-list';
 
 type DialogCollectionProps = WithDialogProps<{}> & InjectedFormProps<CollectionCreateFormDialogData>;
 
 export const DialogCollectionCreate = (props: DialogCollectionProps) =>
     <FormDialog
-        dialogTitle='Create a collection'
+        dialogTitle='New collection'
         formFields={CollectionAddFields}
         submitLabel='Create a Collection'
         {...props}
     />;
 
+const CreateCollectionPropertiesList = resourcePropertiesList(COLLECTION_CREATE_FORM_NAME);
+
 const CollectionAddFields = () => <span>
+    <ResourceParentField />
     <CollectionNameField />
     <CollectionDescriptionField />
-    {/* <FileUpload
-        files={this.props.files}
-        disabled={busy}
-        onDrop={files => this.props.dispatch(collectionUploaderActions.SET_UPLOAD_FILES(files))} /> */}
-</span>;
\ No newline at end of file
+    <FormLabel>Properties</FormLabel>
+    <FormGroup>
+        <CreateCollectionPropertiesForm />
+        <CreateCollectionPropertiesList />
+    </FormGroup>
+    <CollectionStorageClassesField defaultClasses={['default']} />
+    <Field
+        name='files'
+        label='Files'
+        component={FileUploaderField} />
+</span>;
+