GUACAMOLE-422: Implement client-side timezone detection.

This commit is contained in:
Nick Couchman
2018-06-02 21:04:01 -04:00
committed by Virtually Nick
parent 8b443dc9d5
commit ea913c98fe
7 changed files with 45 additions and 6 deletions

View File

@@ -38,6 +38,7 @@ angular.module('settings').directive('guacSettingsPreferences', [function guacSe
// Required services
var $translate = $injector.get('$translate');
var authenticationService = $injector.get('authenticationService');
var formService = $injector.get('formService');
var guacNotification = $injector.get('guacNotification');
var languageService = $injector.get('languageService');
var permissionService = $injector.get('permissionService');

View File

@@ -98,6 +98,17 @@ angular.module('settings').provider('preferenceService', ['$injector',
return language.replace(/-/g, '_');
};
/**
* Return the timezone detected for the current browser session
* by the JSTZ timezone library.
*
* @returns String
* The name of the currently-detected timezone.
*/
var getDetectedTimezone = function getDetectedTimezone() {
return jstz.determine().name();
};
/**
* All currently-set preferences, as name/value pairs. Each property name
@@ -128,7 +139,13 @@ angular.module('settings').provider('preferenceService', ['$injector',
*
* @type String
*/
language : getDefaultLanguageKey()
language : getDefaultLanguageKey(),
/**
* The timezone set by the uesr.
* @type String
*/
timezone : getDetectedTimezone()
};

View File

@@ -18,7 +18,7 @@
*/
.preferences .update-password .form,
.preferences .language .form {
.preferences .locale .form {
padding-left: 0.5em;
border-left: 3px solid rgba(0, 0, 0, 0.125);
}

View File

@@ -1,8 +1,8 @@
<div class="preferences" ng-class="{loading: !isLoaded()}">
<!-- Language settings -->
<div class="settings section language">
<p>{{'SETTINGS_PREFERENCES.HELP_LANGUAGE' | translate}}</p>
<!-- Locale settings -->
<div class="settings section locale">
<p>{{'SETTINGS_PREFERENCES.HELP_LOCALE' | translate}}</p>
<!-- Language selection -->
<div class="form">
@@ -13,6 +13,15 @@
</tr>
</table>
</div>
<!-- Timezone selection -->
<div class="form">
<guac-form-field
field="{ 'type' : 'TIMEZONE', 'name' : 'timezone' }"
model="preferences.timezone"
namespace="'SETTINGS_PREFERENCES'">
</guac-form-field>
</div>
</div>
<!-- Password update -->