import React from 'react'; import { Grid, Row, Col, Alert } from 'react-bootstrap'; import { Card, FormDialog, WaitIcon } from '../../components'; import { server } from '../../commons/server'; export default class Settings extends React.Component { constructor(props) { super(props); this.saveSettings = this.saveSettings.bind(this); } componentWillMount() { const self = this; // get user settings server.get('/api/sys/usersettings') .then(res => { self.setState({ doc: res }); }); this.setState({ doc: null }); } saveSettings() { // hide any message, if displayed this.setState({ msg: null }); // save preferences const self = this; return server.post('/api/sys/usersettings', this.state.doc) .then(res => { if (res && res.errors) { return Promise.reject(res.errors); } self.setState({ msg: 1 }); return true; }); } render() { const doc = this.state.doc; if (!doc) { return ; } const schema = { controls: [ { property: 'name', label: __('User.name'), type: 'string', required: true, size: { md: 12 } }, { property: 'mobile', label: __('global.mobile'), type: 'string', required: false, size: { md: 6, newLine: true } }, { property: 'email', label: __('User.email'), type: 'string', required: true, size: { md: 12, newLine: true } }, { property: 'timeZone', label: __('User.timeZone'), type: 'select', options: 'timeZones' } ] }; return ( { this.state.msg && {__('usersettings.savemsg')} } ); } } Settings.propTypes = { };