You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by ma...@apache.org on 2016/11/28 16:37:41 UTC

syncope git commit: [SYNCOPE-972] makes Syncope Enduser template responsive

Repository: syncope
Updated Branches:
  refs/heads/2_0_X 8d6e5a64e -> f052c2ce5


[SYNCOPE-972] makes Syncope Enduser template responsive


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/f052c2ce
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/f052c2ce
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/f052c2ce

Branch: refs/heads/2_0_X
Commit: f052c2ce5a6a48b938af7376b92ff516a63c15c5
Parents: 8d6e5a6
Author: Matteo Di Carlo <ma...@tirasa.net>
Authored: Mon Nov 28 16:31:12 2016 +0100
Committer: Matteo Di Carlo <ma...@tirasa.net>
Committed: Mon Nov 28 16:32:14 2016 +0100

----------------------------------------------------------------------
 .../META-INF/resources/app/css/app.css          |   3 +
 .../META-INF/resources/app/css/editUser.css     | 408 ++++++++++++++++---
 .../META-INF/resources/app/css/login.css        | 125 +++---
 .../resources/META-INF/resources/app/index.html |   1 +
 .../app/js/directives/dynamicPlainAttribute.js  |   2 +-
 .../app/views/dynamicPlainAttribute.html        |  10 +-
 .../META-INF/resources/app/views/self.html      |   1 +
 .../resources/app/views/user-credentials.html   |  10 +-
 .../app/views/user-derived-schemas.html         |  11 +-
 .../resources/app/views/user-form-finish.html   |  10 +-
 .../resources/app/views/user-groups.html        |   9 +-
 .../resources/app/views/user-plain-schemas.html |   9 +-
 .../resources/app/views/user-resources.html     |   3 +-
 .../app/views/user-virtual-schemas.html         |  10 +-
 14 files changed, 452 insertions(+), 160 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/css/app.css
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/css/app.css b/client/enduser/src/main/resources/META-INF/resources/app/css/app.css
index d112af2..f2e5d3c 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/css/app.css
+++ b/client/enduser/src/main/resources/META-INF/resources/app/css/app.css
@@ -30,10 +30,13 @@ under the License.
 .k-notification-wrap{
   white-space: normal !important;
   word-wrap: break-word !important;
+  font-size: 12px;
+
 }
 
 .k-notification{
   width : 320px;
+  font-size: 12px;
 }
 
 .suggestions{

http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/css/editUser.css
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/css/editUser.css b/client/enduser/src/main/resources/META-INF/resources/app/css/editUser.css
index a65be7e..4f4bf42 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/css/editUser.css
+++ b/client/enduser/src/main/resources/META-INF/resources/app/css/editUser.css
@@ -17,13 +17,26 @@ specific language governing permissions and limitations
 under the License.
 */
 
+/*default stile*/
+
+* {
+  box-sizing: border-box;
+}
+
 #form-container {
   position: relative;
   width: 100%;
+  margin-top:-4px;
   margin: 0 auto;
   text-align: center;
 }
 
+#form-container .breadcrumb-header   { 
+  margin: auto;
+  width: 80%; 
+  padding:10px; 
+}
+
 #form-container .page-header   { background: -moz-linear-gradient(top, #a9db80 0%, #96c56f 100%); /* FF3.6+ */
                                  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a9db80), color-stop(100%,#96c56f)); /* Chrome,Safari4+ */
                                  background: -webkit-linear-gradient(top, #a9db80 0%,#96c56f 100%); /* Chrome10+,Safari5.1+ */
@@ -39,11 +52,6 @@ under the License.
                                  -webkit-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
                                  box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
 }
-#form-container .breadcrumb-header   { 
-  margin: auto;
-  width: 80%; 
-  padding:10px; 
-}
 
 .signup-form {
   text-align: left;
@@ -58,7 +66,7 @@ under the License.
 
 #attribute-derived,
 #attribute-virtual {
-  padding: 0 155px;
+  padding:  155px;
 }
 
 .attribute-virtual-value-container {
@@ -73,10 +81,6 @@ under the License.
   margin-bottom: 2%;
 }
 
-.minus{
-
-}
-
 .fileButton{
   margin-top: 2%;
 }
@@ -88,70 +92,79 @@ under the License.
 
 .attribute-ui-select {
   width: 100%;
-  /*margin-left: 20%;*/
   list-style: none;
 }
 
 #previous {
