summaryrefslogtreecommitdiffstats
path: root/webapp/components/admin_console/admin_settings.jsx
diff options
context:
space:
mode:
authorHarrison Healey <harrisonmhealey@gmail.com>2016-07-06 16:07:56 -0400
committerGitHub <noreply@github.com>2016-07-06 16:07:56 -0400
commitb114062c1b8128fe650fce72454ba4f1fcbe5733 (patch)
tree0a51e9d1342bf89c435662c618d9aac5ba651b4b /webapp/components/admin_console/admin_settings.jsx
parentb1520d0b9458d1dab09d9e3e05dd7522fc28ba57 (diff)
downloadchat-b114062c1b8128fe650fce72454ba4f1fcbe5733.tar.gz
chat-b114062c1b8128fe650fce72454ba4f1fcbe5733.tar.bz2
chat-b114062c1b8128fe650fce72454ba4f1fcbe5733.zip
PLT-3237 Update displayed config values in admin console after saving (#3506)
* Reloaded admin console data when settings are saved * Fixed attempting to save an invalid config setting overwriting the stored config
Diffstat (limited to 'webapp/components/admin_console/admin_settings.jsx')
-rw-r--r--webapp/components/admin_console/admin_settings.jsx13
1 files changed, 9 insertions, 4 deletions
diff --git a/webapp/components/admin_console/admin_settings.jsx b/webapp/components/admin_console/admin_settings.jsx
index 2ab2c6332..e11d843a7 100644
--- a/webapp/components/admin_console/admin_settings.jsx
+++ b/webapp/components/admin_console/admin_settings.jsx
@@ -24,11 +24,11 @@ export default class AdminSettings extends React.Component {
this.handleSubmit = this.handleSubmit.bind(this);
this.onKeyDown = this.onKeyDown.bind(this);
- this.state = {
+ this.state = Object.assign(this.getStateFromConfig(props.config), {
saveNeeded: false,
saving: false,
serverError: null
- };
+ });
}
handleChange(id, value) {
@@ -60,12 +60,17 @@ export default class AdminSettings extends React.Component {
serverError: null
});
- const config = this.getConfigFromState(this.props.config);
+ // clone config so that we aren't modifying data in the stores
+ let config = JSON.parse(JSON.stringify(this.props.config));
+ config = this.getConfigFromState(config);
Client.saveConfig(
config,
() => {
- AsyncClient.getConfig();
+ AsyncClient.getConfig((savedConfig) => {
+ this.setState(this.getStateFromConfig(savedConfig));
+ });
+
this.setState({
saveNeeded: false,
saving: false