keycloak-memoizeit

Realm pages refactoring

2/7/2014 2:56:18 PM

Details

diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/index.html b/admin-ui/src/main/resources/META-INF/resources/admin/index.html
index df78ccf..60b31c1 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/index.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/index.html
@@ -13,6 +13,7 @@
 
     <!-- Page styles -->
     <link rel="stylesheet" href="/auth/admin-ui/css/admin-console.css">
+    <link rel="stylesheet" href="/auth/admin-ui/css/tables.css">
     <link href="lib/select2-3.4.1/select2.css" rel="stylesheet">
 
     <script src="lib/jquery/jquery-1.10.2.js" type="text/javascript"></script>
@@ -28,9 +29,11 @@
     <script src="lib/fileupload/angular-file-upload.min.js"></script>     <!--
     <script src="/auth/admin-ui/bootstrap-3.0.0-wip/js/dropdown.js"></script>
     <script src="/auth/admin-ui/bootstrap-3.0.0-wip/js/tooltip.js"></script>
-    <script src="/auth/admin-ui/js/bootstrap-tokenfield.js"></script>
     -->
+    <script src="/auth/admin-ui/js/bootstrap-tokenfield.js"></script>
+    <!--
     <script src="/auth/admin-ui/bootstrap/js/bootstrap.js"></script>