-  background: -moz-linear-gradient(top, #a9db80 0%, #96c56f 100%); /* FF3.6+ */
-  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a9db80), color-stop(100%,#96c56f)); /* Chrome,Safari4+ */
-  background: -webkit-linear-gradient(top, #a9db80 0%,#96c56f 100%); /* Chrome10+,Safari5.1+ */
-  background: -o-linear-gradient(top, #a9db80 0%,#96c56f 100%); /* Opera 11.10+ */
-  background: -ms-linear-gradient(top, #a9db80 0%,#96c56f 100%); /* IE10+ */
-  float: left;
+  background: -moz-linear-gradient(top, #a9db80 0%, #96c56f 100%);  /*FF3.6+ 
+  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a9db80), color-stop(100%,#96c56f));  /*Chrome,Safari4+ */
+  background: -webkit-linear-gradient(top, #a9db80 0%,#96c56f 100%);  /*Chrome10+,Safari5.1+ */
+  background: -o-linear-gradient(top, #a9db80 0%,#96c56f 100%);  /*Opera 11.10+*/ 
+  background: -ms-linear-gradient(top, #a9db80 0%,#96c56f 100%);  /*IE10+*/ 
+  float: right;
   color: black;
-  /*width: 30%;*/
+  width: 80px;
+  padding-left: 4px;
+  margin-left: 5px;
 }
+
 #previous:hover {
   background: #658D5D;
 }
 
 #next{
-  background: -moz-linear-gradient(top, #a9db80 0%, #96c56f 100%); /* FF3.6+ */
-  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a9db80), color-stop(100%,#96c56f)); /* Chrome,Safari4+ */
-  background: -webkit-linear-gradient(top, #a9db80 0%,#96c56f 100%); /* Chrome10+,Safari5.1+ */
-  background: -o-linear-gradient(top, #a9db80 0%,#96c56f 100%); /* Opera 11.10+ */
-  background: -ms-linear-gradient(top, #a9db80 0%,#96c56f 100%); /* IE10+ */
+  background: -moz-linear-gradient(top, #a9db80 0%, #96c56f 100%); /*FF3.6+ */
+  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a9db80), color-stop(100%,#96c56f));  /*Chrome,Safari4+ */
+  background: -webkit-linear-gradient(top, #a9db80 0%,#96c56f 100%);  /*Chrome10+,Safari5.1+ */
+  background: -o-linear-gradient(top, #a9db80 0%,#96c56f 100%);  /*Opera 11.10+ */
+  background: -ms-linear-gradient(top, #a9db80 0%,#96c56f 100%);  /*IE10+ */
   margin-left: 5px;
   float: right;
   color: black;
-  /*width: 30%;*/
+  width: 78px;
 }
+
 #next:hover {
   background: #658D5D;
 }
 
 #save{
-  background: -moz-linear-gradient(top, #a9db80 0%, #96c56f 100%); /* FF3.6+ */
-  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a9db80), color-stop(100%,#96c56f)); /* Chrome,Safari4+ */
-  background: -webkit-linear-gradient(top, #a9db80 0%,#96c56f 100%); /* Chrome10+,Safari5.1+ */
-  background: -o-linear-gradient(top, #a9db80 0%,#96c56f 100%); /* Opera 11.10+ */
-  background: -ms-linear-gradient(top, #a9db80 0%,#96c56f 100%); /* IE10+ */
+  background: -moz-linear-gradient(top, #a9db80 0%, #96c56f 100%);  /*FF3.6+*/ 
+  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a9db80), color-stop(100%,#96c56f));  /*Chrome,Safari4+ */
+  background: -webkit-linear-gradient(top, #a9db80 0%,#96c56f 100%);  /*Chrome10+,Safari5.1+ */
+  background: -o-linear-gradient(top, #a9db80 0%,#96c56f 100%);  /*Opera 11.10+ */
+  background: -ms-linear-gradient(top, #a9db80 0%,#96c56f 100%);  /*IE10+ */
   color: black;
   margin-left: 5px;
-  /*width: 15%;*/
+  /*margin-right: 5px;*/
+  width: 70px;
+  float: right;
 }
+
 #save:hover {
   background: #658D5D;
 }
 
 #finish{
-  background: -moz-linear-gradient(top, #a9db80 0%, #96c56f 100%); /* FF3.6+ */
-  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a9db80), color-stop(100%,#96c56f)); /* Chrome,Safari4+ */
-  background: -webkit-linear-gradient(top, #a9db80 0%,#96c56f 100%); /* Chrome10+,Safari5.1+ */
-  background: -o-linear-gradient(top, #a9db80 0%,#96c56f 100%); /* Opera 11.10+ */
-  background: -ms-linear-gradient(top, #a9db80 0%,#96c56f 100%); /* IE10+ */
+  background: -moz-linear-gradient(top, #a9db80 0%, #96c56f 100%);  /*FF3.6+ */
+  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a9db80), color-stop(100%,#96c56f));  /*Chrome,Safari4+ */
+  background: -webkit-linear-gradient(top, #a9db80 0%,#96c56f 100%);  /*Chrome10+,Safari5.1+*/ 
+  background: -o-linear-gradient(top, #a9db80 0%,#96c56f 100%);  /*Opera 11.10+ */
+  background: -ms-linear-gradient(top, #a9db80 0%,#96c56f 100%);  /*IE10+*/
   color: black;
   margin-left: 5px;
-  /*width: 15%;*/
+  /*margin-right: 5px;*/
+  width: 78px;
+  float:right;
 }
+
 #finish:hover {
   background: #658D5D;
 }
 
 #cancel {
-  /*margin-top: 5%;*/
-  /*width: 15%;*/
+  margin-top: 0%;
+  width: 70px;
 }
 
 #form-views { width:100%; }
@@ -160,44 +173,50 @@ under the License.
 /* left and right to add to ensure full width: position:absolute; left:30px; right:30px; */
 #form-views.ng-enter,
 #form-views.ng-leave      { 
-    position: absolute;
+  position: absolute;
   transition:0.5s all ease-in; -moz-transition:0.5s all ease-in; -webkit-transition:0.5s all ease; 
 }
 
 /* enter animation */
 #form-views.ng-enter            { 
-  -webkit-animation:slideInRight 0.5s both ease;
-  -moz-animation:slideInRight 0.5s both ease;
-  animation:slideInRight 0.5s both ease; 
+  -webkit-animation:slideInRight 0.5s ease;
+  -moz-animation:slideInRight 0.5s ease;
+  animation:slideInRight 0.5s ease; 
 }
 
 /* leave animation */
 #form-views.ng-leave            { 
   position:absolute;
-  -webkit-animation:slideOutLeft 0.5s both ease;
-  -moz-animation:slideOutLeft 0.5s both ease;
-  animation:slideOutLeft 0.5s both ease;   
+  -webkit-animation:slideOutLeft 0.5s ease;
+  -moz-animation:slideOutLeft 0.5s ease;
+  animation:slideOutLeft 0.5s ease;   
 }
 
+.btn-group{
+  margin-top: 10px;
+}
 
 #datetime{
   line-height: 34px;
   float: left;
-  margin-top:35px;
+  margin-top:-30px;
   padding: 0 3px 0px 0px;
-  display: inline-block !important;
+  display: -webkit-inline-box;
 }
 
 #date{
   position: relative;
   display: table; 
   border-collapse: separate;
+  margin-bottom: -40px;
 }
 
 #timepicker{
   line-height: 34px; 
-  float: left; 
+  float: right; 
   padding: 0 3px 0px 0px;
+  margin-top: -65px;
+  margin-left: 39px;
 }
 
 /** Button breadcrumb **/
@@ -273,6 +292,297 @@ under the License.
   color: #dd301b;
   font-weight: 600;
 }
+/*--------------end default style*/
+
+/*style for devices max width 350 */
+@media only screen and (max-width: 350px) {
+
+  input[type=file] {
+    display: block;
+    color: white !important;
+  }
+
+  #form-container {
+    padding: 1px 0px 0px 0px;
+  }
+
+
+  .panel-body {
+    padding: 0px;
+  }
+
+  #timepicker{
+    width: 47px;
+    line-height: 34px; 
+    float: right; 
+    padding: 0 3px 0px 0px;
+    margin-top: -65px;
+  }
+
+  .btn-group{
+    position: relative;
+    display: inline-flex;
+    vertical-align: middle;
+    width: 90%;
+    margin-left: 35px;
+    margin-top: 10px;
+    padding: 0px 0px 1px 0px
+  }
+
+}
+
+/*style for devices max width 400 */
+@media only screen and (max-width: 400px) {
+
+  input[type=file] {
+    display: block;
+  }
+  
+  .panel-body {
+    padding: 0px;
+  }
+  
+  #datetime input {
+    width: 100%;
+  }
+  
+  #form-container {
+    padding: 1px 0px 0px 0px;
+  }
+  
+  #form-container .breadcrumb-header   { 
+    margin: auto;
+    width: 100%; 
+    padding: 1px 0px 0px 0px;
+    text-align: left;
+    overflow: auto;
+  }
+  
+  .btn-group{
+    position: relative;
+    display: inline-flex;
+    vertical-align: middle;
+    width: 70%;
+    margin-left: 35px;
+    margin-top: 10px;
+    padding: 0px 0px 1px 0px
+  }
+  
+  .btn-breadcrumb .btn {
+    padding:6px 12px 6px 12px;
+  }
+  
+  .btn-breadcrumb .btn:first-child {
+    padding:6px 6px 6px 10px;
+  }
+  
+  .btn-breadcrumb .btn:last-child {
+    padding:6px 18px 6px 24px;
+  }
+
+}
+
+/*style for devices max width 500*/
+@media only screen and (max-width: 500px) {
+
+  * {
+    font-size:12px;
+  }
+
+  #form-container {
+    padding: 1px 0px 0px -4px;
+  }
+
+  #form-container .breadcrumb-header   { 
+    margin: auto;
+    width: 118%; 
+    text-align: left;
+    overflow: auto;
+  }
+
+  .panel-body {
+    padding: 0px;
+  }
+
+  .btn-group{
+    position: relative;
+    display: inline-flex;
+    vertical-align: middle;
+    width: 80%;
+    margin-left: 35px;
+    margin-top: 10px;
+    padding: 0px 0px 1px 0px
+  }
+
+  .btn{
+    font-size: 12px;
+  }
+
+  .btn-group .btn+.btn, .btn-group .btn+.btn-group, .btn-group .btn-group+.btn, .btn-group .btn-group+.btn-group {
+    margin-left: 0px;
+  }
+
+  .btn-default {
+    color: #333;
+    background-color: #fff;
+    border-color: #ccc;
+    width: 100%;
+  }
+
+  .card-container.card {
+    width: 295px;
+    padding: 40px 40px 0px;
+  }
+
+  .btn-breadcrumb .btn {
+    padding:6px 12px 6px 12px;
+  }
+  
+  .btn-breadcrumb .btn:first-child {
+    padding:6px 6px 6px 10px;
+  }
+  
+  .btn-breadcrumb .btn:last-child {
+    padding:6px 18px 6px 24px;
+  }
+
+  #resetpassword {
+    margin-left: 5px;
+    width: 70px;
+  }
+
+  #navButtons{
+    float: right;
+    width: 75%;
+  }
+
+  .container {
+    padding-right: 0px;
+    padding-left: 0px;
+    margin-right: auto;
+    margin-left: auto;
+  }
+
+  .input-group .form-control{
+    font-size: 12px;
+  }
+
+  label {
+    font-size: 12px;
+  }
+
+  .form-control{
+    font-size: 12px;
+  }
+
+  .select2-results .select2-result-label{
+    font-size: 12px;
+
+  }
+
+  .select2-container-multi .select2-choices .select2-search-field input{
+    font-size:12px;
+
+  }
+
+  #datetime{
+    line-height: 34px;
+    float: left;
+    margin-top:-30px;
+    padding: 0 3px 0px 0px;
+    display: inline-block !important;
+    width:100px;
+  }
+
+  #date{
+    position: relative;
+    display: table; 
+    border-collapse: separate;
+  }
+
+  #timepicker{
+    line-height: 34px; 
+    float: right; 
+    padding: 0 3px 0px 0px;
+    margin-top: -65px;
+  }
+
+  .multivalue button{
+    width: 40px;
+  }
+
+  .row{
+    margin-left: -34px;
+    margin-right: -76px;
+  }
+
+  #datetime{
+    line-height: 34px;
+    float: left;
+    margin-top:-30px;
+    padding: 0 3px 0px 0px;
+    display: -webkit-inline-box;
+  }
+
+  #datetime input{
+    width: 105%;
+    margin-top: 0px
+  }
+
+  #date{
+    position: relative;
+    display: table; 
+    border-collapse: separate;
+    margin-bottom: -40px;
+  }
+
+  #calendar{
+    position:absolute;
+    margin-top: -33px;
+    margin-left: 99px;
+    width:40px;
+  }
+
+  #timepicker{
+    line-height: 34px; 
+    float: right; 
+    padding: 0 3px 0px 0px;
+    margin-top: -64px;
+    margin-left: 48px;
+  }
+
+}
+
+/*style for devices max width 800) */
+@media only screen and (max-width: 800px) {
+
+  * {
+    font-size:12px;
+  }
+
+  #form-container .breadcrumb-header   { 
+    width: 97%; 
+    padding: 1px 0px 0px 0px;
+    text-align: left;
+    overflow: auto;
+  }
+
+  .panel-body {
+    padding: 0px;
+  }
+
+  .btn-group{
+    position: relative;
+    display: inline-flex;
+    vertical-align: middle;
+    width: 80%;
+    margin-left: 35px;
+    margin-top: 10px;
+    padding: 0px 0px 1px 0px
+  }
+
+}
+
 /* ANIMATIONS
 ============================================================================= */
 /* slide out to the left */
