mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-10 07:01:21 +00:00
GUAC-807: Fixed connection parameter editing and made menu show on keydown instead of keyup.
This commit is contained in:
committed by
Michael Jumper
parent
1b121ba665
commit
72c82aea8b
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Copyright (C) 2014 Glyptodon LLC
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* A directive that allows editing of a connection parameter.
|
||||
*/
|
||||
angular.module('manage').directive('guacConnectionParameter', [function locationChooser() {
|
||||
|
||||
return {
|
||||
// Element only
|
||||
restrict: 'E',
|
||||
replace: true,
|
||||
scope: {
|
||||
parameter: '=parameter',
|
||||
connection: '=connection',
|
||||
},
|
||||
templateUrl: 'app/manage/templates/connectionParameter.html',
|
||||
controller: ['$scope', function connectionParameterController($scope) {
|
||||
$scope.connectionParameters = $scope.connection.parameters;
|
||||
$scope.parameterType = $scope.parameter.type;
|
||||
$scope.parameterName = $scope.parameter.name;
|
||||
|
||||
// Coerce numeric strings to numbers
|
||||
if($scope.parameterType === 'NUMERIC') {
|
||||
$scope.connectionParameters[$scope.parameterName] =
|
||||
Number($scope.connectionParameters[$scope.parameterName]) || 0;
|
||||
// Coerce boolean strings to boolean values
|
||||
} else if($scope.parameterType === 'BOOLEAN') {
|
||||
$scope.connectionParameters[$scope.parameterName] =
|
||||
$scope.connectionParameters[$scope.parameterName] === 'true';
|
||||
}
|
||||
}]
|
||||
};
|
||||
|
||||
}]);
|
@@ -0,0 +1,28 @@
|
||||
<span class="connectionParameter">
|
||||
<!--
|
||||
Copyright 2014 Glyptodon LLC.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
-->
|
||||
<input ng-show="parameterType === 'TEXT'" type="text" ng-model="connectionParameters[parameterName]"/>
|
||||
<input ng-show="parameterType === 'NUMERIC'" type="number" ng-model="connectionParameters[parameterName]"/>
|
||||
<input ng-show="parameterType === 'PASSWORD'" type="password" ng-model="connectionParameters[parameterName]"/>
|
||||
<input ng-show="parameterType === 'BOOLEAN'" type="checkbox" ng-model="connectionParameters[parameterName]"/>
|
||||
<select ng-show="parameterType === 'ENUM'" ng-model="connectionParameters[parameterName]" ng-options="option.value as 'protocol.' + connection.protocol + '.parameters.' + parameter.name + '.options.' + (option.value || 'empty') | translate for option in parameter.options | orderBy: value"></select>
|
||||
</span>
|
@@ -71,21 +71,8 @@ THE SOFTWARE.
|
||||
<!-- All the different possible editable field types -->
|
||||
<tr ng-repeat="parameter in protocols[connection.protocol].parameters">
|
||||
<th>{{'protocol.' + connection.protocol + '.parameters.' + parameter.name + '.label' | translate}}:</th>
|
||||
|
||||
<td ng-show="parameter.type === 'TEXT'">
|
||||
<input type="text" ng-model="connection.parameters[parameter.name]"/>
|
||||
</td>
|
||||
<td ng-show="parameter.type === 'NUMERIC'">
|
||||
<input type="number" ng-model="connection.parameters[parameter.name]"/>
|
||||
</td>
|
||||
<td ng-show="parameter.type === 'PASSWORD'">
|
||||
<input type="password" ng-model="connection.parameters[parameter.name]"/>
|
||||
</td>
|
||||
<td ng-show="parameter.type === 'BOOLEAN'">
|
||||
<input type="checkbox" ng-model="connection.parameters[parameter.name]"/>
|
||||
</td>
|
||||
<td ng-show="parameter.type === 'ENUM'">
|
||||
<select ng-model="connection.parameters[parameter.name]" ng-options="option.value as 'protocol.' + connection.protocol + '.parameters.' + parameter.name + '.options.' + (option.value || 'empty') | translate for option in parameter.options | orderBy: value"></select>
|
||||
<td>
|
||||
<guac-connection-parameter parameter="parameter" connection="connection" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -110,8 +97,9 @@ THE SOFTWARE.
|
||||
<tr ng-repeat="record in connection.history">
|
||||
<td class="username">{{record.username}}</td>
|
||||
<td class="start">{{record.startDate | date:'short'}}</td>
|
||||
<td ng-show="record.endDate" class="duration">{{record.endDate}}</td>
|
||||
<td ng-hide="record.endDate" class="duration">{{'manage.edit.connection.history.activeNow' | translate}}</td>
|
||||
<td ng-show="record.endDate && !record.active" class="duration">{{record.endDate - record.startDate}}</td>
|
||||
<td ng-show="!record.endDate && !record.active" class="duration">{{'manage.edit.connection.history.unknownEnd' | translate}}</td>
|
||||
<td ng-show="record.active" class="duration">{{'manage.edit.connection.history.activeNow' | translate}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
Reference in New Issue
Block a user