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 { ProjectUpdateFormDialogData } from 'store/projects/project-update-actions';
9 import { FormDialog } from 'components/form-dialog/form-dialog';
10 import { ProjectNameField, ProjectDescriptionField, UsersField } from 'views-components/form-fields/project-form-fields';
11 import { GroupClass } from 'models/group';
12 import { FormGroup, FormLabel } from '@material-ui/core';
13 import { UpdateProjectPropertiesForm } from 'views-components/project-properties/update-project-properties-form';
14 import { UpdateProjectPropertiesList } from 'views-components/project-properties/update-project-properties-list';
16 type DialogProjectProps = WithDialogProps<{sourcePanel: GroupClass, create?: boolean}> & InjectedFormProps<ProjectUpdateFormDialogData>;
18 export const DialogProjectUpdate = (props: DialogProjectProps) => {
19 let title = 'Edit Project';
20 let fields = ProjectEditFields;
21 const sourcePanel = props.data.sourcePanel || '';
22 const create = !!props.data.create;
24 if (sourcePanel === GroupClass.ROLE) {
25 title = create ? 'Create Group' : 'Edit Group';
26 fields = create ? GroupAddFields : ProjectEditFields;
37 // Also used as "Group Edit Fields"
38 const ProjectEditFields = () => <span>
40 <ProjectDescriptionField />
41 <FormLabel>Properties</FormLabel>
43 <UpdateProjectPropertiesForm />
44 <UpdateProjectPropertiesList />
48 const GroupAddFields = () => <span>
51 <ProjectDescriptionField />