@@ -305,6 +615,7 @@ under the License.
 }
 .schema-type #date{
   margin-top: 35px;
+  margin-bottom: 2px;
 }
 
 .multivalue input{
@@ -333,7 +644,6 @@ under the License.
   margin-top: 0px
 }
 
-
 .multivalue #timepicker {
   margin-top: -35px;
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/css/login.css
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/css/login.css b/client/enduser/src/main/resources/META-INF/resources/app/css/login.css
index cc206e8..8999264 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/css/login.css
+++ b/client/enduser/src/main/resources/META-INF/resources/app/css/login.css
@@ -28,51 +28,18 @@ body, html {
 }
 
 body{
-  margin: 45px 0;
+  margin: 0px;
+  padding:0px;
 }
 
-/*#login-container {
-  position: relative;
-  width: 100%;
-  margin: 0 auto;
-  text-align: center;
-  background-color: #FFF;
-  border-top-right-radius: 4px;
-  border-top-left-radius: 4px;
-  border-bottom-right-radius: 4px;
-  border-bottom-left-radius: 4px;
-  -webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.65);
-  box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.65);
-}
-#login-container .row > div {
-  margin-bottom: 1em;
-}
-#login-container .row > div:last-child {
-  margin-bottom: 0;
-}
-#login-container #logo {
-  position: relative;
-  float: left;
-  margin-left: 15%;
-  border-top-right-radius: 100px;
-  border-top-left-radius: 100px;
-  border-bottom-right-radius: 100px;
-  border-bottom-left-radius: 100px;
+@media only screen and (max-width: 500px) {
+  body{
+    margin: 0px;
+    padding: 0px;
+  }
 }
 
-#login-container #language{
-  padding: 0px;
-  height: 40px;
-}
 
-#login-container #signup-btn {
-  padding-top: 15px;
-  padding-bottom: 15px;
-}
-#login-container #signup-btn:hover {
-  background-color: #1d1d1d;
-  border-color: #181818;
-}*/
 
 .login-btn {
   background: -moz-linear-gradient(top, #a9db80 0%, #96c56f 100%); /* FF3.6+ */
@@ -111,60 +78,60 @@ body{
 }
 
 .card-container.card {
-    width: 350px;
-    padding: 40px 40px 0px;
+  width: 350px;
+  padding: 40px 40px 0px;
 }
 
 .card {
-    background-color: #F7F7F7;
-    /* just in case there no content*/
-    padding: 20px 25px 30px;
-    margin: 0 auto 25px;
-    margin-top: 50px;
-    /* shadows and rounded borders */
-    -moz-border-radius: 2px;
-    -webkit-border-radius: 2px;
-    border-radius: 2px;
-    -moz-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
-    -webkit-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
-    box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
+  background-color: #F7F7F7;
+  /* just in case there no content*/
+  padding: 20px 25px 30px;
+  margin: 0 auto 25px;
+  margin-top: 50px;
+  /* shadows and rounded borders */
+  -moz-border-radius: 2px;
+  -webkit-border-radius: 2px;
+  border-radius: 2px;
+  -moz-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
+  -webkit-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
+  box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
 }
 
 .login-logo {
-    width: 200px;
-    margin: 0px auto 10px;
-    display: block;
+  width: 200px;
+  margin: 0px auto 10px;
+  display: block;
 }
 
 .form-signin input[type=password],
 .form-signin input[type=text],
 .form-signin button {
-    width: 100%;
-    display: block;
-    margin-bottom: 10px;
-    z-index: 1;
-    position: relative;
-    -moz-box-sizing: border-box;
-    -webkit-box-sizing: border-box;
-    box-sizing: border-box;
+  width: 100%;
+  display: block;
+  margin-bottom: 10px;
+  z-index: 1;
+  position: relative;
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
 }
 
 .form-control {
-    display: block;
-    width: 100%;
-    height: 34px;
-    padding: 6px 12px;
-    font-size: 14px;
-    line-height: 1.42857;
-    color: #555;
-    background-color: #FFF;
-    background-image: none;
-    border: 1px solid #CCC;
-    border-radius: 4px;
-    box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.075) inset;
-    transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
+  display: block;
+  width: 100%;
+  height: 34px;
+  padding: 6px 12px;
+  font-size: 14px;
+  line-height: 1.42857;
+  color: #555;
+  background-color: #FFF;
+  background-image: none;
+  border: 1px solid #CCC;
+  border-radius: 4px;
+  box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.075) inset;
+  transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
 }
 
 input[type="number"]{
-    padding-right: 0px !important
+  padding-right: 0px !important
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/index.html
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/index.html b/client/enduser/src/main/resources/META-INF/resources/app/index.html
index 30f155b..22152fc 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/index.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/index.html
@@ -22,6 +22,7 @@ under the License.
 <!--[if IE 8]>         <html lang="en" ng-app="myApp" class="no-js lt-ie9"> <![endif]-->
 <!--[if gt IE 8]><!--> <html lang="en" ng-app="SyncopeEnduserApp" class="no-js"> <!--<![endif]-->
   <head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
     <meta charset="UTF-8"/>
     <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
     <meta name="description" content=""/>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/js/directives/dynamicPlainAttribute.js
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/js/directives/dynamicPlainAttribute.js b/client/enduser/src/main/resources/META-INF/resources/app/js/directives/dynamicPlainAttribute.js
index 437d43a..19f1c9d 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/js/directives/dynamicPlainAttribute.js
+++ b/client/enduser/src/main/resources/META-INF/resources/app/js/directives/dynamicPlainAttribute.js
@@ -177,7 +177,7 @@ angular.module('self')
                       mstep: [1, 5, 10, 15, 25, 30]
                     };
 