+    -->
 
     <script src="js/app.js"></script>
     <script src="js/controllers/realm.js"></script>
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/index_mock.html b/admin-ui/src/main/resources/META-INF/resources/admin/index_mock.html
new file mode 100755
index 0000000..8bce83d
--- /dev/null
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/index_mock.html
@@ -0,0 +1,305 @@
+<!doctype html>
+<html lang="en">
+
+<head>
+    <style>
+        .mock_view {
+            padding: 2em 2em;
+        }
+
+    </style>
+
+    <meta charset="utf-8">
+    <title>Keycloak Admin Console</title>
+
+    <link rel="icon" href="/auth/admin-ui/img/favicon.ico">
+
+    <!-- Frameworks -->
+    <!--link rel="stylesheet" href="/auth/admin-ui/bootstrap/css/bootstrap.css"-->
+    <link rel="stylesheet" href="/auth/admin-ui/patternfly/css/patternfly.css">
+
+    <!-- Page styles -->
+    <link rel="stylesheet" href="/auth/admin-ui/css/admin-console.css">
+    <link href="lib/select2-3.4.1/select2.css" rel="stylesheet">
+
+    <script src="lib/jquery/jquery-1.10.2.js" type="text/javascript"></script>
+    <script src="lib/select2-3.4.1/select2.js" type="text/javascript"></script>
+
+    <script src="lib/angular/angular.js"></script>
+    <script src="lib/angular/angular-resource.js"></script>
+    <script src="lib/angular/ui-bootstrap-tpls-0.4.0.js"></script>
+
+    <script src="lib/jquery/jquery.idletimer.js" type="text/javascript"></script>
+    <script src="lib/jquery/jquery.idletimeout.js" type="text/javascript"></script>
+    <script src="lib/angular/select2.js" type="text/javascript"></script>
+    <script src="lib/fileupload/angular-file-upload.min.js"></script>     <!--
+    <script src="/auth/admin-ui/bootstrap-3.0.0-wip/js/dropdown.js"></script>
+    <script src="/auth/admin-ui/bootstrap-3.0.0-wip/js/tooltip.js"></script>
+    -->
+    <script src="/auth/admin-ui/js/bootstrap-tokenfield.js"></script>
+
+    <script src="/auth/admin-ui/bootstrap/js/bootstrap.js"></script>
+
+    <script src="js/app.js"></script>
+    <script src="js/controllers/realm.js"></script>
+    <script src="js/controllers/applications.js"></script>
+    <script src="js/controllers/oauth-clients.js"></script>
+    <script src="js/controllers/users.js"></script>
+    <script src="js/loaders.js"></script>
+    <script src="js/services.js"></script>
+
+    <style>
+        [ng\:cloak], [ng-cloak], .ng-cloak {
+            display: none !important;
+        }
+    </style>
+</head>
+
+<body class="admin-console" data-ng-controller="GlobalCtrl" ng-cloak>
+<div id="idletimeout">
+    You will be logged off in <strong><span></span> seconds</strong> due to inactivity.
+    <a id="idletimeout-resume" href="#">Click here to continue using this web page</a>.
+</div>
+
+
+<div class="feedback-aligner" data-ng-show="notification" data-ng-click="notification = null">
+    <div class="alert alert-{{notification.type}}"><strong>{{notification.header}}</strong> {{notification.message}}</div>
+</div>
+
+<header class="navbar navbar-default navbar-pf navbar-main header">
+    <div class="container">
+        <nav id="kc-navigation" class="navbar" role="navigation">
+            <div class="navbar-header">
+                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse-1">
+                    <span class="sr-only">Toggle navigation</span>
+                    <span class="icon-bar"></span>
+                    <span class="icon-bar"></span>
+                    <span class="icon-bar"></span>
+                </button>
+                <h1 class="navbar-title"><Strong>KeyCloak</Strong> Central Login</h1>
+            </div>
+            <div class="collapse navbar-collapse navbar-collapse-1">
+                <ul class="nav navbar-nav navbar-utility" data-ng-show="auth.loggedIn">
+                    <li class="dropdown">
+                        <a data-toggle="dropdown" class="dropdown-toggle" href="#">
+                            <span class="pficon pficon-user"></span>
+                            {{auth.user.displayName}}<b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li><a href="/auth/rest/realms/keycloak-admin/account?referrer=admin-console">Manage Account</a></li>
+                            <li class="separator"><a href="/auth/rest/admin/logout">Sign Out</a></li>
+                        </ul>
+                    </li>
+                </ul>
+                <ul class="nav navbar-nav navbar-primary persistent-secondary" data-ng-controller="RealmDropdownCtrl">
+                    <li class="dropdown context" data-ng-show="showNav()">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            Realm: {{current.realm.id}}
+                            <b class="caret"></b>
+                        </a>
+                        <ul class="dropdown-menu">
+                            <li data-ng-repeat="realm in current.realms">
+                                <a href="" ng-click="changeRealm(realm.id)" >{{realm.id}}</a>
+                            </li>
+                        </ul>
+                    </li>
+
+
+<!--------------------------------------->
+                    <li class="active">
+                        <a href="#">Another Link</a>
+                        <ul class="nav navbar-nav navbar-persistent">
+                            <li class="dropdown-submenu">
+                                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Link</a>
+                                <ul class="dropdown-menu">
+                                    <li>
+                                        <a href="#">Link</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">Another link</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">Something else here</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">Remembering to keep</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">It between five and seven</a>
+                                    </li>
+                                    <li class="dropdown-submenu">
+                                        <a tabindex="-1" href="#">More options</a>
+                                        <ul class="dropdown-menu">
+                                            <li>
+                                                <a href="#">Link</a>
+                                            </li>
+                                            <li>
+                                                <a href="#">Another link</a>
+                                            </li>
+                                            <li>
+                                                <a href="#">Something else here</a>
+                                            </li>
+                                            <li class="divider"></li>
+                                            <li>
+                                                <a href="#">Separated link</a>
+                                            </li>
+                                            <li class="divider"></li>
+                                            <li>
+                                                <a href="#">One more separated link</a>
+                                            </li>
+                                        </ul>
+                                    </li>
+                                </ul>
+                            </li>
+                            <li>
+                                <a href="#">Another Link</a>
+                            </li>
+                            <li class="dropdown-submenu active">
+                                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Something Else Here</a>
+                                <ul class="dropdown-menu">
+                                    <li>
+                                        <a href="#">Link</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">Another link</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">Something else here</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">Remembering to keep</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">It between five and seven</a>
+                                    </li>
+                                    <li class="dropdown-submenu dropup active">
+                                        <a tabindex="-1" href="#">More options</a>
+                                        <ul class="dropdown-menu">
+                                            <li class="active">
+                                                <a href="#">Link</a>
+                                            </li>
+                                            <li>
+                                                <a href="#">Another link</a>
+                                            </li>
+                                            <li>
+                                                <a href="#">Something else here</a>
+                                            </li>
+                                            <li class="divider"></li>
+                                            <li>
+                                                <a href="#">Separated link</a>
+                                            </li>
+                                            <li class="divider"></li>
+                                            <li>
+                                                <a href="#">One more separated link</a>
+                                            </li>
+                                        </ul>
+                                    </li>
+                                </ul>
+                            </li>
+                            <li>
+                                <a href="#">Remembering to Keep</a>
+                            </li>
+                            <li>
+                                <a href="#">It Between Five and Seven</a>
+                            </li>
+                            <li class="dropdown-submenu">
+                                <a tabindex="-1" href="#" class="dropdown-toggle" data-toggle="dropdown">More options</a>
+                                <ul class="dropdown-menu">
+                                    <li>
+                                        <a href="#">Link</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">Another link</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">Something else here</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">Remembering to keep</a>
+                                    </li>
+                                    <li>
+                                        <a href="#">It between five and seven</a>
+                                    </li>
+                                    <li class="dropdown-submenu pull-left">
+                                        <a tabindex="-1" href="#">More options</a>
+                                        <ul class="dropdown-menu">
+                                            <li>
+                                                <a href="#">Link</a>
+                                            </li>
+                                            <li>
+                                                <a href="#">Another link</a>
+                                            </li>
+                                            <li>
+                                                <a href="#">Something else here</a>
+                                            </li>
+                                            <li class="divider"></li>
+                                            <li>
+                                                <a href="#">Separated link</a>
+                                            </li>
+                                            <li class="divider"></li>
+                                            <li>
+                                                <a href="#">One more separated link</a>
+                                            </li>
+                                        </ul>
+                                    </li>
+                                </ul>
+                            </li>
+                        </ul>
+                    </li>
+                    <li>
+                        <a href="#">And Another</a>
+                    </li>
+                    <li>
+                        <a href="#">As a General Rule</a>
+                    </li>
+                    <li>
+                        <a href="#">Five to Seven Links</a>
+                    </li>
+                    <!--------------------------------------->
+
+
+                    <li class="active pull-right" data-ng-show="auth.loggedIn">
+                        <a class="button primary" href="#/create/realm" data-ng-class="path[0] == 'create' && path[1] == 'realm' && 'active'"
+                           data-ng-show="auth.loggedIn">Add Realm</a>
+                    </li>
+                </ul>
+            </div>
+        </nav>
+
+    </div>
+</header>
+
+<div class="container">
+    <div class="mock_view" data-ng-view id="view"></div>
+    <div id="loading" class="loading-backdrop">
+        <div class="loading">
+            <span>Loading...</span>
+        </div>
+    </div>
+</div>
+
+<script type="text/javascript">
+    $.idleTimeout('#idletimeout', '#idletimeout a', {
+        idleAfter: 300,
+        pollingInterval: 60,
+        keepAliveURL: '/auth/rest/admin/keepalive',
+        serverResponseEquals: '',
+        failedRequests: 1,
+        onTimeout: function(){
+            $(this).slideUp();
+            window.location = "/auth/rest/admin/logout";
+        },
+        onIdle: function(){
+            $(this).slideDown(); // show the warning bar
+        },
+        onCountdown: function( counter ){
+            $(this).find("span").html( counter ); // update the counter
+        },
+        onResume: function(){
+            $(this).slideUp(); // hide the warning bar
+        }
+    });
+</script>
+
+</body>
+</html>
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 fe1aa45..0e586d2 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
@@ -482,6 +482,18 @@ module.config([ '$routeProvider', function($routeProvider) {
             templateUrl : 'partials/home.html',
             controller : 'HomeCtrl'
         })
+        .when('/mocks/:realm', {
+            templateUrl : 'partials/realm-detail_mock.html',
+            resolve : {
+                realm : function(RealmLoader) {
+                    return RealmLoader();
+                },
+                serverInfo : function(ServerInfoLoader) {
+                    return ServerInfoLoader();
+                }
+            },
+            controller : 'RealmDetailCtrl'
+        })
         .otherwise({
             templateUrl : 'partials/notfound.html'
         });
@@ -684,6 +696,8 @@ module.directive('kcSave', function ($compile, Notifications) {
     return {
         restrict: 'A',
         link: function ($scope, elem, attr, ctrl) {
+            elem.addClass("btn btn-primary btn-lg");
+            elem.attr("type","submit");
             elem.bind('click', function() {
                 $scope.$apply(function() {
                     var form = elem.closest('form');
@@ -707,6 +721,8 @@ module.directive('kcReset', function ($compile, Notifications) {
     return {
         restrict: 'A',
         link: function ($scope, elem, attr, ctrl) {
+            elem.addClass("btn btn-default btn-lg");
+            elem.attr("type","submit");
             elem.bind('click', function() {
                 $scope.$apply(function() {
                     var form = elem.closest('form');
@@ -721,6 +737,45 @@ module.directive('kcReset', function ($compile, Notifications) {
     }
 });
 
+module.directive('kcCancel', function ($compile, Notifications) {
+    return {
+        restrict: 'A',
+        link: function ($scope, elem, attr, ctrl) {
+            elem.addClass("btn btn-default btn-lg");
+            elem.attr("type","submit");
+        }
+    }
+});
+
+module.directive('kcDelete', function ($compile, Notifications) {
+    return {
+        restrict: 'A',
+        link: function ($scope, elem, attr, ctrl) {
+            elem.addClass("btn btn-danger btn-lg");
+            elem.attr("type","submit");
+        }
+    }
+});
+
+
+module.directive('kcSelect', function ($compile, Notifications) {
+    return {
+        scope: {
+            kcOptions: '=',
+            kcModel: '=',
+            id: "="
+        },
+        restrict: 'E',
+        replace: true,
+        templateUrl: 'templates/kc-select.html',
+        link: function(scope, element, attr) {
+            scope.updateModel = function(item) {
+                scope.kcModel = item;
+            };
+        }
+    }
+});
+
 /*
 *  Used to select the element (invoke $(elem).select()) on specified action list.
 *  Usages kc-select-action="click mouseover"
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/oauth-client-credentials.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/oauth-client-credentials.html
index 8ce6073..8676a8c 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/oauth-client-credentials.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/oauth-client-credentials.html
@@ -1,15 +1,13 @@
-<div id="wrapper" class="container">
-    <div class="row">
-        <div class="bs-sidebar col-md-3 clearfix" data-ng-include data-src="'partials/realm-menu.html'"></div>
-        <div id="content-area" class="col-md-9" role="main">
-            <div class="top-nav">
-                <ul class="rcue-tabs">
+<div class="row">
+    <div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div>
+    <div id="content-area" class="col-sm-9" role="main">
+        <ul class="nav nav-tabs nav-tabs-pf">
                     <li><a href="#/realms/{{realm.realm}}/oauth-clients/{{oauth.id}}">Settings</a></li>
                     <li class="active"><a href="#/realms/{{realm.realm}}/oauth-clients/{{oauth.id}}/credentials">Credentials</a></li>
                     <li><a href="#/realms/{{realm.realm}}/oauth-clients/{{oauth.id}}/scope-mappings">Scope</a></li>
                     <li><a href="#/realms/{{realm.realm}}/oauth-clients/{{oauth.id}}/installation">Installation</a></li>
                 </ul>
-            </div>
+
             <div id="content">
                 <ol class="breadcrumb" data-ng-hide="create">
                     <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
@@ -22,16 +20,16 @@
                     <fieldset data-ng-show="passwordRequired">
                         <legend uncollapsed><span class="text">Change Password</span></legend>
                         <div class="form-group">
-                            <label for="password">New Password</label>
-                            <div class="controls">
-                            <input type="password" id="password" name="password" data-ng-model="password" autofocus
+                            <label class="col-sm-2 control-label" for="password">New Password</label>
+                            <div class="col-sm-4">
+                                <input class="form-control" type="password" id="password" name="password" data-ng-model="password" autofocus
                                    required>
                             </div>
                         </div>
                         <div class="form-group">
-                            <label class="two-lines" for="password">New Password Confirmation</label>
-                            <div class="controls">
-                                <input type="password" id="confirmPassword" name="confirmPassword" data-ng-model="confirmPassword"
+                            <label class="col-sm-2 control-label two-lines" for="password">New Password Confirmation</label>
+                            <div class="col-sm-4">
+                                <input class="form-control" type="password" id="confirmPassword" name="confirmPassword" data-ng-model="confirmPassword"
                                        required>
                             </div>
                         </div>
@@ -43,15 +41,15 @@
                     <fieldset data-ng-show="totpRequired">
                         <legend uncollapsed><span class="text">Change TOTP Key</span></legend>
                         <div class="form-group">
-                            <label for="totp">New Key</label>
-                            <div class="controls">
-                                <input type="text" id="totp" name="totp" data-ng-model="totp" autofocus
+                            <label class="col-sm-2 control-label" for="totp">New Key</label>
+                            <div class="col-sm-4">
+                                <input class="form-control" type="text" id="totp" name="totp" data-ng-model="totp" autofocus
                                        required>
                                 <button type="submit" data-ng-click="generateTotp()">Generate
                                 </button>
                             </div>
                         </div>
-                        <div class="form-actions">
+                        <div class="pull-right form-actions">
                             <label></label>
                             <button type="submit" data-ng-click="changeTotp()" class="primary" ng-show="totp != null">Save
                             </button>
@@ -59,7 +57,5 @@
                     </fieldset>
                 </form>
             </div>
-        </div>
-        <div id="container-right-bg"></div>
     </div>
 </div>
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-credentials.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-credentials.html
index b8352c0..8bc491a 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-credentials.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-credentials.html
@@ -1,109 +1,102 @@
-<div id="wrapper" class="container realm-policy">
-    <div class="row">
-        <div class="bs-sidebar col-md-3 clearfix" data-ng-include data-src="'partials/realm-menu.html'"></div>
-        <div id="content-area" class="col-md-9" role="main">
-            <div class="top-nav" data-ng-hide="createRealm">
-                <ul class="rcue-tabs">
-                    <li><a href="#/realms/{{realm.realm}}">General</a></li>
-                    <li data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
-                    <li class="active"><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
-                </ul>
-            </div>
-            <div id="content">
-                <ol class="breadcrumb">
-                    <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
-                    <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
-                    <li class="active">Required Credentials</li>
-                </ol>
-                <h2><span>{{realm.realm}}</span> Credentials</h2>
-                <form name="realmForm" novalidate>
-                    <fieldset class="border-top">
-                        <legend uncollapsed><span class="text">Realm Credentials Settings</span></legend>
-                        <div class="form-group clearfix">
-                            <label for="user" class="control-label two-lines">Required User Credentials</label>
+<div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div>
+<div id="content-area" class="col-sm-9" role="main">
+    <ul class="nav nav-tabs nav-tabs-pf">
+        <li><a href="#/realms/{{realm.realm}}">General</a></li>
+        <li data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
+        <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
+        <li class="active"><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
+        <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
+        <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
+        <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
+    </ul>
 
-                            <div class="controls">
-                                <input id="user" type="text" ui-select2="userCredentialOptions" ng-model="realm.requiredCredentials" placeholder="Type a role and enter">
-                            </div>
-                        </div>
-                        <div class="form-group clearfix">
-                            <label for="application" class="control-label two-lines">Required Application Credentials</label>
+    <div id="content">
+        <ol class="breadcrumb">
+            <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
+            <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
+            <li class="active">Required Credentials</li>
+        </ol>
+        <h2><span>{{realm.realm}}</span> Credentials</h2>
+        <form class="form-horizontal" name="realmForm" novalidate>
+            <fieldset class="border-top">
+                <legend uncollapsed><span class="text">Realm Credentials Settings</span></legend>
+                <div class="form-group clearfix">
+                    <label class="col-sm-2 control-label" for="user" class="control-label two-lines">Required User Credentials</label>
 
-                            <div class="controls">
-                                <input id="application" type="text" ui-select2="userCredentialOptions" ng-model="realm.requiredApplicationCredentials" placeholder="Type a role and enter">
-                            </div>
-                        </div>
-                        <div class="form-group clearfix">
-                            <label for="oauth" class="control-label two-lines">Required OAuth Credentials</label>
+                    <div class="col-sm-4">
+                        <input id="user" type="text" ui-select2="userCredentialOptions" ng-model="realm.requiredCredentials" placeholder="Type a role and enter">
+                    </div>
+                </div>
+                <div class="form-group clearfix">
+                    <label class="col-sm-2 control-label" for="application" class="control-label two-lines">Required Application Credentials</label>
 
-                            <div class="controls">
-                                <input id="oauth" type="text" ui-select2="userCredentialOptions" ng-model="realm.requiredOAuthClientCredentials" placeholder="Type a role and enter">
-                            </div>
-                        </div>
-                    </fieldset>
-                    <fieldset class="border-top">
-                        <legend uncollapsed><span class="text">Realm Password Policy</span></legend>
-                        <div class="form-group clearfix">
-                        <table>
-                            <caption class="hidden">Table of Password Policies</caption>
-                            <thead>
-                            <tr ng-show="(allPolicies|remove:policy:'name').length > 0">
-                                <th colspan="5" class="rcue-table-actions">
-                                    <div class="actions">
-                                        <div class="select-rcue">
-                                            <select ng-model="selectedPolicy"
-                                                    ng-options="(p.name|capitalize) for p in (allPolicies|remove:policy:'name')"
-                                                    data-ng-change="addPolicy(selectedPolicy); selectedPolicy = null">
-                                                <option value="" disabled selected>Add policy...</option>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </th>
-                            </tr>
-                            <tr>
-                                <th>Policy Type</th>
-                                <th>Policy Value</th>
-                                <th>Actions</th>
-                            </tr>
-                            </thead>
-                            <tbody>
-                            <tr ng-repeat="p in policy">
-                                <td>
-                                    <div class="clearfix">
-                                        <input class="input-small disabled" type="text" value="{{p.name|capitalize}}" readonly>
-                                    </div>
-                                </td>
-                                <td>
-                                    <input ng-model="p.value" type="number" placeholder="No value assigned" class="input-small" min="1" max="50">
-                                </td>
-                                <td>
-                                    <div class="action-div"><i class="icon-question" popover="{{policyMessages[name]}}"
-                                                               popover-placement="left" popover-trigger="mouseenter"></i></div>
-                                    <div class="action-div"><i class="icon-remove" ng-click="removePolicy($index)"></i></div>
-                                </td>
-                            </tr>
-                            </tbody>
-                        </table>
-                            </div>
-                    </fieldset>
-                    <div class="form-actions">
-                        <button type="submit" kc-save class="primary" data-ng-show="changed">Save
-                        </button>
-                        <button type="submit" kc-reset data-ng-show="changed">Clear changes
-                        </button>
+                    <div class="col-sm-4">
+                        <input id="application" type="text" ui-select2="userCredentialOptions" ng-model="realm.requiredApplicationCredentials" placeholder="Type a role and enter">
                     </div>
-                </form>
+                </div>
+                <div class="form-group clearfix">
+                    <label class="col-sm-2 control-label" for="oauth" class="control-label two-lines">Required OAuth Credentials</label>
+
+                    <div class="col-sm-4">
+                        <input id="oauth" type="text" ui-select2="userCredentialOptions" ng-model="realm.requiredOAuthClientCredentials" placeholder="Type a role and enter">
+                    </div>
+                </div>
+            </fieldset>
+            <fieldset class="border-top">
+                <legend uncollapsed><span class="text">Realm Password Policy</span></legend>
+                <div class="form-group clearfix">
+                    <table class="table">
+                        <caption class="hidden">Table of Password Policies</caption>
+                        <thead>
+                        <tr ng-show="(allPolicies|remove:policy:'name').length > 0">
+                            <th colspan="5" class="rcue-table-actions">
+                                <div class="actions">
+                                    <div class="select-rcue">
+                                        <select ng-model="selectedPolicy"
+                                                ng-options="(p.name|capitalize) for p in (allPolicies|remove:policy:'name')"
+                                                data-ng-change="addPolicy(selectedPolicy); selectedPolicy = null">
+                                            <option value="" disabled selected>Add policy...</option>
+                                        </select>
+                                    </div>
+                                </div>
+                            </th>
+                        </tr>
+                        <tr>
+                            <th>Policy Type</th>
+                            <th>Policy Value</th>
+                            <th>Actions</th>
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <tr ng-repeat="p in policy">
+                            <td>
+                                <div class="clearfix">
+                                    <input class="input-small disabled" type="text" value="{{p.name|capitalize}}" readonly>
+                                </div>
+                            </td>
+                            <td>
+                                <input ng-model="p.value" type="number" placeholder="No value assigned" class="input-small" min="1" max="50">
+                            </td>
+                            <td>
+                                <div class="action-div"><i class="icon-question" popover="{{policyMessages[name]}}"
+                                                           popover-placement="left" popover-trigger="mouseenter"></i></div>
+                                <div class="action-div"><i class="icon-remove" ng-click="removePolicy($index)"></i></div>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </fieldset>
+            <div class="pull-right form-actions">
+                <button kc-reset data-ng-show="changed">Clear changes</button>
+                <button kc-save data-ng-show="changed">Save</button>
             </div>
-        </div>
-        <div id="container-right-bg"></div>
+        </form>
     </div>
 </div>
 
+
 <!-- TODO remove once this page is properly styled -->
 <style type="text/css">
     .realm-policy .actions > div {
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-default-roles.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-default-roles.html
index 6644ef2..84a291b 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-default-roles.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-default-roles.html
@@ -1,96 +1,97 @@
-<div id="wrapper" class="container">
-    <div class="row">
-        <div class="bs-sidebar col-md-3 clearfix" data-ng-include data-src="'partials/realm-menu.html'"></div>
-        <div id="content-area" class="col-md-9" role="main">
-            <div class="top-nav" data-ng-hide="createRealm">
-                <ul class="rcue-tabs">
-                    <li><a href="#/realms/{{realm.realm}}">General</a></li>
-                    <li data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
-                    <li class="active"><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
-                </ul>
-            </div>
-            <div id="content">
-                <ol class="breadcrumb">
-                    <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
-                    <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
-                    <li class="active">Registration</li>
-                </ol>
-                <h2><span>{{realm.realm}}</span> Registration Settings</h2>
-                <form name="realmForm" novalidate>
-                    <fieldset>
-                        <legend uncollapsed><span class="text">Realm Default Roles</span> </legend>
-                        <div class="form-group">
-                            <div class="controls changing-selectors">
-                                <div class="select-title">
-                                    <label for="available">Available Roles</label>
-                                    <select id="available" class="form-control" multiple size="5"
-                                            ng-multiple="true"
-                                            ng-model="selectedRealmRoles"
-                                            ng-options="r for r in availableRealmRoles">
-                                    </select>
-                                </div>
-                                <div class="middle-buttons">
-                                    <button type="submit" ng-click="addRealmDefaultRole()" tooltip="Move right" tooltip-placement="right"><span class="icon-arrow-right">Move right</span></button>
-                                    <button type="submit" ng-click="deleteRealmDefaultRole()" tooltip="Move left" tooltip-placement="right"><span class="icon-arrow-left">Move left</span></button>
-                                </div>
-                                <div class="select-title">
-                                    <label for="assigned">Realm Default Roles</label>
-                                    <select id="assigned" class="form-control" multiple size=5
-                                            ng-multiple="true"
-                                            ng-model="selectedRealmDefRoles"
-                                            ng-options="r for r in realm.defaultRoles">
-                                    </select>
-                                </div>
-                            </div>
+<div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div>
+<div id="content-area" class="col-sm-9" role="main">
+    <ul class="nav nav-tabs nav-tabs-pf">
+        <li><a href="#/realms/{{realm.realm}}">General</a></li>
+        <li data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
+        <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
+        <li class="active"><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
+        <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
+        <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
+        <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
+    </ul>
+    <div id="content">
+        <ol class="breadcrumb">
+            <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
+            <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
+            <li class="active">Registration</li>
+        </ol>
+        <h2><span>{{realm.realm}}</span> Registration Settings</h2>
+        <form name="realmForm" novalidate>
+            <fieldset>
+                <legend uncollapsed><span class="text">Realm Default Roles</span> </legend>
+                <div class="form-group">
+                    <div class="controls changing-selectors">
+                        <div class="select-title">
+                            <label for="available">Available Roles</label>
+                            <select id="available" class="form-control" multiple size="5"
+                                    ng-multiple="true"
+                                    ng-model="selectedRealmRoles"
+                                    ng-options="r for r in availableRealmRoles">
+                            </select>
                         </div>
-                    </fieldset>
+                        <div class="middle-buttons">
+                            <button class="kc-button" type="submit" ng-click="addRealmDefaultRole()" tooltip="Move right" tooltip-placement="right">
+                                <span class="glyphicon glyphicon-chevron-right"><span>Move right</span></span>
+                            </button>
+                            <button class="kc-button" type="submit" ng-click="deleteRealmDefaultRole()" tooltip="Move left" tooltip-placement="right">
+                                <span class="glyphicon glyphicon-chevron-left"><span>Move left</span></span>
+                            </button>
+                        </div>
+                        <div class="select-title">
+                            <label for="assigned">Realm Default Roles</label>
+                            <select id="assigned" class="form-control" multiple size=5
+                                    ng-multiple="true"
+                                    ng-model="selectedRealmDefRoles"
+                                    ng-options="r for r in realm.defaultRoles">
+                            </select>
+                        </div>
+                    </div>
+                </div>
+            </fieldset>
 
-                    <fieldset ng-show="applications.length > 0">
-                        <legend uncollapsed><span class="text">Application Default Roles</span> </legend>
-                        <div class="form-group input-select">
-                            <label for="applications">Application</label>
-                            <div class="input-group">
-                                <div class="select-rcue">
-                                    <select id="applications" name="applications" ng-change="changeApplication()" ng-model="application" ng-options="a.name for a in applications">
-                                        <option value="" selected> Select an Application...</option>
-                                    </select>
-                                </div>
-                            </div>
+            <fieldset ng-show="applications.length > 0">
+                <legend uncollapsed><span class="text">Application Default Roles</span> </legend>
+                <div class="form-group input-select">
+                    <label for="applications">Application</label>
+                    <div class="input-group">
+                        <div class="select-rcue">
+                            <select id="applications" name="applications" ng-change="changeApplication()" ng-model="application" ng-options="a.name for a in applications">
+                                <option value="" selected> Select an Application...</option>
+                            </select>
+                        </div>
+                    </div>
+                </div>
+                <div class="form-group" ng-show="application">
+                    <div class="controls changing-selectors application">
+                        <div class="select-title">
+                            <label for="available-app">Available Roles</label>
+                            <select id="available-app" class="form-control" multiple size="5"
+                                    ng-multiple="true"
+                                    ng-model="selectedAppRoles"
+                                    ng-options="r for r in availableAppRoles">
+                            </select>
+                        </div>
+                        <div class="middle-buttons">
+                            <button class="kc-button" type="submit" ng-click="addAppDefaultRole()" tooltip="Move right" tooltip-placement="right">
+                                <span class="glyphicon glyphicon-chevron-right"><span>Move right</span></span>
+                            </button>
+                            <button class="kc-button" type="submit" ng-click="rmAppDefaultRole()" tooltip="Move left" tooltip-placement="right">
+                                <span class="glyphicon glyphicon-chevron-left"><span>Move left</span></span>
+                            </button>
                         </div>
-                        <div class="form-group" ng-show="application">
-                            <div class="controls changing-selectors application">
-                                <div class="select-title">
-                                    <label for="available-app">Available Roles</label>
-                                    <select id="available-app" class="form-control" multiple size="5"
-                                            ng-multiple="true"
-                                            ng-model="selectedAppRoles"
-                                            ng-options="r for r in availableAppRoles">
-                                    </select>
-                                </div>
-                                <div class="middle-buttons">
-                                    <button type="submit" ng-click="addAppDefaultRole()" tooltip="Move right" tooltip-placement="right"><span class="icon-arrow-right">Move right</span></button>
-                                    <button type="submit" ng-click="rmAppDefaultRole()" tooltip="Move left" tooltip-placement="right"><span class="icon-arrow-left">Move left</span></button>
-                                </div>
-                                <div class="select-title">
-                                    <label for="assigned-app">Assigned Default Roles</label>
-                                    <select id="assigned-app" class="form-control" multiple size=5
-                                            ng-multiple="true"
-                                            ng-model="selectedAppDefRoles"
-                                            ng-options="r for r in application.defaultRoles">
-                                    </select>
-                                </div>
-                            </div>
+                        <div class="select-title">
+                            <label for="assigned-app">Assigned Default Roles</label>
+                            <select id="assigned-app" class="form-control" multiple size=5
+                                    ng-multiple="true"
+                                    ng-model="selectedAppDefRoles"
+                                    ng-options="r for r in application.defaultRoles">
+                            </select>
                         </div>
-                    </fieldset>
+                    </div>
+                </div>
+            </fieldset>
 
-                </form>
-            </div>
-        </div>
-        <div id="container-right-bg"></div>
+        </form>
     </div>
 </div>
\ No newline at end of file
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-detail.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-detail.html
index 67366ce..f2b7eb1 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-detail.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-detail.html
@@ -1,129 +1,105 @@
-    <div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div>
-        <div id="content-area" class="col-sm-9" role="main">
-            <ul class="nav nav-tabs nav-tabs-pf">
-                <li class="active"><a href="#/realms/{{realm.realm}}">General</a></li>
-                <li data-ng-show="social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
-                <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
-                <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
-                <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
-                <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
-                <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
-                <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
-            </ul>
-            <div id="content">
-                <ol class="breadcrumb" data-ng-hide="createRealm">
-                    <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
-                    <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
-                    <li class="active">General</li>
-                </ol>
-                <h2 class="pull-left" data-ng-show="createRealm">Add Realm</h2>
-                <h2 data-ng-hide="createRealm"><span>{{realm.realm}}</span> General Settings</h2>
-                <p class="subtitle" data-ng-show="createRealm"><span class="required">*</span> Required fields</p>
-                <form class="form-horizontal" name="realmForm" novalidate>
-                    <fieldset>
-                        <legend uncollapsed class="aj-collapse open"><span class="text">Required Settings</span></legend>
-                        <div class="form-group">
-                            <label class="col-sm-2 control-label" for="name">Name <span class="required" data-ng-show="createRealm">*</span></label>
+<div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div>
+<div id="content-area" class="col-sm-9" role="main">
+    <ul class="nav nav-tabs nav-tabs-pf">
+        <li class="active"><a href="#/realms/{{realm.realm}}">General</a></li>
+        <li data-ng-show="social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
+        <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
+        <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
+        <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
+        <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
+    </ul>
+    <div id="content">
+        <ol class="breadcrumb" data-ng-hide="createRealm">
+            <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
+            <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
+            <li class="active">General</li>
+        </ol>
+        <h2 class="pull-left" data-ng-show="createRealm">Add Realm</h2>
+        <h2 data-ng-hide="createRealm"><span>{{realm.realm}}</span> General Settings</h2>
+        <p class="subtitle" data-ng-show="createRealm"><span class="required">*</span> Required fields</p>
+        <form class="form-horizontal" name="realmForm" novalidate>
+            <fieldset>
+                <legend uncollapsed class="aj-collapse open"><span class="text">Required Settings</span></legend>
+                <div class="form-group">
+                    <label class="col-sm-2 control-label" for="name">Name <span class="required" data-ng-show="createRealm">*</span></label>
 
-                            <div class="col-sm-4">
-                                <input class="form-control" type="text" id="name" name="name" data-ng-model="realm.realm" autofocus required>
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <label class="col-sm-2 control-label control-label" for="enabled">Enabled</label>
-                            <div class="col-sm-4">
-                            <input ng-model="realm.enabled" name="enabled" id="enabled" onoffswitch />
-                            </div>
-                        </div>
-                    </fieldset>
-                    <fieldset>
-                        <legend uncollapsed><span class="text">Login Options</span></legend>
-                        <div class="form-group clearfix block">
-                            <label for="social" class="col-sm-2 control-label">Social login</label>
-                            <div class="col-sm-4">
-                                <input ng-model="realm.social" name="social" id="social" onoffswitch />
-                            </div>
-                        </div>
-                        <div class="form-group clearfix block" data-ng-show="realm.social">
-                            <label for="updateProfileOnInitialSocialLogin" class="col-sm-2 control-label">Update profile on first social login</label>
-                            <div class="col-sm-4">
-                                <input ng-model="realm.updateProfileOnInitialSocialLogin" name="updateProfileOnInitialSocialLogin" id="updateProfileOnInitialSocialLogin" onoffswitch />
-                            </div>
-                        </div>
-                        <div class="form-group clearfix block">
-                            <label for="registrationAllowed" class="col-sm-2 control-label">User registration</label>
-                            <div class="col-sm-4">
-                                <input ng-model="realm.registrationAllowed" name="registrationAllowed" id="registrationAllowed" onoffswitch />
-                            </div>
-                        </div>
-                        <div class="form-group clearfix block">
-                            <label for="resetPasswordAllowed" class="col-sm-2 control-label">Reset password</label>
-                            <div class="col-sm-4">
-                                <input ng-model="realm.resetPasswordAllowed" name="resetPasswordAllowed" id="resetPasswordAllowed" onoffswitch />
-                            </div>
-                        </div>
-                        <div class="form-group clearfix block">
-                            <label for="verifyEmail" class="col-sm-2 control-label">Verify email</label>
-                            <div class="col-sm-4">
-                                <input ng-model="realm.verifyEmail" name="verifyEmail" id="verifyEmail" onoffswitch />
-                            </div>
-                        </div>
-                        <div class="form-group clearfix block">
-                            <label for="requireSsl" class="col-sm-2 control-label">Require SSL</label>
-                            <div class="col-sm-4">
-                                <input ng-model="realm.requireSsl" name="requireSsl" id="requireSsl" onoffswitch />
-                            </div>
-                        </div>
-                    </fieldset>
-                    <fieldset>
-                        <legend uncollapsed><span class="text">Optional Settings</span></legend>
-                        <div class="form-group">
-                            <label class="col-sm-2 control-label" for="loginTheme">Login Theme</label>
-
-                            <div class="col-sm-4">
-                                <!--<select id="loginTheme" name="loginTheme" ng-model="realm.loginTheme" ng-options="t for t in serverInfo.themes.login"></select>-->
-                                <div class="dropdown">
-                                    <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown">
-                                        {{realm.loginTheme}}
-                                        <span class="caret"></span>
-                                    </button>
-                                    <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
-                                        <li role="presentation" data-ng-repeat="t in serverInfo.themes.login">
-                                            <a role="menuitem" tabindex="-1" href="" data-ng-click="realm.loginTheme = t">{{t}}</a>
-                                        </li>
-                                    </ul>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <label class="col-sm-2 control-label" for="accountTheme">Account Theme</label>
-
-                            <div class="col-sm-4">
-                                <!--<select id="accountTheme" name="accountTheme" ng-model="realm.accountTheme" ng-options="t for t in serverInfo.themes.account"></select>-->
-                                <div class="dropdown">
-                                    <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown">
-                                        {{realm.accountTheme}}
-                                        <span class="caret"></span>
-                                    </button>
-                                    <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
-                                        <li role="presentation" data-ng-repeat="t in serverInfo.themes.account">
-                                            <a role="menuitem" tabindex="-1" href="" data-ng-click="realm.accountTheme = t">{{t}}</a>
-                                        </li>
-                                    </ul>
-                                </div>
-                            </div>
-                        </div>
-                    </fieldset>
-
-                    <div class="pull-right form-actions" data-ng-show="createRealm">
-                        <button class="btn btn-default btn-lg" type="submit" data-ng-click="cancel()">Cancel</button>
-                        <button class="btn btn-primary btn-lg" type="submit" kc-save data-ng-show="changed">Save</button>
+                    <div class="col-sm-4">
+                        <input class="form-control" type="text" id="name" name="name" data-ng-model="realm.realm" autofocus required>
+                    </div>
+                </div>
+                <div class="form-group">
+                    <label class="col-sm-2 control-label control-label" for="enabled">Enabled</label>
+                    <div class="col-sm-4">
+                        <input ng-model="realm.enabled" name="enabled" id="enabled" onoffswitch />
+                    </div>
+                </div>
+            </fieldset>
+            <fieldset>
+                <legend uncollapsed><span class="text">Login Options</span></legend>
+                <div class="form-group clearfix block">
+                    <label for="social" class="col-sm-2 control-label">Social login</label>
+                    <div class="col-sm-4">
+                        <input ng-model="realm.social" name="social" id="social" onoffswitch />
+                    </div>
+                </div>
+                <div class="form-group clearfix block" data-ng-show="realm.social">
+                    <label for="updateProfileOnInitialSocialLogin" class="col-sm-2 control-label">Update profile on first social login</label>
+                    <div class="col-sm-4">
+                        <input ng-model="realm.updateProfileOnInitialSocialLogin" name="updateProfileOnInitialSocialLogin" id="updateProfileOnInitialSocialLogin" onoffswitch />
+                    </div>
+                </div>
+                <div class="form-group clearfix block">
+                    <label for="registrationAllowed" class="col-sm-2 control-label">User registration</label>
+                    <div class="col-sm-4">
+                        <input ng-model="realm.registrationAllowed" name="registrationAllowed" id="registrationAllowed" onoffswitch />
                     </div>
-                    <div class="pull-right form-actions" data-ng-show="!createRealm">
-                        <button class="btn btn-default btn-lg" type="submit" kc-reset data-ng-show="changed">Clear changes</button>
-                        <button class="btn btn-primary btn-lg" type="submit" kc-save  data-ng-show="changed">Save</button>
-                        <button class="btn btn-danger btn-lg" type="submit" data-ng-click="remove()" data-ng-hide="changed">Delete</button>
+                </div>
+                <div class="form-group clearfix block">
+                    <label for="resetPasswordAllowed" class="col-sm-2 control-label">Reset password</label>
+                    <div class="col-sm-4">
+                        <input ng-model="realm.resetPasswordAllowed" name="resetPasswordAllowed" id="resetPasswordAllowed" onoffswitch />
                     </div>
-                </form>
+                </div>
+                <div class="form-group clearfix block">
+                    <label for="verifyEmail" class="col-sm-2 control-label">Verify email</label>
+                    <div class="col-sm-4">
+                        <input ng-model="realm.verifyEmail" name="verifyEmail" id="verifyEmail" onoffswitch />
+                    </div>
+                </div>
+                <div class="form-group clearfix block">
+                    <label for="requireSsl" class="col-sm-2 control-label">Require SSL</label>
+                    <div class="col-sm-4">
+                        <input ng-model="realm.requireSsl" name="requireSsl" id="requireSsl" onoffswitch />
+                    </div>
+                </div>
+            </fieldset>
+            <fieldset>
+                <legend uncollapsed><span class="text">Optional Settings</span></legend>
+                <div class="form-group row">
+                    <label class="col-sm-2 control-label" for="loginTheme">Login Theme</label>
+                    <div class="col-sm-4">
+                        <kc-select id="loginTheme" data-kc-model="realm.accountTheme" ng-model="realm.loginTheme" data-kc-options="serverInfo.themes.login"/>
+                    </div>
+                </div>
+                <div class="form-group">
+                    <label class="col-sm-2 control-label" for="accountTheme">Account Theme</label>
+                    <div class="col-sm-4">
+                        <kc-select id="accountTheme" data-kc-model="realm.accountTheme" ng-model="realm.accountTheme" data-kc-options="serverInfo.themes.account"/>
+                    </div>
+                </div>
+            </fieldset>
+
+            <div class="pull-right form-actions" data-ng-show="createRealm">
+                <button kc-cancel data-ng-click="cancel()">Cancel</button>
+                <button kc-save data-ng-show="changed">Save</button>
+            </div>
+            <div class="pull-right form-actions" data-ng-show="!createRealm">
+                <button kc-reset data-ng-show="changed">Clear changes</button>
+                <button kc-save  data-ng-show="changed">Save</button>
+                <button kc-delete data-ng-click="remove()" data-ng-hide="changed">Delete</button>
             </div>
-        </div>
+        </form>
+    </div>
+</div>
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-detail_mock.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-detail_mock.html
new file mode 100755
index 0000000..8bbecfc
--- /dev/null
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-detail_mock.html
@@ -0,0 +1,116 @@
+<h2 class="pull-left" data-ng-show="createRealm">Add Realm</h2>
+<h2 data-ng-hide="createRealm"><span>{{realm.realm}}</span> General Settings</h2>
+<p class="subtitle" data-ng-show="createRealm"><span class="required">*</span> Required fields</p>
+<form class="form-horizontal" name="realmForm" novalidate>
+    <fieldset>
+        <legend uncollapsed class="aj-collapse open"><span class="text">Required Settings</span></legend>
+        <div class="form-group">
+            <label class="col-sm-2 control-label" for="name">Name <span class="required" data-ng-show="createRealm">*</span></label>
+
+            <div class="col-sm-4">
+                <input class="form-control" type="text" id="name" name="name" data-ng-model="realm.realm" autofocus required>
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-2 control-label control-label" for="enabled">Enabled</label>
+            <div class="col-sm-4">
+                <input ng-model="realm.enabled" name="enabled" id="enabled" onoffswitch />
+            </div>
+        </div>
+    </fieldset>
+    <fieldset>
+        <legend uncollapsed><span class="text">Login Options</span></legend>
+        <div class="form-group clearfix block">
+            <label for="social" class="col-sm-2 control-label">Social login</label>
+            <div class="col-sm-4">
+                <input ng-model="realm.social" name="social" id="social" onoffswitch />
+            </div>
+        </div>
+        <div class="form-group clearfix block" data-ng-show="realm.social">
+            <label for="updateProfileOnInitialSocialLogin" class="col-sm-2 control-label">Update profile on first social login</label>
+            <div class="col-sm-4">
+                <input ng-model="realm.updateProfileOnInitialSocialLogin" name="updateProfileOnInitialSocialLogin" id="updateProfileOnInitialSocialLogin" onoffswitch />
+            </div>
+        </div>
+        <div class="form-group clearfix block">
+            <label for="registrationAllowed" class="col-sm-2 control-label">User registration</label>
+            <div class="col-sm-4">
+                <input ng-model="realm.registrationAllowed" name="registrationAllowed" id="registrationAllowed" onoffswitch />
+            </div>
+        </div>
+        <div class="form-group clearfix block">
+            <label for="resetPasswordAllowed" class="col-sm-2 control-label">Reset password</label>
+            <div class="col-sm-4">
+                <input ng-model="realm.resetPasswordAllowed" name="resetPasswordAllowed" id="resetPasswordAllowed" onoffswitch />
+            </div>
+        </div>
+        <div class="form-group clearfix block">
+            <label for="verifyEmail" class="col-sm-2 control-label">Verify email</label>
+            <div class="col-sm-4">
+                <input ng-model="realm.verifyEmail" name="verifyEmail" id="verifyEmail" onoffswitch />
+            </div>
+        </div>
+        <div class="form-group clearfix block">
+            <label for="requireSsl" class="col-sm-2 control-label">Require SSL</label>
+            <div class="col-sm-4">
+                <input ng-model="realm.requireSsl" name="requireSsl" id="requireSsl" onoffswitch />
+            </div>
+        </div>
+    </fieldset>
+    <fieldset>
+        <legend uncollapsed><span class="text">Optional Settings</span></legend>
+        <div class="form-group row">
+            <label class="col-sm-2 control-label" for="loginTheme">Login Theme</label>
+            <!--<select id="loginTheme" name="loginTheme" ng-model="realm.loginTheme" ng-options="t for t in serverInfo.themes.login"></select>-->
+            <div class="col-sm-4">
+                <div class="dropdown">
+                    <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown">
+                        {{realm.loginTheme}}
+                        <span class="caret"></span>
+                    </button>
+                    <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
+                        <li role="presentation" data-ng-repeat="t in serverInfo.themes.login">
+                            <a role="menuitem" tabindex="-1" href="" data-ng-click="realm.loginTheme = t">{{t}}</a>
+                        </li>
+                    </ul>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-2 control-label" for="accountTheme">Account Theme</label>
+            <!--<select id="accountTheme" name="accountTheme" ng-model="realm.accountTheme" ng-options="t for t in serverInfo.themes.account"></select>-->
+            <div class="col-sm-4">
+                <div class="dropdown">
+                    <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown">
+                        {{realm.accountTheme}}
+                        <span class="caret"></span>
+                    </button>
+                    <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
+                        <li role="presentation" data-ng-repeat="t in serverInfo.themes.account">
+                            <a role="menuitem" tabindex="-1" href="" data-ng-click="realm.accountTheme = t">{{t}}</a>
+                        </li>
+                    </ul>
+                </div>
+            </div>
+        </div>
+
+        <div class="form-group">
+            <label class="col-sm-2 control-label" for="accountTheme2">Account Theme2</label>
+            <!--<select id="accountTheme" name="accountTheme" ng-model="realm.accountTheme" ng-options="t for t in serverInfo.themes.account"></select>-->
+            <div class="col-sm-4">
+                <kc-select data-kc-model="realm.accountTheme" data-kc-options="serverInfo.themes.account"/>
+            </div>
+        </div>
+    </fieldset>
+
+    <div class="pull-right form-actions" data-ng-show="createRealm">
+        <button kc-cancel data-ng-click="cancel()">Cancel</button>
+        <button kc-save data-ng-show="changed">Save</button>
+    </div>
+    <div class="pull-right form-actions" data-ng-show="!createRealm">
+        <button kc-reset data-ng-show="changed">Clear changes</button>
+        <button kc-save  data-ng-show="changed">Save</button>
+        <button kc-delete data-ng-click="remove()" data-ng-hide="changed">Delete</button>
+    </div>
+</form>
+</div>
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 b00c969..84f564e 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
@@ -1,44 +1,36 @@
-<div id="wrapper" class="container" xmlns="http://www.w3.org/1999/html">
-    <div class="row">
-        <div class="bs-sidebar col-md-3 clearfix" data-ng-include data-src="'partials/realm-menu.html'"></div>
-        <div id="content-area" class="col-md-9" role="main">
-            <div class="top-nav" data-ng-hide="createRealm">
-                <ul class="rcue-tabs">
-                    <li><a href="#/realms/{{realm.realm}}">General</a></li>
-                    <li data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
-                    <li class="active"><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
-                </ul>
-            </div>
-            <div id="content">
-                <ol class="breadcrumb">
-                    <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
-                    <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
-                    <li class="active">Keys</li>
-                </ol>
-                <h2><span>{{realm.realm}}</span> Keys</h2>
-                <form name="realmForm" novalidate>
-                    <fieldset class="border-top">
-                        <div class="form-group">
-                            <label for="publicKey">Public key</label>
+<div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div>
+<div id="content-area" class="col-sm-9" role="main">
+    <ul class="nav nav-tabs nav-tabs-pf">
+        <li><a href="#/realms/{{realm.realm}}">General</a></li>
+        <li data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
+        <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
+        <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
+        <li class="active"><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
+        <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
+    </ul>
+    <div id="content">
+        <ol class="breadcrumb">
+            <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
+            <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
+            <li class="active">Keys</li>
+        </ol>
+        <h2><span>{{realm.realm}}</span> Keys</h2>
+        <form name="realmForm" novalidate>
+            <fieldset class="border-top">
+                <div class="form-group">
+                    <label for="publicKey">Public key</label>
 
-                            <div class="controls">
-                                <textarea type="text" id="publicKey" name="publicKey" class="xlarge" rows="5"
-                                          kc-select-action="click" readonly>{{realm.publicKey}}</textarea>
-                            </div>
-                        </div>
-                    </fieldset>
-                    <div class="form-actions">
-                        <button type="submit" data-ng-click="generate()">Generate new keys</button>
+                    <div class="controls">
+                        <textarea type="text" id="publicKey" name="publicKey" class="xlarge" rows="5"
+                                  kc-select-action="click" readonly>{{realm.publicKey}}</textarea>
                     </div>
-               </form>
-
+                </div>
+            </fieldset>
+            <div class="pull-right form-actions">
+                <button class="btn btn-primary btn-lg" type="submit" data-ng-click="generate()">Generate new keys</button>
             </div>
-        </div>
-        <div id="container-right-bg"></div>
+        </form>
     </div>
 </div>
\ No newline at end of file
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-smtp.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-smtp.html
index 2a2d313..f892072 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-smtp.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/realm-smtp.html
@@ -1,110 +1,84 @@
-<div id="wrapper" class="container">
-    <div class="row">
-        <div class="bs-sidebar col-md-3 clearfix" data-ng-include data-src="'partials/realm-menu.html'"></div>
-        <div id="content-area" class="col-md-9" role="main">
-            <div class="top-nav" data-ng-hide="createRealm">
-                <ul class="rcue-tabs">
-                    <li><a href="#/realms/{{realm.realm}}">General</a></li>
-                    <li data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
-                    <li class="active"><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
-                </ul>
-            </div>
-            <div id="content">
-                <ol class="breadcrumb">
-                    <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
-                    <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
-                    <li class="active">SMTP Configuration</li>
-                </ol>
-                <h2 class="pull-left"><span>{{realm.realm}}</span> Email Server Settings</h2>
-                <p class="subtitle"><span class="required">*</span> Required fields</p>
-                <form name="realmForm" novalidate>
-                    <fieldset>
-                        <legend uncollapsed><span class="text">Required Settings</span></legend>
-                        <div class="form-group clearfix">
-                            <label for="smtpHost" class="control-label">Host <span class="required">*</span></label>
-                            <div class="controls">
-                                <input id="smtpHost" type="text" ng-model="realm.smtpServer.host" placeholder="SMTP Host" required>
-                            </div>
-                        </div>
-                        <div class="form-group clearfix">
-                            <label for="smtpPort" class="control-label">Port <span class="required">*</span></label>
-                            <div class="controls">
-                                <input id="smtpPort" type="number" ng-model="realm.smtpServer.port" placeholder="SMTP Port (defaults to 25)" required>
-                            </div>
-                        </div>
-                        <div class="form-group clearfix">
-                            <label for="smtpFrom" class="control-label">From <span class="required">*</span></label>
-                            <div class="controls">
-                                <input id="smtpFrom" type="email" ng-model="realm.smtpServer.from" placeholder="Sender Email Address" required>
-                            </div>
-                        </div>
-                        <div class="form-group clearfix">
-                            <label for="smtpSSL" class="control-label">Enable SSL</label>
-                            <input ng-model="realm.smtpServer.ssl" name="smtpSSL" id="smtpSSL" onoffswitch />
-                        </div>
-                        <div class="form-group clearfix">
-                            <label for="smtpStartTLS" class="control-label">Enable StartTLS</label>
-                            <input ng-model="realm.smtpServer.starttls" name="smtpStartTLS" id="smtpStartTLS" onoffswitch />
-                        </div>
-                    </fieldset>
-                    <fieldset>
-                        <legend uncollapsed><span class="text">Authentication</span></legend>
-                        <div class="form-group clearfix">
-                            <label for="smtpAuth" class="control-label">Enable Authentication</label>
-                            <input ng-model="realm.smtpServer.auth" name="smtpAuth" id="smtpAuth" onoffswitch />
-                        </div>
-                        <div class="form-group clearfix" data-ng-show="realm.smtpServer.auth">
-                            <label for="smtpUsername" class="control-label">Username <span class="required" ng-show="realm.smtpServer.auth">*</span></label>
-                            <div class="controls">
-                                <input id="smtpUsername" type="text" ng-model="realm.smtpServer.user" placeholder="Login Username" ng-disabled="!realm.smtpServer.auth" ng-required="realm.smtpServer.auth">
-                            </div>
-                        </div>
-                        <div class="form-group clearfix" data-ng-show="realm.smtpServer.auth">
-                            <label for="smtpPassword" class="control-label">Password <span class="required" ng-show="realm.smtpServer.auth">*</span></label>
-                            <div class="controls">
-                                <input id="smtpPassword" type="password" ng-model="realm.smtpServer.password" placeholder="Login Password" ng-disabled="!realm.smtpServer.auth" ng-required="realm.smtpServer.auth">
-                            </div>
-                        </div>
-                    </fieldset>
-<!--
-                    <fieldset class="border-top">
-                        <div class="form-group clearfix" ng-repeat="(name, setting) in smtpSettings | orderBy: setting.required">
-                            <label for="{{name}}" class="control-label">{{name.replace('mail.smtp.','')}} <span class="required" data-ng-show="setting.required">*</span></label>
-
-                            <div ng-show="setting.type == 'boolean'" class="onoffswitch">
-                                <input type="checkbox" data-ng-model="realm.smtp[name]" class="onoffswitch-checkbox" name="{{name}}" id="{{name}}">
-                                <label for="{{name}}" class="onoffswitch-label">
-                                        <span class="onoffswitch-inner">
-                                            <span class="onoffswitch-active">ON</span>
-                                            <span class="onoffswitch-inactive">OFF</span>
-                                        </span>
-                                    <span class="onoffswitch-switch"></span>
-                                </label>
-                            </div>
-                            <div ng-show="setting.type == 'String'" class="controls">
-                                <input id="{{name}}" type="text" ng-model="realm.smtp[name]" placeholder="SMTP {{name}} / {{ setting.required }}">
-                            </div>
-                            <div ng-show="setting.type == 'int'" class="controls">
-                                <input id="{{name}}" type="number" ng-model="realm.smtp[name]" placeholder="SMTP {{name}} / {{ setting.required }}">
-                            </div>
-                        </div>
-                    </fieldset>
--->
-                   <div class="form-actions">
-                        <button type="submit" data-kc-save class="primary" data-ng-show="changed">Save
-                        </button>
-                        <button type="submit" data-kc-reset data-ng-show="changed">Clear changes
-                        </button>
+<div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div>
+<div id="content-area" class="col-sm-9" role="main">
+    <ul class="nav nav-tabs nav-tabs-pf">
+        <li><a href="#/realms/{{realm.realm}}">General</a></li>
+        <li data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
+        <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
+        <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
+        <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
+        <li class="active"><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
+    </ul>
+    <div id="content">
+        <ol class="breadcrumb">
+            <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
+            <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
+            <li class="active">SMTP Configuration</li>
+        </ol>
+        <h2><span>{{realm.realm}}</span> Email Server Settings</h2>
+        <p class="subtitle pull-right"><span class="required">*</span> Required fields</p>
+        <form class="form-horizontal" name="realmForm" novalidate>
+            <fieldset>
+                <legend uncollapsed><span class="text">Required Settings</span></legend>
+                <div class="form-group clearfix">
+                    <label class="col-sm-2 control-label" for="smtpHost">Host <span class="required">*</span></label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="smtpHost" type="text" ng-model="realm.smtpServer.host" placeholder="SMTP Host" required>
+                    </div>
+                </div>
+                <div class="form-group clearfix">
+                    <label class="col-sm-2 control-label" for="smtpPort">Port <span class="required">*</span></label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="smtpPort" type="number" ng-model="realm.smtpServer.port" placeholder="SMTP Port (defaults to 25)" required>
+                    </div>
+                </div>
+                <div class="form-group clearfix">
+                    <label class="col-sm-2 control-label" for="smtpFrom">From <span class="required">*</span></label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="smtpFrom" type="email" ng-model="realm.smtpServer.from" placeholder="Sender Email Address" required>
+                    </div>
+                </div>
+                <div class="form-group clearfix">
+                    <label class="col-sm-2 control-label" for="smtpSSL">Enable SSL</label>
+                    <div class="col-sm-4">
+                        <input ng-model="realm.smtpServer.ssl" name="smtpSSL" id="smtpSSL" onoffswitch />
                     </div>
+                </div>
+                <div class="form-group clearfix">
+                    <label class="col-sm-2 control-label" for="smtpStartTLS">Enable StartTLS</label>
+                    <div class="col-sm-4">
+                        <input ng-model="realm.smtpServer.starttls" name="smtpStartTLS" id="smtpStartTLS" onoffswitch />
+                    </div>
+                </div>
+            </fieldset>
+            <fieldset>
+                <legend uncollapsed><span class="text">Authentication</span></legend>
+                <div class="form-group clearfix">
+                    <label class="col-sm-2 control-label" for="smtpAuth">Enable Authentication</label>
+                    <div class="col-sm-4">
+                        <input ng-model="realm.smtpServer.auth" name="smtpAuth" id="smtpAuth" onoffswitch />
+                    </div>
+                </div>
+                <div class="form-group clearfix" data-ng-show="realm.smtpServer.auth">
+                    <label class="col-sm-2 control-label" for="smtpUsername">Username <span class="required" ng-show="realm.smtpServer.auth">*</span></label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="smtpUsername" type="text" ng-model="realm.smtpServer.user" placeholder="Login Username" ng-disabled="!realm.smtpServer.auth" ng-required="realm.smtpServer.auth">
+                    </div>
+                </div>
+                <div class="form-group clearfix" data-ng-show="realm.smtpServer.auth">
+                    <label class="col-sm-2 control-label" for="smtpPassword">Password <span class="required" ng-show="realm.smtpServer.auth">*</span></label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="smtpPassword" type="password" ng-model="realm.smtpServer.password" placeholder="Login Password" ng-disabled="!realm.smtpServer.auth" ng-required="realm.smtpServer.auth">
+                    </div>
+                </div>
+            </fieldset>
 
-                </form>
+            <div class="pull-right form-actions">
+                <button data-kc-reset data-ng-show="changed">Clear changes</button>
+                <button data-kc-save data-ng-show="changed">Save</button>
             </div>
-        </div>
-        <div id="container-right-bg"></div>
+
+        </form>
     </div>
 </div>
\ No newline at end of file
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 999b6be..1ba462f 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
@@ -1,95 +1,89 @@
-<div id="wrapper" class="container social-provider">
-    <div class="row">
-        <div class="bs-sidebar col-md-3 clearfix" data-ng-include data-src="'partials/realm-menu.html'"></div>
-        <div id="content-area" class="col-md-9" role="main">
-            <div class="top-nav" data-ng-hide="createRealm">
-                <ul class="rcue-tabs">
-                    <li><a href="#/realms/{{realm.realm}}">General</a></li>
-                    <li class="active" data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
-                </ul>
-            </div>
-            <div id="content">
-                <ol class="breadcrumb">
-                    <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
-                    <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
-                    <li class="active">Social</li>
-                </ol>
-                <h2><span>{{realm.realm}}</span> Social Providers Settings</h2>
+<div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div>
+<div id="content-area" class="col-sm-9" role="main">
+    <ul class="nav nav-tabs nav-tabs-pf">
+        <li><a href="#/realms/{{realm.realm}}">General</a></li>
+        <li class="active" data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
+        <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
+        <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
+        <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
+        <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
+    </ul>
+    <div id="content">
+        <ol class="breadcrumb">
+            <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
+            <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
+            <li class="active">Social</li>
+        </ol>
+        <h2><span>{{realm.realm}}</span> Social Providers Settings</h2>
 
 
-                <div class="feedback info inline">
-                    <p><strong>Social Callback URL:</strong> {{callbackUrl}}</p>
-                </div>
+        <div class="feedback info inline">
+            <p><strong>Social Callback URL:</strong> {{callbackUrl}}</p>
+        </div>
 
-                <form name="realmForm" novalidate>
-                    <fieldset>
-                        <div>
-                            <table>
-                                <caption class="hidden">Table of social providers</caption>
-                                <thead>
-                                <tr>
-                                    <th colspan="5" class="rcue-table-actions">
-                                        <div class="actions">
-                                            <div class="select-rcue">
-                                                <select ng-model="newProviderId"
-                                                        ng-options="(p|capitalize) for p in (allProviders|remove:configuredProviders)"
-                                                        data-ng-change="addProvider(newProviderId); newProviderId = null">
-                                                    <option value="" disabled selected>Add provider...</option>
-                                                </select>
-                                            </div>
-                                        </div>
-                                    </th>
-                                </tr>
-                                <tr ng-show="configuredProviders.length > 0">
-                                    <th>Provider</th>
-                                    <th>Key <span class="required">*</span></th>
-                                    <th>Secret <span class="required">*</span></th>
-                                    <th colspan="1">Actions</th>
-                                </tr>
-                                </thead>
-                                <tbody ng-show="configuredProviders.length > 0">
-                                <tr ng-repeat="pId in configuredProviders">
-                                    <td>
-                                        <div class="clearfix">
-                                            <input class="input-small disabled" type="text" value="{{pId|capitalize}}" readonly>
-                                        </div>
-                                    </td>
-                                    <td>
-                                        <input class="input-small" type="text" placeholder="Key" ng-model="realm.socialProviders[pId+'.key']"
-                                               ng-class="{'dirty': postSaveProviders.indexOf(pId) > -1}" required>
-                                    </td>
-                                    <td>
-                                        <input class="input-small" type="text" placeholder="Secret" ng-model="realm.socialProviders[pId+'.secret']"
-                                               ng-class="{'dirty': postSaveProviders.indexOf(pId) > -1}" required>
-                                    </td>
-                                    <td>
-                                        <div class="action-div"><i class="icon-remove" ng-click="removeProvider(pId)"></i></div>
-                                    </td>
-                                </tr>
-                                </tbody>
-                            </table>
-                        </div>
-                    </fieldset>
+        <form name="realmForm" novalidate>
+            <fieldset>
+                <div>
+                    <table>
+                        <caption class="hidden">Table of social providers</caption>
+                        <thead>
+                        <tr>
+                            <th colspan="5" class="rcue-table-actions">
+                                <div class="actions">
+                                    <div class="select-rcue">
+                                        <select ng-model="newProviderId"
+                                                ng-options="(p|capitalize) for p in (allProviders|remove:configuredProviders)"
+                                                data-ng-change="addProvider(newProviderId); newProviderId = null">
+                                            <option value="" disabled selected>Add provider...</option>
+                                        </select>
+                                    </div>
+                                </div>
+                            </th>
+                        </tr>
+                        <tr ng-show="configuredProviders.length > 0">
+                            <th>Provider</th>
+                            <th>Key <span class="required">*</span></th>
+                            <th>Secret <span class="required">*</span></th>
+                            <th colspan="1">Actions</th>
+                        </tr>
+                        </thead>
+                        <tbody ng-show="configuredProviders.length > 0">
+                        <tr ng-repeat="pId in configuredProviders">
+                            <td>
+                                <div class="clearfix">
+                                    <input class="input-small disabled" type="text" value="{{pId|capitalize}}" readonly>
+                                </div>
+                            </td>
+                            <td>
+                                <input class="input-small" type="text" placeholder="Key" ng-model="realm.socialProviders[pId+'.key']"
+                                       ng-class="{'dirty': postSaveProviders.indexOf(pId) > -1}" required>
+                            </td>
+                            <td>
+                                <input class="input-small" type="text" placeholder="Secret" ng-model="realm.socialProviders[pId+'.secret']"
+                                       ng-class="{'dirty': postSaveProviders.indexOf(pId) > -1}" required>
+                            </td>
+                            <td>
+                                <div class="action-div"><i class="icon-remove" ng-click="removeProvider(pId)"></i></div>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </fieldset>
 
-                    <div class="form-actions">
-                        <button type="submit" kc-save class="primary" data-ng-show="changed">Save
-                            changes
-                        </button>
-                        <button type="submit" kc-reset data-ng-show="changed">Clear changes
-                        </button>
-                    </div>
-                </form>
+            <div class="form-actions">
+                <button type="submit" kc-save class="primary" data-ng-show="changed">Save
+                    changes
+                </button>
+                <button type="submit" kc-reset data-ng-show="changed">Clear changes
+                </button>
             </div>
-        </div>
-        <div id="container-right-bg"></div>
+        </form>
     </div>
 </div>
+</div>
 
 <!-- TODO remove once this page is properly styled -->
 <style type="text/css">
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 802bc45..586c23d 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
@@ -1,80 +1,85 @@
-<div id="wrapper" class="container">
-    <div class="row">
-        <div class="bs-sidebar col-md-3 clearfix" data-ng-include data-src="'partials/realm-menu.html'"></div>
-        <div id="content-area" class="col-md-9" role="main">
-            <div class="top-nav" data-ng-hide="createRealm">
-                <ul class="rcue-tabs">
-                    <li><a href="#/realms/{{realm.realm}}">General</a></li>
-                    <li data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
-                    <li class="active"><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
-                </ul>
-            </div>
-            <div id="content">
-                <ol class="breadcrumb">
-                    <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
-                    <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
-                    <li class="active">Token</li>
-                </ol>
-                <h2><span>{{realm.realm}}</span> Token Settings</h2>
-                <form name="realmForm" novalidate>
-                    <fieldset class="border-top">
-                        <div class="form-group input-select">
-                            <label for="tokenLifespan">Token lifespan</label>
-                            <div class="input-group">
-                                <input type="number" required min="1" max="31536000" 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>
-                                        <option>Minutes</option>
-                                        <option>Hours</option>
-                                        <option>Days</option>
-                                    </select>
-                                </div>
+<div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div>
+<div id="content-area" class="col-sm-9" role="main">
+    <ul class="nav nav-tabs nav-tabs-pf">
+        <li><a href="#/realms/{{realm.realm}}">General</a></li>
+        <li data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
+        <li><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
+        <li class="active"><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
+        <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
+        <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
+    </ul>
+    <div id="content">
+        <ol class="breadcrumb">
+            <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
+            <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
+            <li class="active">Token</li>
+        </ol>
+        <h2><span>{{realm.realm}}</span> Token Settings</h2>
+        <form class="form-horizontal" name="realmForm" novalidate>
+            <fieldset class="border-top">
+                <div class="form-group input-select">
+                    <label class="col-sm-2 control-label" for="tokenLifespan">Token lifespan</label>
+                    <div class="col-sm-10">
+                        <div class="row">
+                            <div class="col-sm-2">
+                                <input class="form-control" type="number" required min="1"
+                                       max="31536000" data-ng-model="realm.tokenLifespan"
+                                       id="tokenLifespan" name="tokenLifespan"/>
+                            </div>
+                            <div class="col-sm-2 select-rcue">
+                                <select name="tokenLifespanUnit" data-ng-model="realm.tokenLifespanUnit" >
+                                    <option data-ng-selected="!realm.tokenLifespanUnit">Seconds</option>
+                                    <option>Minutes</option>
+                                    <option>Hours</option>
+                                    <option>Days</option>
+                                </select>
                             </div>
                         </div>
-                        <div class="form-group input-select">
-                            <label for="accessCodeLifespan">Access code lifespan</label>
-                            <div class="input-group">
-                                <input type="number" required min="1" max="31536000" 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>
-                                        <option>Minutes</option>
-                                        <option>Hours</option>
-                                        <option>Days</option>
-                                    </select>
-                                </div>
+                    </div>
+                </div>
+                <div class="form-group">
+                    <label class="col-sm-2 control-label" for="accessCodeLifespan">Access code lifespan</label>
+                    <div class="col-sm-10">
+                        <div class="row">
+                            <div class="col-sm-2">
+                                <input class="form-control" type="number" required min="1" max="31536000" data-ng-model="realm.accessCodeLifespan" id="accessCodeLifespan" name="accessCodeLifespan">
+                            </div>
+                            <div class="col-sm-2 select-rcue">
+                                <select name="accessCodeLifespanUnit" data-ng-model="realm.accessCodeLifespanUnit">
+                                    <option data-ng-selected="!realm.accessCodeLifespanUnit">Seconds</option>
+                                    <option>Minutes</option>
+                                    <option>Hours</option>
+                                    <option>Days</option>
+                                </select>
                             </div>
                         </div>
-                        <div class="form-group input-select">
-                            <label for="accessCodeLifespanUserAction" class="two-lines">Access code user action lifespan</label>
-                            <div class="input-group">
-                                <input type="number" required min="1" max="31536000" 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>
-                                        <option>Minutes</option>
-                                        <option>Hours</option>
-                                        <option>Days</option>
-                                    </select>
-                                </div>
+                    </div>
+                </div>
+                <div class="form-group input-select">
+                    <label class="col-sm-2 control-label" for="accessCodeLifespanUserAction" class="two-lines">Access code user action lifespan</label>
+                    <div class="col-sm-10">
+                        <div class="row">
+                            <div class="col-sm-2">
+                                <input class="form-control" type="number" required min="1" max="31536000" data-ng-model="realm.accessCodeLifespanUserAction" id="accessCodeLifespanUserAction" name="accessCodeLifespanUserAction">
+                            </div>
+                            <div class="col-sm-2 select-rcue">
+                                <select name="accessCodeLifespanUserActionUnit" data-ng-model="realm.accessCodeLifespanUserActionUnit">
+                                    <option data-ng-selected="!realm.accessCodeLifespanUserActionUnit">Seconds</option>
+                                    <option>Minutes</option>
+                                    <option>Hours</option>
+                                    <option>Days</option>
+                                </select>
                             </div>
                         </div>
-                     </fieldset>
-                    <div class="form-actions">
-                        <button type="submit" kc-save class="primary" data-ng-show="changed">Save
-                        </button>
-                        <button type="submit" kc-reset data-ng-show="changed">Clear changes
-                        </button>
                     </div>
-               </form>
+                </div>
+            </fieldset>
+            <div class="pull-right form-actions">
+                <button kc-reset data-ng-show="changed">Clear changes</button>
+                <button kc-save data-ng-show="changed">Save</button>
             </div>
-        </div>
-        <div id="container-right-bg"></div>
+        </form>
     </div>
 </div>
\ No newline at end of file
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/partials/role-list.html b/admin-ui/src/main/resources/META-INF/resources/admin/partials/role-list.html
index 53d7de0..5340501 100755
--- a/admin-ui/src/main/resources/META-INF/resources/admin/partials/role-list.html
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/partials/role-list.html
@@ -1,78 +1,73 @@
-<div id="wrapper" class="container">
-    <div class="row">
-        <div class="bs-sidebar col-md-3 clearfix" data-ng-include data-src="'partials/realm-menu.html'"></div>
-        <div id="content-area" class="col-md-9" role="main">
-            <div class="top-nav">
-                <ul class="rcue-tabs">
-                    <li><a href="#/realms/{{realm.realm}}">General</a></li>
-                    <li data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
-                    <li class="active"><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
-                    <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
-                </ul>
-            </div>
-            <div id="content">
-                <ol class="breadcrumb">
-                    <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
-                    <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
-                    <li class="active">Roles</li>
-                </ol>
-                <h2><span>{{realm.realm}}</span> Roles</h2>
-                <div class="feedback info inline" data-ng-show="!roles || roles.length == 0">
-                    <p><strong>You have not configured realm roles.</strong> <a class="button" href="#/create/role/{{realm.realm}}">Add Role</a></p>
-                </div>
-                <table data-ng-hide="!roles || roles.length == 0">
-                    <thead>
-                        <tr>
-                            <th class="rcue-table-actions" colspan="3">
-                                <div class="actions">
-                                    <a class="button" href="#/create/role/{{realm.realm}}">Add Role</a>
-                                    <!-- <button class="remove disabled">Remove</button> -->
-                                </div>
-                            </th>
-                        </tr>
-                        <tr data-ng-show="roles && roles.length > 5">
-                            <th class="rcue-table-actions" colspan="3">
-                                <div class="search-comp clearfix">
-                                    <input type="text" placeholder="Search..." class="search">
-                                    <button class="icon-search" tooltip-placement="right"
-                                            tooltip="Search by role name.">
-                                        Icon: search
-                                    </button>
-                                </div>
-                            </th>
-                        </tr>
-                        <tr>
-                            <th>Role Name</th>
-                            <th>Composite</th>
-                            <th>Description</th>
-                        </tr>
-                    </thead>
-                    <tfoot data-ng-show="roles && roles.length > 5"> <!-- todo -->
-                    <tr>
-                        <td colspan="3">
-                            <div class="table-nav">
-                                <a href="#" class="first disabled">First page</a><a href="#" class="prev disabled">Previous
-                                page</a><span><strong>1-8</strong> of <strong>10</strong></span><a href="#"
-                                                                                                   class="next">Next
-                                page</a><a href="#" class="last">Last page</a>
-                            </div>
-                        </td>
-                    </tr>
-                    </tfoot>
-                    <tbody>
-                    <tr ng-repeat="role in roles">
-                        <td><a href="#/realms/{{realm.realm}}/roles/{{role.name}}">{{role.name}}</a></td>
-                        <td>{{role.composite}}</td>
-                        <td>{{role.description}}</td>
-                    </tr>
-                    </tbody>
-                </table>
-            </div>
+<div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div>
+<div id="content-area" class="col-sm-9" role="main">
+    <ul class="nav nav-tabs nav-tabs-pf">
+        <li><a href="#/realms/{{realm.realm}}">General</a></li>
+        <li data-ng-show="realm.social"><a href="#/realms/{{realm.realm}}/social-settings">Social</a></li>
+        <li class="active"><a href="#/realms/{{realm.realm}}/roles">Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/default-roles">Default Roles</a></li>
+        <li><a href="#/realms/{{realm.realm}}/required-credentials">Credentials</a></li>
+        <li><a href="#/realms/{{realm.realm}}/token-settings">Token</a></li>
+        <li><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
+        <li><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
+    </ul>
+    <div id="content">
+        <ol class="breadcrumb">
+            <li><a href="#/realms/{{realm.realm}}">{{realm.realm}}</a></li>
+            <li><a href="#/realms/{{realm.realm}}">Settings</a></li>
+            <li class="active">Roles</li>
+        </ol>
+        <h2><span>{{realm.realm}}</span> Roles</h2>
+        <div class="feedback info inline" data-ng-show="!roles || roles.length == 0">
+            <p><strong>You have not configured realm roles.</strong> <a class="kc-button" href="#/create/role/{{realm.realm}}">Add Role</a></p>
+        </div>
+        <div class="panel">
+            <table data-ng-hide="!roles || roles.length == 0">
+                <thead>
+                <tr>
+                    <th class="rcue-table-actions" colspan="3">
+                        <div class="actions">
+                            <a class="kc-button" href="#/create/role/{{realm.realm}}">Add Role</a>
+                            <!-- <button class="remove disabled">Remove</button> -->
+                        </div>
+                    </th>
+                </tr>
+                <tr data-ng-show="roles && roles.length > 5">
+                    <th class="rcue-table-actions" colspan="3">
+                        <div class="search-comp clearfix">
+                            <input type="text" placeholder="Search..." class="search">
+                            <button class="icon-search" tooltip-placement="right"
+                                    tooltip="Search by role name.">
+                                Icon: search
+                            </button>
+                        </div>
+                    </th>
+                </tr>
+                <tr>
+                    <th>Role Name</th>
+                    <th>Composite</th>
+                    <th>Description</th>
+                </tr>
+                </thead>
+                <tfoot data-ng-show="roles && roles.length > 5"> <!-- todo -->
+                <tr>
+                    <td colspan="3">
+                        <div class="table-nav">
+                            <a href="#" class="first disabled">First page</a><a href="#" class="prev disabled">Previous
+                            page</a><span><strong>1-8</strong> of <strong>10</strong></span><a href="#"
+                                                                                               class="next">Next
+                            page</a><a href="#" class="last">Last page</a>
+                        </div>
+                    </td>
+                </tr>
+                </tfoot>
+                <tbody>
+                <tr ng-repeat="role in roles">
+                    <td><a href="#/realms/{{realm.realm}}/roles/{{role.name}}">{{role.name}}</a></td>
+                    <td>{{role.composite}}</td>
+                    <td>{{role.description}}</td>
+                </tr>
+                </tbody>
+            </table>
         </div>
-        <div id="container-right-bg"></div>
     </div>
 </div>
diff --git a/admin-ui/src/main/resources/META-INF/resources/admin/templates/kc-select.html b/admin-ui/src/main/resources/META-INF/resources/admin/templates/kc-select.html
new file mode 100644
index 0000000..0037076
--- /dev/null
+++ b/admin-ui/src/main/resources/META-INF/resources/admin/templates/kc-select.html
@@ -0,0 +1,11 @@
+<div class="dropdown">
+    <button class="btn btn-default dropdown-toggle" type="button" id="{{id}}" data-toggle="dropdown">
+        {{kcModel}}
+        <span class="caret"></span>
+    </button>
+    <ul class="dropdown-menu" role="menu">
+        <li role="presentation" ng-repeat="option in kcOptions">
+            <a href="" role="menuitem" tabindex="-1" ng-click="updateModel(option)">{{option}}</a>
+        </li>
+    </ul>
+</div>
\ No newline at end of file
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 377ce2b..220ddba 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
@@ -2,6 +2,37 @@ html, body, body > .container, #view, #content-area{
     height: 100%;
 }
 
+#content .glyphicon {
+    color: #555;
+}
+
+#content .glyphicon > span {
+    display: none;
+}
+
+.kc-button {
+    background-image: -moz-linear-gradient(center top , #FAFAFA 0%, #EDEDED 100%);
+    border: 1px solid #BBBBBB;
+    border-radius: 2px;
+    color: #555;
+    cursor: pointer;
+    font-size: 1em;
+    font-weight: bold;
+    line-height: 2.18182em;
+    border-radius: 2px;
+    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.15);
+    font-weight: bold;
+    letter-spacing: 0.04em;
+    padding: 0.307692em 1.07692em;
+    margin: 0.5em;
+    display: inline-block;
+}
+
+p.subtitle {
+    position: absolute;
+    right: 2.5em;
+}
+
 #content-area {
     border-color: #CECECE;
     border-style: solid;
@@ -266,6 +297,8 @@ legend .kc-icon-collapse {
     vertical-align: middle;
 }
 
+
+
 /* Relam selector from the top menu */
 
 .header .navbar-primary li > .select-rcue {
@@ -365,3 +398,60 @@ legend .kc-icon-collapse {
 .select-rcue option:hover {
     background-color: #D5ECF9;
 }
+
+/* Left-Rigth selector form */
+.changing-selectors.application {
+    padding-left: 12em;
+}
+.changing-selectors .select-title {
+    display: inline-block;
+}
+.changing-selectors .select-title label {
+    font-size: 1.1em;
+    margin-left: 0.2em;
+    margin-bottom: 0.3em;
+    margin-top: 0.5em;
+    display: block;
+    font-weight: normal;
+}
+.changing-selectors select {
+    min-height: 150px;
+    font-size: 1.1em;
+    padding: 0.545454545454545em;
+    min-width: 18.1818181818182em;
+    border: 1px #b6b6b6 solid;
+    border-radius: 2px;
+    box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.1);
+    color: #333;
+    max-width: 200px;
+    width: auto;
+    min-width: 150px;
+    display: inline-block;
+}
+.changing-selectors select:hover {
+    border-color: #62afdb;
+}
+.changing-selectors select option {
+    padding: 0.36363636363636em 0.45454545454545em;
+    display: block;
+}
+.changing-selectors select option[disabled="disabled"] {
+    color: #aaa;
+}
+.changing-selectors .middle-buttons {
+    display: inline-block;
+    width: 4.5em;
+    margin-left: 0.8em;
+    margin-right: 0.8em;
+    vertical-align: middle;
+}
+.changing-selectors .middle-buttons button:first-child {
+    margin-bottom: 0.5em;
+}
+.changing-selectors .middle-buttons button.disabled span {
+    opacity: 0.4;
+    filter: alpha(opacity=40);
+}
+.changing-selectors .middle-buttons button span {
+    margin-right: 0;
+}
\ No newline at end of file
diff --git a/admin-ui-styles/src/main/resources/META-INF/resources/admin-ui/css/tables.css b/admin-ui-styles/src/main/resources/META-INF/resources/admin-ui/css/tables.css
new file mode 100644
index 0000000..a5f44fe
--- /dev/null
+++ b/admin-ui-styles/src/main/resources/META-INF/resources/admin-ui/css/tables.css
@@ -0,0 +1,189 @@
+table {
+  width: 100%;
+  border: 1px #dcdcdc solid;
+  border-spacing: 0;
+}
+table caption {
+  text-align: left;
+  font-weight: bold;
+  padding: 11.5px;
+}
+table tbody tr:nth-child(even) {
+  background-color: #f6f6f6;
+}
+table tbody tr td,
+table thead tr th {
+  font-weight: normal;
+  padding: 6px 15px;
+  font-size: 11.5px;
+  border-top: 1px #ebebeb;
+  border-right: 1px #dcdcdc solid;
+  text-align: left;
+}
+.rcue-table-actions {
+  padding: 1px;
+  border-top: none;
+}
+/*
+.rcue-table-actions span:last-child {
+  float: right;
+}
+*/
+.rcue-table-actions {
+  padding: 1px;
+}
+/*
+.rcue-table-actions button {
+  padding: 3px 8px;
+  font-size: 11px;
+  box-shadow: 1px 2px 2px #e3e3e3;
+  margin: 4px;
+}
+*/
+.rcue-table-number {
+  text-align: right;
+  width: 100px;
+}
+table thead tr th {
+  font-weight: bold;
+  border: none;
+  border-right: 1px #dcdcdc solid;
+  background-image: linear-gradient(top, #fafafa 0%, #eeeeee 100%);
+  background-image: -o-linear-gradient(top, #fafafa 0%, #eeeeee 100%);
+  background-image: -moz-linear-gradient(top, #fafafa 0%, #eeeeee 100%);
+  background-image: -webkit-linear-gradient(top, #fafafa 0%, #eeeeee 100%);
+  background-image: -ms-linear-gradient(top, #fafafa 0%, #eeeeee 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fafafa), color-stop(1, 0, #eeeeee));
+  border-bottom: 1px #cedede solid;
+}
+/*
+table tbody tr td:first-child {
+  color: #0099d3;
+}
+*/
+table thead tr th:last-child {
+  border-right: none;
+}
+table thead tr th button,
+table thead tr th .button {
+  margin-left: 0.72727272727273em;
+}
+table tbody tr:first-child td {
+  border-top: 1px solid #f2f2f2;
+  /*   padding-top: 9px; */
+
+}
+table tbody tr td:last-child {
+  border-right: none;
+}
+/*
+table tbody tr:hover {
+  cursor: pointer;
+  background-color: #ebebeb;
+}
+*/
+/* Styles from Gabriel */
+.rcue-table-actions button + button,
+.rcue-table-actions .button + button {
+  margin-left: 5px;
+}
+.rcue-table-actions div.actions {
+  float: right;
+  font-size: 0.90909090909091em;
+}
+table tbody tr {
+  border-top: 1px solid #ededed;
+}
+table tbody tr:hover {
+  cursor: default;
+}
+table tbody tr td {
+  vertical-align: middle;
+}
+table tbody tr td.token-cell {
+  padding: 0 0.7em;
+  line-height: 0;
+}
+table tbody tr td.token-cell .token {
+  padding-top: 0.18181818181818em;
+  padding-bottom: 0.18181818181818em;
+  margin-top: 6px;
+  margin-bottom: 5px;
+}
+table tbody tr td.token-cell button {
+  float: left;
+  margin-bottom: 7px;
+  margin-top: 8px;
+}
+table tbody.selectable-rows tr:hover {
+  cursor: pointer;
+  background-color: #ebebeb;
+}
+table tbody.selectable-rows tr:first-child td {
+  padding-top: 9px;
+}
+table tbody.selectable-rows tr.selected,
+table tbody.selectable-rows tr.selected:hover {
+  background-color: #eaf5fb;
+}
+table tbody.selectable-rows tr.selected td:first-child,
+table tbody.selectable-rows tr.selected:hover td:first-child {
+  background-image: url(img/icon-row-selected.svg);
+  background-position: 0.2em center;
+  background-repeat: no-repeat;
+}
+table tfoot tr {
+  border-top: 1px solid #cecece;
+}
+table tfoot tr .table-nav {
+  float: right;
+}
+table tfoot tr .table-nav a {
+  display: inline-block;
+  line-height: 2.4em;
+  border-left: 1px solid #d9d9d9;
+  width: 3.5em;
+  background-color: #f3f3f3;
+  background-image: linear-gradient(top, #fafafa 0%, #ededed 100%);
+  background-image: -o-linear-gradient(top, #fafafa 0%, #ededed 100%);
+  background-image: -moz-linear-gradient(top, #fafafa 0%, #ededed 100%);
+  background-image: -webkit-linear-gradient(top, #fafafa 0%, #ededed 100%);
+  background-image: -ms-linear-gradient(top, #fafafa 0%, #ededed 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fafafa), color-stop(1, 0, #ededed));
+  text-indent: -99999em;
+  background-image: url(img/sprite-table-nav.png);
+  background-repeat: no-repeat;
+  background-position: left top;
+  vertical-align: top;
+}
+table tfoot tr .table-nav a.last {
+  background-position: top right;
+}
+table tfoot tr .table-nav a.prev {
+  background-position: bottom left;
+}
+table tfoot tr .table-nav a.next {
+  background-position: bottom right;
+}
+table tfoot tr .table-nav a:hover {
+  background-image: url(img/sprite-table-nav.png);
+  background-color: #eeeeee;
+}
+table tfoot tr .table-nav a:active {
+  box-shadow: 0 0 5px 2px rgba(0, 0, 0, 0.25) inset;
+}
+table tfoot tr .table-nav a.disabled {
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+  cursor: default;
+}
+table tfoot tr .table-nav a.disabled:active {
+  box-shadow: none;
+}
+table tfoot tr .table-nav span {
+  font-size: 1.1em;
+  border-left: 1px solid #d9d9d9;
+  line-height: 2.18181818181818em;
+  display: inline-block;
+  padding: 0 1.36363636363636em;
+}