// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import React from 'react'; import * as Utils from 'utils/utils.jsx'; import AdminSettings from './admin_settings.jsx'; import {FormattedMessage} from 'react-intl'; import SettingsGroup from './settings_group.jsx'; import TextSetting from './text_setting.jsx'; import ReloadConfigButton from './reload_config.jsx'; import WebserverModeDropdownSetting from './webserver_mode_dropdown_setting.jsx'; export default class ConfigurationSettings extends AdminSettings { constructor(props) { super(props); this.getConfigFromState = this.getConfigFromState.bind(this); this.renderSettings = this.renderSettings.bind(this); } componentWillReceiveProps(nextProps) { // special case for this page since we don't update AdminSettings components when the // stored config changes, but we want this page to update when you reload the config this.setState(this.getStateFromConfig(nextProps.config)); } getConfigFromState(config) { config.ServiceSettings.SiteURL = this.state.siteURL; config.ServiceSettings.ListenAddress = this.state.listenAddress; config.ServiceSettings.WebserverMode = this.state.webserverMode; return config; } getStateFromConfig(config) { return { siteURL: config.ServiceSettings.SiteURL, listenAddress: config.ServiceSettings.ListenAddress, webserverMode: config.ServiceSettings.WebserverMode }; } renderTitle() { return (

); } renderSettings() { return ( } placeholder={Utils.localizeMessage('admin.service.siteURLExample', 'Ex "https://mattermost.example.com:1234"')} helpText={ } value={this.state.siteURL} onChange={this.handleChange} /> } placeholder={Utils.localizeMessage('admin.service.listenExample', 'Ex ":8065"')} helpText={ } value={this.state.listenAddress} onChange={this.handleChange} /> ); } }