From 78977ae4fc709b5423fcba0f2bd43bca8e9445a5 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Sat, 15 Jun 2019 13:43:28 -0700 Subject: [PATCH] GUACAMOLE-422: Use the same display mechanism and structure (the guacForm directive) for all locale preferences, not just the time zone. --- .../directives/guacSettingsPreferences.js | 40 +++++++------------ .../app/settings/styles/preferences.css | 23 +++++++++-- .../templates/settingsPreferences.html | 20 +--------- 3 files changed, 35 insertions(+), 48 deletions(-) diff --git a/guacamole/src/main/webapp/app/settings/directives/guacSettingsPreferences.js b/guacamole/src/main/webapp/app/settings/directives/guacSettingsPreferences.js index 71e7af73e..aad0a2e0e 100644 --- a/guacamole/src/main/webapp/app/settings/directives/guacSettingsPreferences.js +++ b/guacamole/src/main/webapp/app/settings/directives/guacSettingsPreferences.js @@ -39,7 +39,6 @@ angular.module('settings').directive('guacSettingsPreferences', [function guacSe var $translate = $injector.get('$translate'); var authenticationService = $injector.get('authenticationService'); var guacNotification = $injector.get('guacNotification'); - var languageService = $injector.get('languageService'); var permissionService = $injector.get('permissionService'); var preferenceService = $injector.get('preferenceService'); var requestService = $injector.get('requestService'); @@ -78,21 +77,23 @@ angular.module('settings').directive('guacSettingsPreferences', [function guacSe * @type Object. */ $scope.preferences = preferenceService.preferences; - + /** - * A map of all available language keys to their human-readable - * names. - * - * @type Object. + * The fields which should be displayed for choosing locale + * preferences. Each field name must be a property on + * $scope.preferences. + * + * @type Field[] */ - $scope.languages = null; - - /** - * Switches the active display langugae to the chosen language. - */ - $scope.changeLanguage = function changeLanguage() { - $translate.use($scope.preferences.language); - }; + $scope.localeFields = [ + { 'type' : 'LANGUAGE', 'name' : 'language' }, + { 'type' : 'TIMEZONE', 'name' : 'timezone' } + ]; + + // Automatically update applied translation when language preference is changed + $scope.$watch('preferences.language', function changeLanguage(language) { + $translate.use(language); + }); /** * The new password for the user. @@ -169,17 +170,6 @@ angular.module('settings').directive('guacSettingsPreferences', [function guacSe }; - // Retrieve defined languages - languageService.getLanguages() - .then(function languagesRetrieved(languages) { - $scope.languages = Object.keys(languages).map(function(key) { - return { - key: key, - value: languages[key] - }; - }); - }, requestService.DIE); - // Retrieve current permissions permissionService.getEffectivePermissions(dataSource, username) .then(function permissionsRetrieved(permissions) { diff --git a/guacamole/src/main/webapp/app/settings/styles/preferences.css b/guacamole/src/main/webapp/app/settings/styles/preferences.css index 9a966b552..dbb2330a8 100644 --- a/guacamole/src/main/webapp/app/settings/styles/preferences.css +++ b/guacamole/src/main/webapp/app/settings/styles/preferences.css @@ -17,8 +17,23 @@ * under the License. */ -.preferences .update-password .form, -.preferences .locale .form { +.preferences .form .fields { + display: table; padding-left: 0.5em; - border-left: 3px solid rgba(0, 0, 0, 0.125); -} \ No newline at end of file + border-left: 3px solid rgba(0,0,0,0.125); +} + +.preferences .form .fields .labeled-field { + display: table-row; +} + +.preferences .form .fields .field-header, +.preferences .form .fields .form-field { + display: table-cell; + padding: 0.125em; + vertical-align: top; +} + +.preferences .form .fields .field-header { + padding-right: 1em; +} diff --git a/guacamole/src/main/webapp/app/settings/templates/settingsPreferences.html b/guacamole/src/main/webapp/app/settings/templates/settingsPreferences.html index 8c924539b..581a66e9c 100644 --- a/guacamole/src/main/webapp/app/settings/templates/settingsPreferences.html +++ b/guacamole/src/main/webapp/app/settings/templates/settingsPreferences.html @@ -3,25 +3,7 @@

{{'SETTINGS_PREFERENCES.HELP_LOCALE' | translate}}

- - -
- - - - - -
{{'SETTINGS_PREFERENCES.FIELD_HEADER_LANGUAGE' | translate}}
-
- - -
- - -
+