Details
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/js/app.js b/admin-ui/src/main/resources/META-INF/resources/admin/js/app.js
index f618052..37fc3ed 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/js/app.js
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/js/app.js
@@ -288,6 +288,9 @@ module.config([ '$routeProvider', function($routeProvider) {
realm : function(RealmLoader) {
return RealmLoader();
},
+ application : function(ApplicationLoader) {
+ return ApplicationLoader();
+ },
installation : function(ApplicationInstallationLoader) {
return ApplicationInstallationLoader();
}
@@ -650,6 +653,28 @@ module.directive('kcReset', function ($compile, Notifications) {
}
});
+/*
+* Used to select the element (invoke $(elem).select()) on specified action list.
+* Usages kc-select-action="click mouseover"
+* When used in the textarea element, this will select/highlight the textarea content on specified action (i.e. click).
+*/
+module.directive('kcSelectAction', function ($compile, Notifications) {
+ return {
+ restrict: 'A',
+ compile: function (elem, attrs) {
+
+ var events = attrs.kcSelectAction.split(" ");
+
+ for(var i=0; i < events.length; i++){
+
+ elem.bind(events[i], function(){
+ elem.select();
+ });
+ }
+ }
+ }
+});
+
module.filter('remove', function() {
return function(input, remove, attribute) {
if (!input || !remove) {
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/js/controllers/applications.js b/admin-ui/src/main/resources/META-INF/resources/admin/js/controllers/applications.js
index ed435ee..30dde4d 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/js/controllers/applications.js
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/js/controllers/applications.js
@@ -179,8 +179,10 @@ module.controller('ApplicationListCtrl', function($scope, realm, applications, A
});
});
-module.controller('ApplicationInstallationCtrl', function($scope, realm, installation, ApplicationInstallation, $routeParams) {
+module.controller('ApplicationInstallationCtrl', function($scope, realm, installation, application, ApplicationInstallation, $routeParams) {
+ console.log('ApplicationInstallationCtrl');
$scope.realm = realm;
+ $scope.application = application;
$scope.installation = installation;
$scope.download = ApplicationInstallation.url({ realm: $routeParams.realm, application: $routeParams.application });
});
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/js/controllers/realm.js b/admin-ui/src/main/resources/META-INF/resources/admin/js/controllers/realm.js
index 6598992..3d053af 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/js/controllers/realm.js
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/js/controllers/realm.js
@@ -192,11 +192,11 @@ module.controller('RealmRequiredCredentialsCtrl', function($scope, Realm, realm,
/* Map used in the table when hovering over (i) icon */
$scope.policyMessages = {
- length: "Minimal password length. Default value is 8.",
- digits: "Minimal number of digits in password. Default value is 1.",
- lowerCase: "Minimal number of lowercase characters in password. Default value is 1.",
- upperCase: "Minimal number of uppercase characters in password. Default value is 1.",
- specialChars: "Minimal number of special characters in password. Default value is 1."
+ length: "Minimal password length (integer type). Default value is 8.",
+ digits: "Minimal number (integer type) of digits in password. Default value is 1.",
+ lowerCase: "Minimal number (integer type) of lowercase characters in password. Default value is 1.",
+ upperCase: "Minimal number (integer type) of uppercase characters in password. Default value is 1.",
+ specialChars: "Minimal number (integer type) of special characters in password. Default value is 1."
}
// $scope.policy is an object representing passwordPolicy string
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-keys.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-keys.html
index d15ab2b..b783bfa 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-keys.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-keys.html
@@ -27,7 +27,8 @@
<label for="publicKey">Public key</label>
<div class="controls">
- <textarea type="text" id="publicKey" name="publicKey" class="xlarge" rows="5">{{realm.publicKey}}</textarea>
+ <textarea type="text" id="publicKey" name="publicKey" class="xlarge" rows="5"
+ kc-select-action="click" readonly>{{realm.publicKey}}</textarea>
</div>
</div>
</fieldset>
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-social.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-social.html
index bbbbfd0..dbdeb24 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-social.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-social.html
@@ -122,4 +122,8 @@
display: inline-block;
margin: 5px;
}
+
+ .social-provider .icon-remove, .social-provider .icon-question {
+ cursor: pointer;
+ }
</style>
\ No newline at end of file
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-tokens.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-tokens.html
index 7a2b92b..91ea2d3 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-tokens.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-tokens.html
@@ -26,7 +26,7 @@
<div class="form-group input-select">
<label for="tokenLifespan">Token lifespan</label>
<div class="input-group">
- <input type="text" data-ng-model="realm.tokenLifespan" id="tokenLifespan" name="tokenLifespan" class="tiny">
+ <input type="number" data-ng-model="realm.tokenLifespan" id="tokenLifespan" name="tokenLifespan" class="tiny">
<div class="select-rcue">
<select name="tokenLifespanUnit" data-ng-model="realm.tokenLifespanUnit" >
<option data-ng-selected="!realm.tokenLifespanUnit">Seconds</option>
@@ -40,7 +40,7 @@
<div class="form-group input-select">
<label for="accessCodeLifespan">Access code lifespan</label>
<div class="input-group">
- <input type="text" data-ng-model="realm.accessCodeLifespan" id="accessCodeLifespan" name="accessCodeLifespan" class="tiny">
+ <input type="number" data-ng-model="realm.accessCodeLifespan" id="accessCodeLifespan" name="accessCodeLifespan" class="tiny">
<div class="select-rcue">
<select name="accessCodeLifespanUnit" data-ng-model="realm.accessCodeLifespanUnit">
<option data-ng-selected="!realm.accessCodeLifespanUnit">Seconds</option>
@@ -54,7 +54,7 @@
<div class="form-group input-select">
<label for="accessCodeLifespanUserAction" class="two-lines">Access code user action lifespan</label>
<div class="input-group">
- <input type="text" data-ng-model="realm.accessCodeLifespanUserAction" id="accessCodeLifespanUserAction" name="accessCodeLifespanUserAction" class="tiny">
+ <input type="number" data-ng-model="realm.accessCodeLifespanUserAction" id="accessCodeLifespanUserAction" name="accessCodeLifespanUserAction" class="tiny">
<div class="select-rcue">
<select name="accessCodeLifespanUserActionUnit" data-ng-model="realm.accessCodeLifespanUserActionUnit">
<option data-ng-selected="!realm.accessCodeLifespanUserActionUnit">Seconds</option>
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/user-detail.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/user-detail.html
index 0735afa..fa1683b 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/user-detail.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/user-detail.html
@@ -36,8 +36,9 @@
<div class="form-group">
<label for="username">Username <span class="required" data-ng-show="create">*</span></label>
<div class="controls">
+ <!-- Characters >,<,/,\ are forbidden in username -->
<input type="text" id="username" name="username" data-ng-model="user.username" autofocus
- required data-ng-readonly="!create">
+ required ng-pattern="/^[^\<\>\\\/]*$/" data-ng-readonly="!create">
</div>
</div>
@@ -45,7 +46,7 @@
<label for="email" class="control-label">Email</label>
<div class="controls">
- <input class="input-small" type="text" name="email" id="email"
+ <input class="input-small" type="email" name="email" id="email"
data-ng-model="user.email">
</div>
</div>
diff --git a/admin-ui-styles/src/main/resources/META-INF/resources/admin-ui/css/admin-console.css b/admin-ui-styles/src/main/resources/META-INF/resources/admin-ui/css/admin-console.css
index 6d30cdf..2482800 100644
--- a/admin-ui-styles/src/main/resources/META-INF/resources/admin-ui/css/admin-console.css
+++ b/admin-ui-styles/src/main/resources/META-INF/resources/admin-ui/css/admin-console.css
@@ -5,6 +5,12 @@ body {
color: #4d5258;
font-family: "Open Sans", sans-serif;
}
+.admin-console #content textarea {
+ min-width: 10em;
+ max-width: 74em;
+ min-height: 10em;
+ max-height: 50em;
+}
/* Feedback */
.feedback-aligner {
top: 0.9em;
diff --git a/admin-ui-styles/src/main/resources/META-INF/resources/admin-ui/css/admin-console.less b/admin-ui-styles/src/main/resources/META-INF/resources/admin-ui/css/admin-console.less
index 1f49e26..e1e0993 100644
--- a/admin-ui-styles/src/main/resources/META-INF/resources/admin-ui/css/admin-console.less
+++ b/admin-ui-styles/src/main/resources/META-INF/resources/admin-ui/css/admin-console.less
@@ -15,6 +15,15 @@ body {
font-family: @open-sans;
}
+.admin-console {
+ #content textarea {
+ min-width: 10em;
+ max-width: 74em;
+ min-height: 10em;
+ max-height: 50em;
+ }
+}
+
/* Feedback */
.feedback-aligner {