mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 00:53:21 +00:00 
			
		
		
		
	Merge 1.1.0 changes back to master.
This commit is contained in:
		| @@ -0,0 +1,54 @@ | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements.  See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership.  The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (the | ||||
|  * "License"); you may not use this file except in compliance | ||||
|  * with the License.  You may obtain a copy of the License at | ||||
|  * | ||||
|  *   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied.  See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Controller for the language field type. The language field type allows the | ||||
|  * user to select a language from the set of languages supported by the | ||||
|  * Guacamole web application. | ||||
|  */ | ||||
| angular.module('form').controller('languageFieldController', ['$scope', '$injector', | ||||
|     function languageFieldController($scope, $injector) { | ||||
|  | ||||
|     // Required services | ||||
|     var languageService = $injector.get('languageService'); | ||||
|     var requestService  = $injector.get('requestService'); | ||||
|  | ||||
|     /** | ||||
|      * A map of all available language keys to their human-readable | ||||
|      * names. | ||||
|      * | ||||
|      * @type Object.<String, String> | ||||
|      */ | ||||
|     $scope.languages = null; | ||||
|  | ||||
|     // Retrieve defined languages | ||||
|     languageService.getLanguages().then(function languagesRetrieved(languages) { | ||||
|         $scope.$apply(function updateLanguageOptions() { | ||||
|             $scope.languages = languages; | ||||
|         }); | ||||
|     }, requestService.DIE); | ||||
|  | ||||
|     // Interpret undefined/null as empty string | ||||
|     $scope.$watch('model', function setModel(model) { | ||||
|         if (!model && model !== '') | ||||
|             $scope.model = ''; | ||||
|     }); | ||||
|  | ||||
| }]); | ||||
| @@ -20,4 +20,7 @@ | ||||
| /** | ||||
|  * Module for displaying dynamic forms. | ||||
|  */ | ||||
| angular.module('form', ['locale']); | ||||
| angular.module('form', [ | ||||
|     'locale', | ||||
|     'rest' | ||||
| ]); | ||||
|   | ||||
| @@ -130,6 +130,21 @@ angular.module('form').provider('formService', function formServiceProvider() { | ||||
|             templateUrl : 'app/form/templates/textAreaField.html' | ||||
|         }, | ||||
|  | ||||
|         /** | ||||
|          * Field type which allows selection of languages. The languages | ||||
|          * displayed are the set of languages supported by the Guacamole web | ||||
|          * application. Legal values are valid language IDs, as dictated by | ||||
|          * the filenames of Guacamole's available translations. | ||||
|          * | ||||
|          * @see {@link Field.Type.LANGUAGE} | ||||
|          * @type FieldType | ||||
|          */ | ||||
|         'LANGUAGE' : { | ||||
|             module      : 'form', | ||||
|             controller  : 'languageFieldController', | ||||
|             templateUrl : 'app/form/templates/languageField.html' | ||||
|         }, | ||||
|  | ||||
|         /** | ||||
|          * Field type which allows selection of time zones. | ||||
|          * | ||||
|   | ||||
| @@ -0,0 +1 @@ | ||||
| <select ng-model="model" ng-options="language.key as language.value for language in languages | toArray | orderBy: key"></select> | ||||
| @@ -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.<String, Object> | ||||
|              */ | ||||
|             $scope.preferences = preferenceService.preferences; | ||||
|              | ||||
|  | ||||
|             /** | ||||
|              * A map of all available language keys to their human-readable | ||||
|              * names. | ||||
|              *  | ||||
|              * @type Object.<String, String> | ||||
|              * 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) { | ||||
|   | ||||
| @@ -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); | ||||
| } | ||||
|     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; | ||||
| } | ||||
|   | ||||
| @@ -3,25 +3,7 @@ | ||||
|     <!-- Locale settings --> | ||||
|     <div class="settings section locale"> | ||||
|         <p>{{'SETTINGS_PREFERENCES.HELP_LOCALE' | translate}}</p> | ||||
|  | ||||
|         <!-- Language selection --> | ||||
|         <div class="form"> | ||||
|             <table class="fields"> | ||||
|                 <tr> | ||||
|                     <th>{{'SETTINGS_PREFERENCES.FIELD_HEADER_LANGUAGE' | translate}}</th> | ||||
|                     <td><select ng-model="preferences.language" ng-change="changeLanguage()" ng-options="language.key as language.value for language in languages | orderBy: key"></select></td> | ||||
|                 </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> | ||||
|         <guac-form content="localeFields" model="preferences" namespace="'SETTINGS_PREFERENCES'"></guac-form> | ||||
|     </div> | ||||
|      | ||||
|     <!-- Password update --> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user