-                    $scope.ismeridian = true;
+                    $scope.ismeridian = false;
                     $scope.toggleMode = function () {
                       $scope.ismeridian = !$scope.ismeridian;
                     };

http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/views/dynamicPlainAttribute.html
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/dynamicPlainAttribute.html b/client/enduser/src/main/resources/META-INF/resources/app/views/dynamicPlainAttribute.html
index b840463..1579fd0 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/dynamicPlainAttribute.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/dynamicPlainAttribute.html
@@ -81,7 +81,7 @@ under the License.
          ng-init="initAttribute(schema, index)" name="{{schema.key}}"/>
 
   <div ng-switch-when="Date" id="date">
-    <span id="datetime">
+    <div id="datetime">
       <input type="text" class="form-control" 
              uib-datepicker-popup
              ng-model="selectedDate"
@@ -90,17 +90,17 @@ under the License.
              is-open="status.opened" datepicker-options="dateOptions"
              ng-required="{{schema.mandatoryCondition}}" close-text="Close"
              ng-init="initAttribute(schema, index)"/>
-      <button type="button" class="btn btn-default" ng-click="open($event)" >
+      <button id="calendar" type="button" class="btn btn-default" ng-click="open($event)" >
         <i class="glyphicon glyphicon-calendar"></i>
       </button>
