PLT-3168 Hide EnableFormatting advanced setting unless testing is enabled (#3237)

* Added EnableTesting to the client config

* Hid EnableFormatting advanced setting unless testing is enabled
This commit is contained in:
Harrison Healey
2016-06-05 03:35:39 -03:00
committed by enahum
parent 96373a0cc7
commit 2965a00e9b
2 changed files with 87 additions and 73 deletions
+1
View File
@@ -217,6 +217,7 @@ func getClientConfig(c *model.Config) map[string]string {
props["EnableOnlyAdminIntegrations"] = strconv.FormatBool(*c.ServiceSettings.EnableOnlyAdminIntegrations)
props["EnablePostUsernameOverride"] = strconv.FormatBool(c.ServiceSettings.EnablePostUsernameOverride)
props["EnablePostIconOverride"] = strconv.FormatBool(c.ServiceSettings.EnablePostIconOverride)
props["EnableTesting"] = strconv.FormatBool(c.ServiceSettings.EnableTesting)
props["EnableDeveloper"] = strconv.FormatBool(*c.ServiceSettings.EnableDeveloper)
props["SendEmailNotifications"] = strconv.FormatBool(c.EmailSettings.SendEmailNotifications)
@@ -25,6 +25,8 @@ export default class AdvancedSettingsDisplay extends React.Component {
this.toggleFeature = this.toggleFeature.bind(this);
this.saveEnabledFeatures = this.saveEnabledFeatures.bind(this);
this.renderFormattingSection = this.renderFormattingSection.bind(this);
const preReleaseFeaturesKeys = Object.keys(PreReleaseFeatures);
const advancedSettings = PreferenceStore.getCategory(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS);
const settings = {
@@ -137,6 +139,85 @@ export default class AdvancedSettingsDisplay extends React.Component {
);
}
renderFormattingSection() {
if (window.mm_config.EnableTesting === 'false') {
return null;
}
if (this.props.activeSection === 'formatting') {
return (
<SettingItemMax
title={
<FormattedMessage
id='user.settings.advance.formattingTitle'
defaultMessage='Enable Post Formatting'
/>
}
inputs={
<div>
<div className='radio'>
<label>
<input
type='radio'
name='formatting'
checked={this.state.settings.formatting !== 'false'}
onChange={this.updateSetting.bind(this, 'formatting', 'true')}
/>
<FormattedMessage
id='user.settings.advance.on'
defaultMessage='On'
/>
</label>
<br/>
</div>
<div className='radio'>
<label>
<input
type='radio'
name='formatting'
checked={this.state.settings.formatting === 'false'}
onChange={this.updateSetting.bind(this, 'formatting', 'false')}
/>
<FormattedMessage
id='user.settings.advance.off'
defaultMessage='Off'
/>
</label>
<br/>
</div>
<div>
<br/>
<FormattedMessage
id='user.settings.advance.formattingDesc'
defaultMessage='If enabled, posts will be formatted to create links, show emoji, style the text, and add line breaks. By default, this setting is enabled. Changing this setting requires the page to be refreshed.'
/>
</div>
</div>
}
submit={() => this.handleSubmit('formatting')}
server_error={this.state.serverError}
updateSection={(e) => {
this.updateSection('');
e.preventDefault();
}}
/>
);
}
return (
<SettingItemMin
title={
<FormattedMessage
id='user.settings.advance.formattingTitle'
defaultMessage='Enable Post Formatting'
/>
}
describe={this.renderOnOffLabel(this.state.settings.formatting)}
updateSection={() => this.props.updateSection('formatting')}
/>
);
}
renderFeatureLabel(feature) {
switch (feature) {
case 'MARKDOWN_PREVIEW':
@@ -248,78 +329,10 @@ export default class AdvancedSettingsDisplay extends React.Component {
);
}
let formattingSection;
if (this.props.activeSection === 'formatting') {
formattingSection = (
<SettingItemMax
title={
<FormattedMessage
id='user.settings.advance.formattingTitle'
defaultMessage='Enable Post Formatting'
/>
}
inputs={
<div>
<div className='radio'>
<label>
<input
type='radio'
name='formatting'
checked={this.state.settings.formatting !== 'false'}
onChange={this.updateSetting.bind(this, 'formatting', 'true')}
/>
<FormattedMessage
id='user.settings.advance.on'
defaultMessage='On'
/>
</label>
<br/>
</div>
<div className='radio'>
<label>
<input
type='radio'
name='formatting'
checked={this.state.settings.formatting === 'false'}
onChange={this.updateSetting.bind(this, 'formatting', 'false')}
/>
<FormattedMessage
id='user.settings.advance.off'
defaultMessage='Off'
/>
</label>
<br/>
</div>
<div>
<br/>
<FormattedMessage
id='user.settings.advance.formattingDesc'
defaultMessage='If enabled, posts will be formatted to create links, show emoji, style the text, and add line breaks. By default, this setting is enabled. Changing this setting requires the page to be refreshed.'
/>
</div>
</div>
}
submit={() => this.handleSubmit('formatting')}
server_error={serverError}
updateSection={(e) => {
this.updateSection('');
e.preventDefault();
}}
/>
);
} else {
formattingSection = (
<SettingItemMin
title={
<FormattedMessage
id='user.settings.advance.formattingTitle'
defaultMessage='Enable Post Formatting'
/>
}
describe={this.renderOnOffLabel(this.state.settings.formatting)}
updateSection={() => this.props.updateSection('formatting')}
/>
);
const formattingSection = this.renderFormattingSection();
let formattingSectionDivider = null;
if (formattingSection) {
formattingSectionDivider = <div className='divider-light'/>;
}
let previewFeaturesSection;
@@ -432,7 +445,7 @@ export default class AdvancedSettingsDisplay extends React.Component {
</h3>
<div className='divider-dark first'/>
{ctrlSendSection}
<div className='divider-light'/>
{formattingSectionDivider}
{formattingSection}
{previewFeaturesSectionDivider}
{previewFeaturesSection}