18123: Use update project dialog for creating groups and remove create group dialog.
[arvados-workbench2.git] / src / views-components / dialog-update / dialog-project-update.tsx
index ac14e5dcbde66e618390ae2ced543aec57352c4e..64f7543362ebf2940cb301471ffa037a125f81fa 100644 (file)
@@ -7,19 +7,38 @@ import { InjectedFormProps } from 'redux-form';
 import { WithDialogProps } from 'store/dialog/with-dialog';
 import { ProjectUpdateFormDialogData } from 'store/projects/project-update-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 { GroupClass } from 'models/group';
 
-type DialogProjectProps = WithDialogProps<{}> & InjectedFormProps<ProjectUpdateFormDialogData>;
+type DialogProjectProps = WithDialogProps<{sourcePanel: GroupClass, showUsersField?: boolean}> & InjectedFormProps<ProjectUpdateFormDialogData>;
 
-export const DialogProjectUpdate = (props: DialogProjectProps) =>
-    <FormDialog
-        dialogTitle='Edit Project'
-        formFields={ProjectEditFields}
+export const DialogProjectUpdate = (props: DialogProjectProps) => {
+    let title = 'Edit Project';
+    let fields = ProjectEditFields;
+    const sourcePanel = props.data.sourcePanel || '';
+    const showUsersField = !!props.data.showUsersField;
+
+    if (sourcePanel === GroupClass.ROLE) {
+        title = showUsersField ? 'Create Group' : 'Edit Group';
+        fields = showUsersField ? GroupAddFields : ProjectEditFields;
+    }
+
+    return <FormDialog
+        dialogTitle={title}
+        formFields={fields}
         submitLabel='Save'
         {...props}
     />;
+};
 
+// Also used as "Group Edit Fields"
 const ProjectEditFields = () => <span>
     <ProjectNameField />
     <ProjectDescriptionField />
 </span>;
+
+const GroupAddFields = () => <span>
+    <ProjectNameField />
+    <UsersField />
+    <ProjectDescriptionField />
+</span>;