-    </span>
-    <span id="timepicker" ng-if="(schema.conversionPattern.indexOf('H') > -1 ||
+    </div>
+    <div id="timepicker" ng-if="(schema.conversionPattern.indexOf('H') > -1 ||
                 schema.conversionPattern.indexOf('h') > -1)">
       <uib-timepicker ng-model="selectedTime" 
                       ng-change="bindDateToModel(selectedDate, selectedTime)"
                       hour-step="hstep" minute-step="mstep" show-meridian="ismeridian">
       </uib-timepicker>
-    </span>
+    </div>
   </div>
 
   <div ng-switch-when="Enum" ng-init="initAttribute(schema, index)">

http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/self.html b/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
index eeb9266..75f7251 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
@@ -18,6 +18,7 @@ under the License.
 -->
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
     <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
     <meta charset="UTF-8"/>
     <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'/>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/views/user-credentials.html
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/user-credentials.html b/client/enduser/src/main/resources/META-INF/resources/app/views/user-credentials.html
index 2d1a2a8..da9bdc2 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/user-credentials.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/user-credentials.html
@@ -62,10 +62,12 @@ under the License.
 </div>
 
 <div id="attribute" class="form-group row">
-  <button id="save" ng-show="!createMode" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
-  <button id="finish" ng-show="createMode && endReached" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
-  <navigation-buttons ng-show="createMode" base="create" current="credentials" wizard="{{wizard}}"></navigation-buttons>
-  <navigation-buttons ng-show="!createMode" base= "update" current="credentials" wizard="{{wizard}}"></navigation-buttons>
+  <div id="navButtons">
+    <navigation-buttons ng-show="createMode" base="create" current="credentials" wizard="{{wizard}}"></navigation-buttons>
+    <navigation-buttons ng-show="!createMode" base= "update" current="credentials" wizard="{{wizard}}"></navigation-buttons>
+    <button id="save" ng-show="!createMode" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
+    <button id="finish" ng-show="createMode && endReached" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
+  </div>
   <div class="pull-left">
     <a id="cancel" href="#/self" class="btn btn-danger pull-left" ng-click="logout()">{{'CANCEL'| translate}}</a>
   </div>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/views/user-derived-schemas.html
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/user-derived-schemas.html b/client/enduser/src/main/resources/META-INF/resources/app/views/user-derived-schemas.html
index 3bbc1c6..473f32b 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/user-derived-schemas.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/user-derived-schemas.html
@@ -21,11 +21,12 @@ under the License.
 </div>
 
 <div id="attribute" class="form-group row">
