X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/40b55e355fe0a206a4cb3eec676e44d935b7d5ec..c952afae1af2fb31b68be04f70bd7ae6f9d52aba:/src/views-components/dialog-create/dialog-project-create.tsx diff --git a/src/views-components/dialog-create/dialog-project-create.tsx b/src/views-components/dialog-create/dialog-project-create.tsx index 81e9485c..d85a304e 100644 --- a/src/views-components/dialog-create/dialog-project-create.tsx +++ b/src/views-components/dialog-create/dialog-project-create.tsx @@ -5,31 +5,78 @@ import React from 'react'; import { InjectedFormProps } from 'redux-form'; import { WithDialogProps } from 'store/dialog/with-dialog'; -import { ProjectCreateFormDialogData } from 'store/projects/project-create-actions'; +import { ProjectCreateFormDialogData, PROJECT_CREATE_FORM_NAME } from 'store/projects/project-create-actions'; import { FormDialog } from 'components/form-dialog/form-dialog'; -import { ProjectNameField, ProjectDescriptionField } from 'views-components/form-fields/project-form-fields'; +import { ProjectNameField, ProjectDescriptionField, UsersField } from 'views-components/form-fields/project-form-fields'; import { CreateProjectPropertiesForm } from 'views-components/project-properties/create-project-properties-form'; -import { CreateProjectPropertiesList } from 'views-components/project-properties/create-project-properties-list'; import { ResourceParentField } from '../form-fields/resource-form-fields'; -import { FormGroup, FormLabel } from '@material-ui/core'; +import { FormGroup, FormLabel, StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core'; +import { resourcePropertiesList } from 'views-components/resource-properties/resource-properties-list'; +import { GroupClass } from 'models/group'; -type DialogProjectProps = WithDialogProps<{}> & InjectedFormProps; +type CssRules = 'propertiesForm' | 'description'; -export const DialogProjectCreate = (props: DialogProjectProps) => - = theme => ({ + propertiesForm: { + marginTop: theme.spacing.unit * 2, + marginBottom: theme.spacing.unit * 2, + }, + description: { + marginTop: theme.spacing.unit * 2, + marginBottom: theme.spacing.unit * 2, + }, +}); + +type DialogProjectProps = WithDialogProps<{sourcePanel: GroupClass}> & InjectedFormProps; + +export const DialogProjectCreate = (props: DialogProjectProps) => { + let title = 'New Project'; + let fields = ProjectAddFields; + const sourcePanel = props.data.sourcePanel || ''; + + if (sourcePanel === GroupClass.ROLE) { + title = 'New Group'; + fields = GroupAddFields; + } + + return ; +}; + +const CreateProjectPropertiesList = resourcePropertiesList(PROJECT_CREATE_FORM_NAME); + +const ProjectAddFields = withStyles(styles)( + ({ classes }: WithStyles) => + + +
+ +
+
+ Properties + + + + +
+
); -const ProjectAddFields = () => - - - - Properties - - - - -; +const GroupAddFields = withStyles(styles)( + ({ classes }: WithStyles) => + + +
+ +
+
+ Properties + + + + +
+
);