18123: Use update project dialog for creating groups and remove create group dialog.
[arvados-workbench2.git] / src / views-components / dialog-forms / update-project-dialog.ts
index 36d5106bf13e3ef1798cb07b9d036db221d2240e..4ba03f2ffa927ea681f4cdcd97726c572149a3c7 100644 (file)
@@ -4,17 +4,32 @@
 
 import { compose } from "redux";
 import { reduxForm } from 'redux-form';
-import { withDialog } from "~/store/dialog/with-dialog";
-import { DialogProjectUpdate } from '~/views-components/dialog-update/dialog-project-update';
-import { PROJECT_UPDATE_FORM_NAME, ProjectUpdateFormDialogData } from '~/store/projects/project-update-actions';
-import { updateProject } from '~/store/workbench/workbench-actions';
+import { withDialog } from "store/dialog/with-dialog";
+import { DialogProjectUpdate } from 'views-components/dialog-update/dialog-project-update';
+import { PROJECT_UPDATE_FORM_NAME, ProjectUpdateFormDialogData } from 'store/projects/project-update-actions';
+import { updateProject, updateGroup } from 'store/workbench/workbench-actions';
+import { GroupClass } from "models/group";
+import { createGroup } from "store/groups-panel/groups-panel-actions";
 
 export const UpdateProjectDialog = compose(
     withDialog(PROJECT_UPDATE_FORM_NAME),
     reduxForm<ProjectUpdateFormDialogData>({
         form: PROJECT_UPDATE_FORM_NAME,
-        onSubmit: (data, dispatch) => {
-            dispatch(updateProject(data));
+        onSubmit: (data, dispatch, props) => {
+            switch (props.data.sourcePanel) {
+                case GroupClass.PROJECT:
+                    dispatch(updateProject(data));
+                    break;
+                case GroupClass.ROLE:
+                    if (data.uuid) {
+                        dispatch(updateGroup(data));
+                    } else {
+                        dispatch(createGroup(data));
+                    }
+                    break;
+                default:
+                    break;
+            }
         }
     })
-)(DialogProjectUpdate);
\ No newline at end of file
+)(DialogProjectUpdate);