-  <button id="save" ng-show="!createMode" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
-  <button id="finish" ng-show="createMode && endReached" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
-  <navigation-buttons ng-show="createMode" base="create" current="derivedSchemas" wizard="{{wizard}}"></navigation-buttons>
-  <navigation-buttons ng-show="!createMode" base="update" current="derivedSchemas" wizard="{{wizard}}"></navigation-buttons>
-  <div class="pull-left">
+  <div id="navButtons">
+    <navigation-buttons ng-show="createMode" base="create" current="derivedSchemas" wizard="{{wizard}}"></navigation-buttons>
+    <navigation-buttons ng-show="!createMode" base="update" current="derivedSchemas" wizard="{{wizard}}"></navigation-buttons>
+    <button id="save" ng-show="!createMode" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
+    <button id="finish" ng-show="createMode && endReached" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
+  </div>  <div class="pull-left">
     <a id="cancel" href="#/self" class="btn btn-danger" ng-click="logout()">{{'CANCEL'| translate}}</a>
   </div>
 </div>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/views/user-form-finish.html
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/user-form-finish.html b/client/enduser/src/main/resources/META-INF/resources/app/views/user-form-finish.html
index b263324..87be0cb 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/user-form-finish.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/user-form-finish.html
@@ -21,10 +21,12 @@ under the License.
   <div class="form-group row">
     <captcha input="captchaInput" enabled="captchaEnabled"></captcha>
   </div>
