diff options
Diffstat (limited to 'web/react/components/user_settings')
-rw-r--r-- | web/react/components/user_settings/manage_languages.jsx | 36 | ||||
-rw-r--r-- | web/react/components/user_settings/user_settings_display.jsx | 159 |
2 files changed, 104 insertions, 91 deletions
diff --git a/web/react/components/user_settings/manage_languages.jsx b/web/react/components/user_settings/manage_languages.jsx index fee6d9da2..2d1c74717 100644 --- a/web/react/components/user_settings/manage_languages.jsx +++ b/web/react/components/user_settings/manage_languages.jsx @@ -1,6 +1,8 @@ // Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. // See License.txt for license information. +import SettingItemMax from '../setting_item_max.jsx'; + import * as Client from '../../utils/client.jsx'; import * as Utils from '../../utils/utils.jsx'; @@ -69,7 +71,7 @@ export default class ManageLanguage extends React.Component { </option>); }); - return ( + const input = ( <div key='changeLanguage'> <br/> <label className='control-label'> @@ -88,24 +90,28 @@ export default class ManageLanguage extends React.Component { {options} </select> {serverError} - <div className='padding-top'> - <a - className={'btn btn-sm btn-primary'} - href='#' - onClick={this.changeLanguage} - > - <FormattedMessage - id='user.settings.languages' - defaultMessage='Set language' - /> - </a> - </div> </div> </div> ); + + return ( + <SettingItemMax + title={ + <FormattedMessage + id='user.settings.display.language' + defaultMessage='Language' + /> + } + width='medium' + submit={this.changeLanguage} + inputs={[input]} + updateSection={this.props.updateSection} + /> + ); } } ManageLanguage.propTypes = { - user: React.PropTypes.object -};
\ No newline at end of file + user: React.PropTypes.object.isRequired, + updateSection: React.PropTypes.func.isRequired +}; diff --git a/web/react/components/user_settings/user_settings_display.jsx b/web/react/components/user_settings/user_settings_display.jsx index 5f23a8995..3e468e08f 100644 --- a/web/react/components/user_settings/user_settings_display.jsx +++ b/web/react/components/user_settings/user_settings_display.jsx @@ -12,46 +12,7 @@ import * as Utils from '../../utils/utils.jsx'; import Constants from '../../utils/constants.jsx'; import {savePreferences} from '../../utils/client.jsx'; -import {intlShape, injectIntl, defineMessages, FormattedMessage} from 'mm-intl'; - -const holders = defineMessages({ - normalClock: { - id: 'user.settings.display.normalClock', - defaultMessage: '12-hour clock (example: 4:00 PM)' - }, - militaryClock: { - id: 'user.settings.display.militaryClock', - defaultMessage: '24-hour clock (example: 16:00)' - }, - clockDisplay: { - id: 'user.settings.display.clockDisplay', - defaultMessage: 'Clock Display' - }, - teammateDisplay: { - id: 'user.settings.display.teammateDisplay', - defaultMessage: 'Teammate Name Display' - }, - showNickname: { - id: 'user.settings.display.showNickname', - defaultMessage: 'Show nickname if one exists, otherwise show first and last name' - }, - showUsername: { - id: 'user.settings.display.showUsername', - defaultMessage: 'Show username (team default)' - }, - showFullname: { - id: 'user.settings.display.showFullname', - defaultMessage: 'Show first and last name' - }, - fontTitle: { - id: 'user.settings.display.fontTitle', - defaultMessage: 'Display Font' - }, - language: { - id: 'user.settings.display.language', - defaultMessage: 'Language' - } -}); +import {FormattedMessage} from 'mm-intl'; function getDisplayStateFromStores() { const militaryTime = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'use_military_time', {value: 'false'}); @@ -65,7 +26,7 @@ function getDisplayStateFromStores() { }; } -class UserSettingsDisplay extends React.Component { +export default class UserSettingsDisplay extends React.Component { constructor(props) { super(props); @@ -119,7 +80,6 @@ class UserSettingsDisplay extends React.Component { this.updateState(); } render() { - const {formatMessage} = this.props.intl; const serverError = this.state.serverError || null; let clockSection; let nameFormatSection; @@ -181,7 +141,12 @@ class UserSettingsDisplay extends React.Component { clockSection = ( <SettingItemMax - title={formatMessage(holders.clockDisplay)} + title={ + <FormattedMessage + id='user.settings.display.clockDisplay' + defaultMessage='Clock Display' + /> + } inputs={inputs} submit={this.handleSubmit} server_error={serverError} @@ -189,11 +154,21 @@ class UserSettingsDisplay extends React.Component { /> ); } else { - let describe = ''; + let describe; if (this.state.militaryTime === 'true') { - describe = formatMessage(holders.militaryClock); + describe = ( + <FormattedMessage + id='user.settings.display.militaryClock' + defaultMessage='24-hour clock (example: 16:00)' + /> + ); } else { - describe = formatMessage(holders.normalClock); + describe = ( + <FormattedMessage + id='user.settings.display.normalClock' + defaultMessage='12-hour clock (example: 4:00 PM)' + /> + ); } const handleUpdateClockSection = () => { @@ -202,7 +177,12 @@ class UserSettingsDisplay extends React.Component { clockSection = ( <SettingItemMin - title={formatMessage(holders.clockDisplay)} + title={ + <FormattedMessage + id='user.settings.display.clockDisplay' + defaultMessage='Clock Display' + /> + } describe={describe} updateSection={handleUpdateClockSection} /> @@ -284,7 +264,12 @@ class UserSettingsDisplay extends React.Component { nameFormatSection = ( <SettingItemMax - title={formatMessage(holders.teammateDisplay)} + title={ + <FormattedMessage + id='user.settings.display.teammateDisplay' + defaultMessage='Teammate Name Display' + /> + } inputs={inputs} submit={this.handleSubmit} server_error={serverError} @@ -295,18 +280,38 @@ class UserSettingsDisplay extends React.Component { /> ); } else { - let describe = ''; + let describe; if (this.state.nameFormat === 'username') { - describe = formatMessage(holders.showUsername); + describe = ( + <FormattedMessage + id='user.settings.display.showUsername' + defaultMessage='Show username (team default)' + /> + ); } else if (this.state.nameFormat === 'full_name') { - describe = formatMessage(holders.showFullname); + describe = ( + <FormattedMessage + id='user.settings.display.showFullname' + defaultMessage='Show first and last name' + /> + ); } else { - describe = formatMessage(holders.showNickname); + describe = ( + <FormattedMessage + id='user.settings.display.showNickname' + defaultMessage='Show nickname if one exists, otherwise show first and last name' + /> + ); } nameFormatSection = ( <SettingItemMin - title={formatMessage(holders.teammateDisplay)} + title={ + <FormattedMessage + id='user.settings.display.teammateDisplay' + defaultMessage='Teammate Name Display' + /> + } describe={describe} updateSection={() => { this.props.updateSection('name_format'); @@ -356,7 +361,12 @@ class UserSettingsDisplay extends React.Component { fontSection = ( <SettingItemMax - title={formatMessage(holders.fontTitle)} + title={ + <FormattedMessage + id='user.settings.display.fontTitle' + defaultMessage='Display Font' + /> + } inputs={inputs} submit={this.handleSubmit} server_error={serverError} @@ -369,7 +379,12 @@ class UserSettingsDisplay extends React.Component { } else { fontSection = ( <SettingItemMin - title={formatMessage(holders.fontTitle)} + title={ + <FormattedMessage + id='user.settings.display.fontTitle' + defaultMessage='Display Font' + /> + } describe={this.state.selectedFont} updateSection={() => { this.props.updateSection('font'); @@ -379,19 +394,9 @@ class UserSettingsDisplay extends React.Component { } if (this.props.activeSection === 'languages') { - var inputs = []; - inputs.push( + languagesSection = ( <ManageLanguages user={this.props.user} - key='languages-ui' - /> - ); - - languagesSection = ( - <SettingItemMax - title={formatMessage(holders.language)} - width='medium' - inputs={inputs} updateSection={(e) => { this.updateSection(''); e.preventDefault(); @@ -408,7 +413,12 @@ class UserSettingsDisplay extends React.Component { languagesSection = ( <SettingItemMin - title={formatMessage(holders.language)} + title={ + <FormattedMessage + id='user.settings.display.language' + defaultMessage='Language' + /> + } width='medium' describe={locale} updateSection={() => { @@ -452,12 +462,12 @@ class UserSettingsDisplay extends React.Component { /> </h3> <div className='divider-dark first'/> - <ThemeSetting - selected={this.props.activeSection === 'theme'} - updateSection={this.updateSection} - setRequireConfirm={this.props.setRequireConfirm} - setEnforceFocus={this.props.setEnforceFocus} - /> + <ThemeSetting + selected={this.props.activeSection === 'theme'} + updateSection={this.updateSection} + setRequireConfirm={this.props.setRequireConfirm} + setEnforceFocus={this.props.setEnforceFocus} + /> <div className='divider-dark'/> {fontSection} <div className='divider-dark'/> @@ -473,7 +483,6 @@ class UserSettingsDisplay extends React.Component { } UserSettingsDisplay.propTypes = { - intl: intlShape.isRequired, user: React.PropTypes.object, updateSection: React.PropTypes.func, updateTab: React.PropTypes.func, @@ -483,5 +492,3 @@ UserSettingsDisplay.propTypes = { setRequireConfirm: React.PropTypes.func.isRequired, setEnforceFocus: React.PropTypes.func.isRequired }; - -export default injectIntl(UserSettingsDisplay); |