Made all settings save on enter (#3221)
Этот коммит содержится в:
@@ -8,6 +8,7 @@ import Client from 'utils/web_client.jsx';
|
|||||||
|
|
||||||
import FormError from 'components/form_error.jsx';
|
import FormError from 'components/form_error.jsx';
|
||||||
import SaveButton from 'components/admin_console/save_button.jsx';
|
import SaveButton from 'components/admin_console/save_button.jsx';
|
||||||
|
import Constants from 'utils/constants.jsx';
|
||||||
|
|
||||||
export default class AdminSettings extends React.Component {
|
export default class AdminSettings extends React.Component {
|
||||||
static get propTypes() {
|
static get propTypes() {
|
||||||
@@ -21,6 +22,7 @@ export default class AdminSettings extends React.Component {
|
|||||||
|
|
||||||
this.handleChange = this.handleChange.bind(this);
|
this.handleChange = this.handleChange.bind(this);
|
||||||
this.handleSubmit = this.handleSubmit.bind(this);
|
this.handleSubmit = this.handleSubmit.bind(this);
|
||||||
|
this.onKeyDown = this.onKeyDown.bind(this);
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
saveNeeded: false,
|
saveNeeded: false,
|
||||||
@@ -36,6 +38,20 @@ export default class AdminSettings extends React.Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
document.addEventListener('keydown', this.onKeyDown);
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
document.removeEventListener('keydown', this.onKeyDown);
|
||||||
|
}
|
||||||
|
|
||||||
|
onKeyDown(e) {
|
||||||
|
if (e.keyCode === Constants.KeyCodes.ENTER) {
|
||||||
|
this.handleSubmit(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
handleSubmit(e) {
|
handleSubmit(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,32 @@
|
|||||||
// See License.txt for license information.
|
// See License.txt for license information.
|
||||||
|
|
||||||
import {FormattedMessage} from 'react-intl';
|
import {FormattedMessage} from 'react-intl';
|
||||||
|
import * as Utils from 'utils/utils.jsx';
|
||||||
|
import Constants from 'utils/constants.jsx';
|
||||||
|
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
export default class SettingItemMax extends React.Component {
|
export default class SettingItemMax extends React.Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
|
||||||
|
this.onKeyDown = this.onKeyDown.bind(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
onKeyDown(e) {
|
||||||
|
if (e.keyCode === Constants.KeyCodes.ENTER) {
|
||||||
|
this.props.submit(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
document.addEventListener('keydown', this.onKeyDown);
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
document.removeEventListener('keydown', this.onKeyDown);
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
var clientError = null;
|
var clientError = null;
|
||||||
if (this.props.client_error) {
|
if (this.props.client_error) {
|
||||||
@@ -25,16 +47,14 @@ export default class SettingItemMax extends React.Component {
|
|||||||
var submit = '';
|
var submit = '';
|
||||||
if (this.props.submit) {
|
if (this.props.submit) {
|
||||||
submit = (
|
submit = (
|
||||||
<a
|
<input
|
||||||
|
type='submit'
|
||||||
className='btn btn-sm btn-primary'
|
className='btn btn-sm btn-primary'
|
||||||
href='#'
|
href='#'
|
||||||
onClick={this.props.submit}
|
onClick={this.props.submit}
|
||||||
|
value={Utils.localizeMessage('setting_item_max.save', 'Save')}
|
||||||
>
|
>
|
||||||
<FormattedMessage
|
</input>
|
||||||
id='setting_item_max.save'
|
|
||||||
defaultMessage='Save'
|
|
||||||
/>
|
|
||||||
</a>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user