-  <button id="save" type="submit" class="btn btn-default pull-right">{{'SAVE'| translate}}</button>
-  <navigation-buttons ng-show="createMode" base="create" current="finish" wizard="{{wizard}}"></navigation-buttons>
-  <navigation-buttons ng-show="!createMode" base="update" current="finish" wizard="{{wizard}}"></navigation-buttons>
+  <div id="navButtons">
+    <navigation-buttons ng-show="createMode" base="create" current="finish" wizard="{{wizard}}"></navigation-buttons>
+    <navigation-buttons ng-show="!createMode" base="update" current="finish" wizard="{{wizard}}"></navigation-buttons>
+    <button id="save" type="submit" class="btn btn-default pull-right">{{'SAVE'| translate}}</button>
+  </div>
   <div class="pull-left">
-    <a id="cancel" href="#/self" class="btn btn-danger" ng-click="logout()">{{'CANCEL' | translate}}</a>
+    <a id="cancel" href="#/self" class="btn btn-danger" ng-click="logout()">{{'CANCEL'| translate}}</a>
   </div>
 </div>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/views/user-groups.html
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/user-groups.html b/client/enduser/src/main/resources/META-INF/resources/app/views/user-groups.html
index e6d362e..9d15c1e 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/user-groups.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/user-groups.html
@@ -33,11 +33,12 @@ under the License.
   <auxiliary form="dynamicForm" user="user"></auxiliary>
 </div>
 <div id="attribute" class="form-group row">
-  <button id="save" ng-show="!createMode" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
-  <button id="finish" ng-show="createMode && endReached" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
 
