X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/52dd0ffeffa30667e7f66ca2f5f9ff2b3dfe8f7a..c952afae1af2fb31b68be04f70bd7ae6f9d52aba:/src/views-components/dialog-update/dialog-collection-update.tsx diff --git a/src/views-components/dialog-update/dialog-collection-update.tsx b/src/views-components/dialog-update/dialog-collection-update.tsx index 18c43f2d..d77d10ff 100644 --- a/src/views-components/dialog-update/dialog-collection-update.tsx +++ b/src/views-components/dialog-update/dialog-collection-update.tsx @@ -2,104 +2,51 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; -import { reduxForm, Field } from 'redux-form'; -import { compose } from 'redux'; -import { ArvadosTheme } from '~/common/custom-theme'; -import { Dialog, DialogActions, DialogContent, DialogTitle, StyleRulesCallback, withStyles, WithStyles, Button, CircularProgress } from '@material-ui/core'; -import { COLLECTION_NAME_VALIDATION, COLLECTION_DESCRIPTION_VALIDATION } from '~/validators/validators'; -import { COLLECTION_FORM_NAME } from '~/store/collections/updater/collection-updater-action'; -import { TextField } from '~/components/text-field/text-field'; - -type CssRules = 'content' | 'actions' | 'buttonWrapper' | 'saveButton' | 'circularProgress'; - -const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ - content: { - display: 'flex', - flexDirection: 'column' - }, - actions: { - margin: 0, - padding: `${theme.spacing.unit}px ${theme.spacing.unit * 3 - theme.spacing.unit / 2}px - ${theme.spacing.unit * 3}px ${theme.spacing.unit * 3}px` +import React from 'react'; +import { InjectedFormProps } from 'redux-form'; +import { WithDialogProps } from 'store/dialog/with-dialog'; +import { CollectionUpdateFormDialogData, COLLECTION_UPDATE_FORM_NAME } from 'store/collections/collection-update-actions'; +import { FormDialog } from 'components/form-dialog/form-dialog'; +import { + CollectionNameField, + CollectionDescriptionField, + CollectionStorageClassesField +} from 'views-components/form-fields/collection-form-fields'; +import { UpdateCollectionPropertiesForm } from 'views-components/collection-properties/update-collection-properties-form'; +import { FormGroup, FormLabel, StyleRulesCallback, withStyles, WithStyles } from '@material-ui/core'; +import { resourcePropertiesList } from 'views-components/resource-properties/resource-properties-list'; + +type CssRules = 'propertiesForm'; + +const styles: StyleRulesCallback = theme => ({ + propertiesForm: { + marginTop: theme.spacing.unit * 2, + marginBottom: theme.spacing.unit * 2, }, - buttonWrapper: { - position: 'relative' - }, - saveButton: { - boxShadow: 'none' - }, - circularProgress: { - position: 'absolute', - top: 0, - bottom: 0, - left: 0, - right: 0, - margin: 'auto' - } }); -interface DialogCollectionDataProps { - open: boolean; - handleSubmit: any; - submitting: boolean; - invalid: boolean; - pristine: boolean; -} - -interface DialogCollectionAction { - handleClose: () => void; - onSubmit: (data: { name: string, description: string }) => void; -} - -type DialogCollectionProps = DialogCollectionDataProps & DialogCollectionAction & WithStyles; - -export const DialogCollectionUpdate = compose( - reduxForm({ form: COLLECTION_FORM_NAME }), - withStyles(styles))( - - class DialogCollectionUpdate extends React.Component { - - render() { - const { classes, open, handleClose, handleSubmit, onSubmit, submitting, invalid, pristine } = this.props; - return ( - - -
onSubmit(data))}> - Edit Collection - - - - - - -
- - {submitting && } -
-
-
-
- ); - } - } - ); +type DialogCollectionProps = WithDialogProps<{}> & InjectedFormProps; + +export const DialogCollectionUpdate = (props: DialogCollectionProps) => + ; + +const UpdateCollectionPropertiesList = resourcePropertiesList(COLLECTION_UPDATE_FORM_NAME); + +const CollectionEditFields = withStyles(styles)( + ({ classes }: WithStyles) => + + +
+ Properties + + + + +
+ +
);