webgme-dss
Version:
Design Studio for Dynamic Systems with Modelica as backend
74 lines (68 loc) • 2.86 kB
JSX
import React from 'react';
import PropTypes from 'prop-types';
import Button from '@material-ui/core/Button';
import Dialog from '@material-ui/core/Dialog';
import DialogActions from '@material-ui/core/DialogActions';
import DialogContent from '@material-ui/core/DialogContent';
import DialogContentText from '@material-ui/core/DialogContentText';
import DialogTitle from '@material-ui/core/DialogTitle';
import TextField from '@material-ui/core/TextField';
export default class SaveDialog extends React.Component {
static propTypes = {
gmeClient: PropTypes.object.isRequired,
onClose: PropTypes.func.isRequired,
};
state = {
message: '',
};
save = () => {
const {gmeClient} = this.props;
const {message} = this.state;
const prepend = 'save: ';
gmeClient.startTransaction('');
gmeClient.setRegistry('', '_save', !(gmeClient.getNode('')
.getRegistry('_save') === true), '');
gmeClient.completeTransaction(prepend + message);
this.props.onClose(true);
};
render() {
const {message} = this.state;
return (
<div>
<Dialog
open
onClose={() => this.props.onClose(false)}
aria-labelledby="save-dialog-title"
aria-describedby="save-dialog-description"
>
<DialogTitle id="save-dialog-title">Create Savepoint</DialogTitle>
<DialogContent>
<DialogContentText id="save-dialog-description">
Describe the content of the given changes of your model.
</DialogContentText>
<TextField
autoFocus
margin="dense"
id="msg"
label="Save message"
placeholder="Description of the change"
value={message}
onChange={(event) => {
this.setState({message: event.target.value});
}}
fullWidth
/>
</DialogContent>
<DialogActions>
<Button onClick={() => this.props.onClose(false)} color="primary">
Cancel
</Button>
<Button disabled={message.length === 0} onClick={() => this.save()} color="primary">
Save
</Button>
</DialogActions>
</Dialog>
</div>
);
}
}