[ARVADOS-WORKBENCH2] created: 1.1.4-641-gc178727
Git user
git at public.curoverse.com
Sat Aug 18 05:20:46 EDT 2018
at c1787278642d2ef02234ea27f94aaae9cdd52d40 (commit)
commit c1787278642d2ef02234ea27f94aaae9cdd52d40
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Sat Aug 18 11:20:35 2018 +0200
Implement rename dialog usinf FormDialog
Feature #14015
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/components/form-dialog/form-dialog.tsx b/src/components/form-dialog/form-dialog.tsx
index 29c0b16..dee8924 100644
--- a/src/components/form-dialog/form-dialog.tsx
+++ b/src/components/form-dialog/form-dialog.tsx
@@ -8,7 +8,7 @@ import { Dialog, DialogActions, DialogContent, DialogTitle } from '@material-ui/
import { Button, StyleRulesCallback, WithStyles, withStyles, CircularProgress } from '@material-ui/core';
import { WithDialogProps } from '~/store/dialog/with-dialog';
-type CssRules = "button" | "lastButton" | "formContainer" | "textField" | "dialog" | "dialogTitle" | "progressIndicator" | "dialogActions";
+type CssRules = "button" | "lastButton" | "formContainer" | "dialogTitle" | "progressIndicator" | "dialogActions";
const styles: StyleRulesCallback<CssRules> = theme => ({
button: {
@@ -26,13 +26,6 @@ const styles: StyleRulesCallback<CssRules> = theme => ({
dialogTitle: {
paddingBottom: "0"
},
- textField: {
- marginTop: "32px",
- },
- dialog: {
- minWidth: "600px",
- minHeight: "320px"
- },
progressIndicator: {
position: "absolute",
minWidth: "20px",
@@ -45,7 +38,7 @@ const styles: StyleRulesCallback<CssRules> = theme => ({
interface DialogProjectProps {
cancelLabel?: string;
dialogTitle: string;
- formFields: React.ComponentType<InjectedFormProps<any>>;
+ formFields: React.ComponentType<InjectedFormProps<any> & WithDialogProps<any>>;
submitLabel?: string;
}
@@ -54,35 +47,34 @@ export const FormDialog = withStyles(styles)((props: DialogProjectProps & WithDi
open={props.open}
onClose={props.closeDialog}
disableBackdropClick={props.submitting}
- disableEscapeKeyDown={props.submitting}>
- <div className={props.classes.dialog}>
- <form>
- <DialogTitle className={props.classes.dialogTitle}>
- {props.dialogTitle}
- </DialogTitle>
- <DialogContent className={props.classes.formContainer}>
- <props.formFields {...props} />
- </DialogContent>
- <DialogActions className={props.classes.dialogActions}>
- <Button
- onClick={props.closeDialog}
- className={props.classes.button}
- color="primary"
- disabled={props.submitting}>
- {props.cancelLabel || 'Cancel'}
- </Button>
- <Button
- onClick={props.handleSubmit}
- className={props.classes.lastButton}
- color="primary"
- disabled={props.invalid || props.submitting || props.pristine}
- variant="contained">
- {props.submitLabel || 'Submit'}
- {props.submitting && <CircularProgress size={20} className={props.classes.progressIndicator} />}
- </Button>
- </DialogActions>
- </form>
- </div>
+ disableEscapeKeyDown={props.submitting}
+ fullWidth>
+ <form>
+ <DialogTitle className={props.classes.dialogTitle}>
+ {props.dialogTitle}
+ </DialogTitle>
+ <DialogContent className={props.classes.formContainer}>
+ <props.formFields {...props} />
+ </DialogContent>
+ <DialogActions className={props.classes.dialogActions}>
+ <Button
+ onClick={props.closeDialog}
+ className={props.classes.button}
+ color="primary"
+ disabled={props.submitting}>
+ {props.cancelLabel || 'Cancel'}
+ </Button>
+ <Button
+ onClick={props.handleSubmit}
+ className={props.classes.lastButton}
+ color="primary"
+ disabled={props.invalid || props.submitting || props.pristine}
+ variant="contained">
+ {props.submitLabel || 'Submit'}
+ {props.submitting && <CircularProgress size={20} className={props.classes.progressIndicator} />}
+ </Button>
+ </DialogActions>
+ </form>
</Dialog>
);
diff --git a/src/views-components/rename-file-dialog/rename-file-dialog.tsx b/src/views-components/rename-file-dialog/rename-file-dialog.tsx
index 37028f9..f23d4c0 100644
--- a/src/views-components/rename-file-dialog/rename-file-dialog.tsx
+++ b/src/views-components/rename-file-dialog/rename-file-dialog.tsx
@@ -2,11 +2,14 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { Dispatch } from "redux";
-import { reduxForm, reset, startSubmit, stopSubmit } from "redux-form";
-import { withDialog } from "~/store/dialog/with-dialog";
+import * as React from 'react';
+import { Dispatch, compose } from 'redux';
+import { reduxForm, reset, startSubmit, stopSubmit, InjectedFormProps, Field } from 'redux-form';
+import { withDialog, WithDialogProps } from '~/store/dialog/with-dialog';
import { dialogActions } from "~/store/dialog/dialog-actions";
-import { RenameDialog } from "~/components/rename-dialog/rename-dialog";
+import { FormDialog } from '~/components/form-dialog/form-dialog';
+import { DialogContentText } from '@material-ui/core';
+import { TextField } from '~/components/text-field/text-field';
export const RENAME_FILE_DIALOG = 'renameFileDialog';
@@ -16,13 +19,30 @@ export const openRenameFileDialog = (originalName: string) =>
dispatch(dialogActions.OPEN_DIALOG({ id: RENAME_FILE_DIALOG, data: originalName }));
};
-export const [RenameFileDialog] = [RenameDialog]
- .map(withDialog(RENAME_FILE_DIALOG))
- .map(reduxForm({
+export const RenameFileDialog = compose(
+ withDialog(RENAME_FILE_DIALOG),
+ reduxForm({
form: RENAME_FILE_DIALOG,
onSubmit: (data, dispatch) => {
dispatch(startSubmit(RENAME_FILE_DIALOG));
// TODO: call collection file renaming action here
setTimeout(() => dispatch(stopSubmit(RENAME_FILE_DIALOG, { name: 'Invalid name' })), 2000);
}
- }));
+ })
+)((props: WithDialogProps<string> & InjectedFormProps<{ name: string }>) =>
+ <FormDialog
+ dialogTitle='Rename'
+ formFields={RenameDialogFormFields}
+ submitLabel='Ok'
+ {...props}
+ />);
+
+const RenameDialogFormFields = (props: WithDialogProps<string>) => <>
+ <DialogContentText>
+ {`Please, enter a new name for ${props.data}`}
+ </DialogContentText>
+ <Field
+ name='name'
+ component={TextField}
+ />
+</>;
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list