diff --git a/guacamole/src/main/webapp/app/login/directives/login.js b/guacamole/src/main/webapp/app/login/directives/login.js index 0cd8f03d5..0c836c05a 100644 --- a/guacamole/src/main/webapp/app/login/directives/login.js +++ b/guacamole/src/main/webapp/app/login/directives/login.js @@ -109,10 +109,13 @@ angular.module('login').directive('guacLogin', [function guacLogin() { }; + // Ensure provided values are included within entered values, even if + // they have no corresponding input fields $scope.$watch('values', function resetEnteredValues(values) { angular.extend($scope.enteredValues, values || {}); }); + // Update field information when form is changed $scope.$watch('form', function resetRemainingFields(fields) { // If no fields are provided, then no fields remain @@ -126,6 +129,12 @@ angular.module('login').directive('guacLogin', [function guacLogin() { return !(field.name in $scope.values); }); + // Set default values for all unset fields + angular.forEach($scope.remainingFields, function setDefault(field) { + if (!$scope.enteredValues[field.name]) + $scope.enteredValues[field.name] = ''; + }); + }); /**