diff --git a/themes/src/main/resources/theme/base/admin/resources/js/controllers/realm.js b/themes/src/main/resources/theme/base/admin/resources/js/controllers/realm.js
index 6ea2154..ba0917b 100644
--- a/themes/src/main/resources/theme/base/admin/resources/js/controllers/realm.js
+++ b/themes/src/main/resources/theme/base/admin/resources/js/controllers/realm.js
@@ -1112,12 +1112,10 @@ module.controller('RealmKeysProvidersCtrl', function($scope, Realm, realm, $http
parent: realm.id,
type: 'org.keycloak.keys.KeyProvider'
}, function(data) {
- console.debug(data);
$scope.instances = data;
});
$scope.addProvider = function(provider) {
- console.log('Add provider: ' + provider.id);
$location.url("/create/keys/" + realm.realm + "/providers/" + provider.id);
};
@@ -1159,19 +1157,27 @@ module.controller('GenericKeystoreCtrl', function($scope, $location, Notificatio
'priority': ["0"]
}
}
+ } else {
+ $scope.instance = angular.copy(instance);
+ }
- if (providerFactory.properties) {
- for (var i = 0; i < providerFactory.properties.length; i++) {
- var configProperty = providerFactory.properties[i];
+ if (providerFactory.properties) {
+ for (var i = 0; i < providerFactory.properties.length; i++) {
+ var configProperty = providerFactory.properties[i];
+ if (!$scope.instance.config[configProperty.name]) {
if (configProperty.defaultValue) {
$scope.instance.config[configProperty.name] = [configProperty.defaultValue];
+ if (!$scope.create) {
+ instance.config[configProperty.name] = [configProperty.defaultValue];
+ }
} else {
$scope.instance.config[configProperty.name] = [''];
+ if (!$scope.create) {
+ instance.config[configProperty.name] = [configProperty.defaultValue];
+ }
}
}
}
- } else {
- $scope.instance = angular.copy(instance);
}
$scope.$watch('instance', function() {
diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/realm-keys-generic.html b/themes/src/main/resources/theme/base/admin/resources/partials/realm-keys-generic.html
index 0f9857c..2b66e26 100755
--- a/themes/src/main/resources/theme/base/admin/resources/partials/realm-keys-generic.html
+++ b/themes/src/main/resources/theme/base/admin/resources/partials/realm-keys-generic.html
@@ -41,19 +41,18 @@
<div class="form-group clearfix">
<label class="col-md-2 control-label" for="consoleDisplayName">{{:: 'console-display-name' | translate}} </label>
<div class="col-md-6">
- <input class="form-control" id="consoleDisplayName" type="text" ng-model="instance.name" placeholder="{{:: 'defaults-to-id' | translate}}">
+ <input required class="form-control" id="consoleDisplayName" type="text" ng-model="instance.name" placeholder="{{:: 'defaults-to-id' | translate}}">
</div>
<kc-tooltip>{{:: 'console-display-name.tooltip' | translate}}</kc-tooltip>
</div>
<kc-component-config realm="realm" config="instance.config" properties="providerFactory.properties"></kc-component-config>
-
</fieldset>
<div class="form-group">
<div class="col-md-10 col-md-offset-2" data-ng-show="create && access.manageRealm">
- <button kc-save>{{:: 'save' | translate}}</button>
- <button kc-cancel data-ng-click="cancel()">{{:: 'cancel' | translate}}</button>
+ <button kc-save data-ng-disabled="!changed">{{:: 'save' | translate}}</button>
+ <button kc-cancel data-ng-disabled="!changed" data-ng-click="cancel()">{{:: 'cancel' | translate}}</button>
</div>
</div>
diff --git a/themes/src/main/resources/theme/base/admin/resources/templates/kc-component-config.html b/themes/src/main/resources/theme/base/admin/resources/templates/kc-component-config.html
index b3b536f..63702f9 100755
--- a/themes/src/main/resources/theme/base/admin/resources/templates/kc-component-config.html
+++ b/themes/src/main/resources/theme/base/admin/resources/templates/kc-component-config.html
@@ -2,26 +2,26 @@
<div data-ng-repeat="option in properties" class="form-group" data-ng-controller="ProviderConfigCtrl">
<label class="col-md-2 control-label">{{:: option.label | translate}}</label>
- <div class="col-md-6" data-ng-show="option.type == 'String'">
+ <div class="col-md-6" data-ng-if="option.type == 'String'">
<input class="form-control" type="text" data-ng-model="config[ option.name ][0]" >
</div>
- <div class="col-md-6" data-ng-show="option.type == 'Password'">
+ <div class="col-md-6" data-ng-if="option.type == 'Password'">
<input class="form-control" type="password" data-ng-model="config[ option.name ][0]" >
</div>
- <div class="col-md-6" data-ng-show="option.type == 'boolean'">
+ <div class="col-md-6" data-ng-if="option.type == 'boolean'">
<input ng-model="config[ option.name ][0]" value="'true'" id="option.name" name="option.name" onoffswitchstring on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}"/>
</div>
- <div class="col-md-6" data-ng-show="option.type == 'List'">
+ <div class="col-md-6" data-ng-if="option.type == 'List'">
<select ng-model="config[ option.name ][0]" ng-options="data for data in option.options">
<option value="" selected> {{:: 'selectOne' | translate}} </option>
</select>
</div>
- <div class="col-md-6" data-ng-show="option.type == 'MultivaluedList'">
+ <div class="col-md-6" data-ng-if="option.type == 'MultivaluedList'">
<select ui-select2 data-ng-model="config[ option.name ]" data-placeholder="{{:: 'selectMultiple' | translate}}..." multiple>
<option ng-repeat="val in option.options" value="{{val}}" ng-selected="true">{{val}}</option>
</select>
</div>
- <div class="col-md-6" data-ng-show="option.type == 'Role'">
+ <div class="col-md-6" data-ng-if="option.type == 'Role'">
<div class="row">
<div class="col-md-8">
<input class="form-control" type="text" data-ng-model="config[ option.name ][0]" >
@@ -31,7 +31,7 @@
</div>
</div>
</div>
- <div class="col-md-4" data-ng-show="option.type == 'ClientList'">
+ <div class="col-md-4" data-ng-if="option.type == 'ClientList'">
<select ng-model="config[ option.name ][0]" ng-options="client.clientId as client.clientId for client in clients">
<option value="" selected> {{:: 'selectOne' | translate}} </option>
</select>