diff options
author | Florian Orben <florian.orben@gmail.com> | 2015-11-13 23:05:08 +0100 |
---|---|---|
committer | Florian Orben <florian.orben@gmail.com> | 2015-11-27 23:17:45 +0100 |
commit | 6e1e5f7ae4dcc5645a5412e17b36e5d95bf4f7c6 (patch) | |
tree | f7a86454777d12f44a519afe916dd5613cc6edac /web | |
parent | 79e9244dc9977c6ec6adc78631c0485efa9f60af (diff) | |
download | chat-6e1e5f7ae4dcc5645a5412e17b36e5d95bf4f7c6.tar.gz chat-6e1e5f7ae4dcc5645a5412e17b36e5d95bf4f7c6.tar.bz2 chat-6e1e5f7ae4dcc5645a5412e17b36e5d95bf4f7c6.zip |
only show advanced settings section if there are any pre-release features
Diffstat (limited to 'web')
-rw-r--r-- | web/react/components/user_settings/user_settings_advanced.jsx | 105 | ||||
-rw-r--r-- | web/react/utils/constants.jsx | 3 | ||||
-rw-r--r-- | web/react/utils/utils.jsx | 2 |
3 files changed, 59 insertions, 51 deletions
diff --git a/web/react/components/user_settings/user_settings_advanced.jsx b/web/react/components/user_settings/user_settings_advanced.jsx index ae7f41020..cfb360152 100644 --- a/web/react/components/user_settings/user_settings_advanced.jsx +++ b/web/react/components/user_settings/user_settings_advanced.jsx @@ -32,7 +32,7 @@ export default class AdvancedSettingsDisplay extends React.Component { let enabledFeatures = 0; PreferenceStore.getPreferences(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS).forEach((setting) => { - if (setting.name.lastIndexOf('feature_enabled_') === 0) { + if (setting.name.lastIndexOf(Constants.FeatureTogglePrefix) === 0) { settings[setting.name] = setting.value; if (setting.value === 'true') { enabledFeatures++; @@ -55,11 +55,11 @@ export default class AdvancedSettingsDisplay extends React.Component { toggleFeature(feature, checked) { const settings = this.state.settings; - settings['feature_enabled_' + feature] = String(checked); + settings[Constants.FeatureTogglePrefix + feature] = String(checked); let enabledFeatures = 0; Object.keys(this.state.settings).forEach((setting) => { - if (setting.lastIndexOf('feature_enabled_') === 0 && this.state.settings[setting] === 'true') { + if (setting.lastIndexOf(Constants.FeatureTogglePrefix) === 0 && this.state.settings[setting] === 'true') { enabledFeatures++; } }); @@ -70,7 +70,7 @@ export default class AdvancedSettingsDisplay extends React.Component { saveEnabledFeatures() { const features = []; Object.keys(this.state.settings).forEach((setting) => { - if (setting.lastIndexOf('feature_enabled_') === 0) { + if (setting.lastIndexOf(Constants.FeatureTogglePrefix) === 0) { features.push(setting); } }); @@ -167,55 +167,62 @@ export default class AdvancedSettingsDisplay extends React.Component { } let previewFeaturesSection; - if (this.props.activeSection === 'advancedPreviewFeatures') { - const inputs = []; + let previewFeaturesSectionDivider; + if (this.state.preReleaseFeatures.length > 0) { + previewFeaturesSectionDivider = ( + <div className='divider-light'/> + ); - this.state.preReleaseFeatures.forEach((feature) => { - inputs.push( - <div key={'advancedPreviewFeatures_' + feature.label}> - <div className='checkbox'> - <label> - <input - type='checkbox' - checked={this.state.settings['feature_enabled_' + feature.label] === 'true'} - onChange={(e) => { - this.toggleFeature(feature.label, e.target.checked); - }} - /> - {feature.description} - </label> + if (this.props.activeSection === 'advancedPreviewFeatures') { + const inputs = []; + + this.state.preReleaseFeatures.forEach((feature) => { + inputs.push( + <div key={'advancedPreviewFeatures_' + feature.label}> + <div className='checkbox'> + <label> + <input + type='checkbox' + checked={this.state.settings[Constants.FeatureTogglePrefix + feature.label] === 'true'} + onChange={(e) => { + this.toggleFeature(feature.label, e.target.checked); + }} + /> + {feature.description} + </label> + </div> </div> + ); + }); + + inputs.push( + <div key='advancedPreviewFeatures_helptext'> + <br/> + {'Check any pre-released features you\'d like to preview.'} </div> ); - }); - inputs.push( - <div key='advancedPreviewFeatures_helptext'> - <br/> - {'Check any pre-released features you\'d like to preview.'} - </div> - ); - - previewFeaturesSection = ( - <SettingItemMax - title='Preview pre-release features' - inputs={inputs} - submit={this.saveEnabledFeatures} - server_error={serverError} - updateSection={(e) => { - this.updateSection(''); - e.preventDefault(); - }} - /> - ); - } else { - previewFeaturesSection = ( - <SettingItemMin - title='Preview pre-release features' - describe={this.state.enabledFeatures + (this.state.enabledFeatures === 1 ? ' Feature ' : ' Features ') + 'enabled'} - updateSection={() => this.props.updateSection('advancedPreviewFeatures')} - /> - ); + previewFeaturesSection = ( + <SettingItemMax + title='Preview pre-release features' + inputs={inputs} + submit={this.saveEnabledFeatures} + server_error={serverError} + updateSection={(e) => { + this.updateSection(''); + e.preventDefault(); + }} + /> + ); + } else { + previewFeaturesSection = ( + <SettingItemMin + title='Preview pre-release features' + describe={this.state.enabledFeatures + (this.state.enabledFeatures === 1 ? ' Feature ' : ' Features ') + 'enabled'} + updateSection={() => this.props.updateSection('advancedPreviewFeatures')} + /> + ); + } } return ( @@ -245,7 +252,7 @@ export default class AdvancedSettingsDisplay extends React.Component { <h3 className='tab-header'>{'Advanced Settings'}</h3> <div className='divider-dark first'/> {ctrlSendSection} - <div className='divider-light'/> + {previewFeaturesSectionDivider} {previewFeaturesSection} <div className='divider-dark'/> </div> diff --git a/web/react/utils/constants.jsx b/web/react/utils/constants.jsx index 372e15556..31c2b940e 100644 --- a/web/react/utils/constants.jsx +++ b/web/react/utils/constants.jsx @@ -398,5 +398,6 @@ export default { }, NotificationPrefs: { MENTION: 'mention' - } + }, + FeatureTogglePrefix: 'feature_enabled_' }; diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx index 432cb05e0..58e570455 100644 --- a/web/react/utils/utils.jsx +++ b/web/react/utils/utils.jsx @@ -1223,5 +1223,5 @@ export function getPostTerm(post) { } export function featureToggle(feature) { - return PreferenceStore.getPreference(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'feature_enabled_' + feature, {value: 'false'}).value === 'true'; + return PreferenceStore.getPreference(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, Constants.FeatureTogglePrefix + feature, {value: 'false'}).value === 'true'; } |