UNPKG

webgme-dss

Version:

Design Studio for Dynamic Systems with Modelica as backend

74 lines (68 loc) 2.86 kB
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> ); } }