1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import React from 'react';
6 import { InjectedFormProps } from 'redux-form';
7 import { WithDialogProps } from 'store/dialog/with-dialog';
8 import { CollectionUpdateFormDialogData, COLLECTION_UPDATE_FORM_NAME } from 'store/collections/collection-update-actions';
9 import { FormDialog } from 'components/form-dialog/form-dialog';
12 CollectionDescriptionField,
13 CollectionStorageClassesField
14 } from 'views-components/form-fields/collection-form-fields';
15 import { UpdateCollectionPropertiesForm } from 'views-components/collection-properties/update-collection-properties-form';
16 import { CustomStyleRulesCallback } from 'common/custom-theme';
17 import { FormGroup, FormLabel, withStyles, WithStyles } from '@material-ui/core';
18 import { resourcePropertiesList } from 'views-components/resource-properties/resource-properties-list';
20 type CssRules = 'propertiesForm';
22 const styles: CustomStyleRulesCallback<CssRules> = theme => ({
24 marginTop: theme.spacing(2),
25 marginBottom: theme.spacing(2),
29 type DialogCollectionProps = WithDialogProps<{}> & InjectedFormProps<CollectionUpdateFormDialogData>;
31 export const DialogCollectionUpdate = (props: DialogCollectionProps) =>
33 dialogTitle='Edit Collection'
34 formFields={CollectionEditFields as any}
39 const UpdateCollectionPropertiesList = resourcePropertiesList(COLLECTION_UPDATE_FORM_NAME);
41 const CollectionEditFields = withStyles(styles)(
42 ({ classes }: WithStyles<CssRules>) => <span>
43 <CollectionNameField />
44 <CollectionDescriptionField />
45 <div className={classes.propertiesForm}>
46 <FormLabel>Properties</FormLabel>
48 <UpdateCollectionPropertiesForm />
49 <UpdateCollectionPropertiesList />
52 <CollectionStorageClassesField />