diff options
Diffstat (limited to 'webapp')
-rw-r--r-- | webapp/components/admin_console/localization_settings.jsx | 13 | ||||
-rw-r--r-- | webapp/components/admin_console/multiselect_settings.jsx | 6 | ||||
-rw-r--r-- | webapp/i18n/en.json | 2 | ||||
-rw-r--r-- | webapp/i18n/es.json | 2 | ||||
-rw-r--r-- | webapp/i18n/i18n.jsx | 9 |
5 files changed, 14 insertions, 18 deletions
diff --git a/webapp/components/admin_console/localization_settings.jsx b/webapp/components/admin_console/localization_settings.jsx index 7987f77dc..67cf26fee 100644 --- a/webapp/components/admin_console/localization_settings.jsx +++ b/webapp/components/admin_console/localization_settings.jsx @@ -26,7 +26,7 @@ export default class LocalizationSettings extends AdminSettings { hasErrors: false, defaultServerLocale: props.config.LocalizationSettings.DefaultServerLocale, defaultClientLocale: props.config.LocalizationSettings.DefaultClientLocale, - availableLocales: props.config.LocalizationSettings.AvailableLocales.split(','), + availableLocales: props.config.LocalizationSettings.AvailableLocales ? props.config.LocalizationSettings.AvailableLocales.split(',') : [], languages: Object.keys(locales).map((l) => { return {value: locales[l].value, text: locales[l].name}; }) @@ -34,7 +34,7 @@ export default class LocalizationSettings extends AdminSettings { } canSave() { - return this.state.availableLocales.join(',').indexOf(this.state.defaultClientLocale) !== -1; + return this.state.availableLocales.join(',').indexOf(this.state.defaultClientLocale) !== -1 || this.state.availableLocales.length === 0; } getConfigFromState(config) { @@ -112,12 +112,11 @@ export default class LocalizationSettings extends AdminSettings { /> } selected={this.state.availableLocales} - mustBePresent={this.state.defaultClientLocale} onChange={this.handleChange} helpText={ <FormattedMessage id='admin.general.localization.availableLocalesDescription' - defaultMessage='Determines which languages are available for users in Account Settings.' + defaultMessage='Determines which languages are available for users in Account Settings. (Leave it blank to have all supported languages available)' /> } noResultText={ @@ -126,12 +125,6 @@ export default class LocalizationSettings extends AdminSettings { defaultMessage='No results found' /> } - errorText={ - <FormattedMessage - id='admin.general.localization.availableLocalesError' - defaultMessage='There has to be at least one language available' - /> - } notPresent={ <FormattedMessage id='admin.general.localization.availableLocalesNotPresent' diff --git a/webapp/components/admin_console/multiselect_settings.jsx b/webapp/components/admin_console/multiselect_settings.jsx index ca0bdc9aa..8aad5d6eb 100644 --- a/webapp/components/admin_console/multiselect_settings.jsx +++ b/webapp/components/admin_console/multiselect_settings.jsx @@ -19,9 +19,7 @@ export default class MultiSelectSetting extends React.Component { return n.value; }); - if (!newValue || newValue.length === 0) { - this.setState({error: this.props.errorText}); - } else if (this.props.mustBePresent && values.join(',').indexOf(this.props.mustBePresent) === -1) { + if (this.props.selected.length > 0 && this.props.mustBePresent && values.join(',').indexOf(this.props.mustBePresent) === -1) { this.setState({error: this.props.notPresent}); } else { this.props.onChange(this.props.id, values); @@ -30,7 +28,7 @@ export default class MultiSelectSetting extends React.Component { } componentWillReceiveProps(newProps) { - if (newProps.mustBePresent && newProps.selected.join(',').indexOf(newProps.mustBePresent) === -1) { + if (newProps.selected.length > 0 && newProps.mustBePresent && newProps.selected.join(',').indexOf(newProps.mustBePresent) === -1) { this.setState({error: this.props.notPresent}); } else { this.setState({error: false}); diff --git a/webapp/i18n/en.json b/webapp/i18n/en.json index acc9325f9..435d25dfb 100644 --- a/webapp/i18n/en.json +++ b/webapp/i18n/en.json @@ -189,7 +189,7 @@ "admin.email.testing": "Testing...", "admin.false": "false", "admin.general.localization": "Localization", - "admin.general.localization.availableLocalesDescription": "Determines which languages are available for users in Account Settings.", + "admin.general.localization.availableLocalesDescription": "Determines which languages are available for users in Account Settings. (Leave it blank to have all supported languages available)", "admin.general.localization.clientLocaleDescription": "Default language for newly created users and pages where the user hasn't logged in.", "admin.general.localization.serverLocaleDescription": "Default language for system messages and logs. Changing this will require a server restart before taking effect.", "admin.gitab.clientSecretDescription": "Obtain this value via the instructions above for logging into GitLab.", diff --git a/webapp/i18n/es.json b/webapp/i18n/es.json index 97ac41a2e..85e7de39f 100644 --- a/webapp/i18n/es.json +++ b/webapp/i18n/es.json @@ -189,7 +189,7 @@ "admin.email.testing": "Probando...", "admin.false": "falso", "admin.general.localization": "Idiomas", - "admin.general.localization.availableLocalesDescription": "Determina qué idiomas están disponibles para los usuarios en la Configuración de la Cuenta.", + "admin.general.localization.availableLocalesDescription": "Determina qué idiomas están disponibles para los usuarios en la Configuración de la Cuenta. (al dejarlo en blanco se tienen disponibles todos los idiomas soportados.", "admin.general.localization.clientLocaleDescription": "Idioma predeterminado para nuevos usuarios y páginas donde el usuario no ha iniciado sesión.", "admin.general.localization.serverLocaleDescription": "Idioma predeterminado para los mensajes del sistema y los registros. Cambiar esto requerirá un reinicio del servidor antes de tomar efecto.", "admin.gitab.clientSecretDescription": "Utilizar este valor vía instrucciones suministradas anteriormente para iniciar sesión en GitLab.", diff --git a/webapp/i18n/i18n.jsx b/webapp/i18n/i18n.jsx index 71356d75f..73838cb71 100644 --- a/webapp/i18n/i18n.jsx +++ b/webapp/i18n/i18n.jsx @@ -52,10 +52,15 @@ const languages = { let availableLanguages = null; function setAvailableLanguages() { - const available = global.window.mm_config.AvailableLocales.split(','); - + let available; availableLanguages = {}; + if (global.window.mm_config.AvailableLocales) { + available = global.window.mm_config.AvailableLocales.split(','); + } else { + available = Object.keys(languages); + } + available.forEach((l) => { if (languages[l]) { availableLanguages[l] = languages[l]; |