-  <navigation-buttons ng-show="createMode" base="create" current="groups" wizard="{{wizard}}"></navigation-buttons>
-  <navigation-buttons ng-show="!createMode" base="update" current="groups" wizard="{{wizard}}"></navigation-buttons>
+  <div id="navButtons">
+    <navigation-buttons ng-show="createMode" base="create" current="groups" wizard="{{wizard}}"></navigation-buttons>
+    <navigation-buttons ng-show="!createMode" base="update" current="groups" wizard="{{wizard}}"></navigation-buttons>
+    <button id="save" ng-show="!createMode" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
+    <button id="finish" ng-show="createMode && endReached" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>  </div>
   <div class="pull-left">
     <a id="cancel" href="#/self" class="btn btn-danger pull-left" ng-click="logout()">{{'CANCEL'| translate}}</a>
   </div>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/views/user-plain-schemas.html
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/user-plain-schemas.html b/client/enduser/src/main/resources/META-INF/resources/app/views/user-plain-schemas.html
index 79161a4..8591f29 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/user-plain-schemas.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/user-plain-schemas.html
@@ -21,10 +21,11 @@ under the License.
 </div>
 
 <div id="attribute" class="form-group row">
-  <button id="save" ng-show="!createMode" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
-  <button id="finish" ng-show="createMode && endReached" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
-  <navigation-buttons ng-show="createMode" base="create" current="plainSchemas" wizard="{{wizard}}"></navigation-buttons>
-  <navigation-buttons ng-show="!createMode" base="update" current="plainSchemas" wizard="{{wizard}}"></navigation-buttons>
+  <div id="navButtons">
+    <navigation-buttons ng-show="createMode" base="create" current="plainSchemas" wizard="{{wizard}}"></navigation-buttons>
+    <navigation-buttons ng-show="!createMode" base="update" current="plainSchemas" wizard="{{wizard}}"></navigation-buttons>
+    <button id="save" ng-show="!createMode" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
+    <button id="finish" ng-show="createMode && endReached" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>  </div>
   <div class="pull-left">
     <a id="cancel" href="#/self" class="btn btn-danger pull-left" ng-click="logout()">{{'CANCEL'| translate}}</a>
   </div>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/views/user-resources.html
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/user-resources.html b/client/enduser/src/main/resources/META-INF/resources/app/views/user-resources.html
index 9d27a61..56a3ce4 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/user-resources.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/user-resources.html
@@ -20,9 +20,10 @@ under the License.
   <resources form="dynamicForm" user="user"></resources>
 </div>
 <div id="attribute" class="form-group row">
+  <div id="navButtons">
   <navigation-buttons ng-show="createMode" base="create" current="resources" wizard="{{wizard}}"></navigation-buttons>
   <navigation-buttons ng-show="!createMode" base="update" current="resources" wizard="{{wizard}}"></navigation-buttons>
-
+  </div>
   <div class="pull-left">
     <a id="cancel" href="#/self" class="btn btn-danger" ng-click="logout()">{{'CANCEL'| translate}}</a>
   </div>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f052c2ce/client/enduser/src/main/resources/META-INF/resources/app/views/user-virtual-schemas.html
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/user-virtual-schemas.html b/client/enduser/src/main/resources/META-INF/resources/app/views/user-virtual-schemas.html
index abc0886..cdd0924 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/user-virtual-schemas.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/user-virtual-schemas.html
@@ -22,10 +22,12 @@ under the License.
 </div>
 
 <div id="attribute" class="form-group row">
-  <button id="save" ng-show="!createMode" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
-  <button id="finish" ng-show="createMode && endReached" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
-  <navigation-buttons ng-show="createMode" base="create" current="virtualSchemas" wizard="{{wizard}}"></navigation-buttons>
-  <navigation-buttons ng-show="!createMode" base="update" current="virtualSchemas" wizard="{{wizard}}"></navigation-buttons>
+  <div id="navButtons">
+    <navigation-buttons ng-show="createMode" base="create" current="virtualSchemas" wizard="{{wizard}}"></navigation-buttons>
+    <navigation-buttons ng-show="!createMode" base="update" current="virtualSchemas" wizard="{{wizard}}"></navigation-buttons>
+    <button id="save" ng-show="!createMode" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
+    <button id="finish" ng-show="createMode && endReached" type="button" class="btn btn-default pull-right" ng-click="finish()">{{'FINISH'| translate}}</button>
+  </div>
   <div class="pull-left">
     <a id="cancel" href="#/self" class="btn btn-danger" ng-click="logout()">{{'CANCEL'| translate}}</a>
   </div>