role UI changes
authorsukesh a c <sukeshac@huawei.com>
Mon, 6 Feb 2017 07:19:11 +0000 (07:19 +0000)
committersukesh a c <sukeshac@huawei.com>
Mon, 6 Feb 2017 07:20:21 +0000 (07:20 +0000)
issue-id: OCS-188
Change-Id: I84a3bd6c7098ce927ae7f01324d43688594ec4f0
Signed-off-by: sukesh a c <sukeshac@huawei.com>
auth/src/main/webapp/user/createUser.html
auth/src/main/webapp/user/css/user.css
auth/src/main/webapp/user/js/createUser.js
auth/src/main/webapp/user/js/modifyUser.js
auth/src/main/webapp/user/js/user.js
auth/src/main/webapp/user/modifyUser.html

index 40f8741..a652720 100644 (file)
                     <td>
                     </td>
                 </tr>
+                <tr>
+                    <td>
+                        <span class="mandatory"></span>
+                    </td>
+                    <td class="row_interval">
+                        <span>Roles</span><span>:</span>
+                    </td>
+                    <td>
+                        <div>
+                            <dl class="dropdown"> 
+  
+                            <dt>
+                            <a href="#">
+                              <span class="hida">Please select roles</span>    
+                              <p class="multiSel"></p>  
+                            </a>
+                            </dt>
+                          
+                            <dd>
+                                <div class="mutliSelect">
+                                     <ul>
+                                    
+                                    </ul>
+                                    
+                                </div>
+                            </dd>
+                        </dl>
+                        </div>
+                    </td>
+                    <td>
+                        <div id="rolesError" class="errorTip" style="visibility: hidden;">error.</div>
+                    </td>
+                </tr>
             </table>
         </div>
         <div id="role_content" class="suggestion_tip">
index 6fe0b6f..199843f 100644 (file)
 }
 #role_content table {
     margin-left: 20px;
-}
\ No newline at end of file
+}
+
+
+.dropdown dd,
+.dropdown dt {
+  margin: 0px;
+  padding: 0px;
+}
+
+.dropdown ul {
+  margin: -1px 0 0 0;
+}
+
+.dropdown dd {
+  position: relative;
+}
+
+.dropdown a,
+.dropdown a:visited {
+  color: #fff;
+  text-decoration: none;
+  outline: none;
+  font-size: 12px;
+}
+
+.dropdown dt a {
+  min-height: 25px;
+  line-height: 24px;
+  overflow: hidden;
+  border: 1px solid #c3c3c3;
+  background-color: #fff;
+  padding: 0 0 0 6px;
+  border-radius: 4px;
+  color: #000;
+  display: inline-block;
+  outline: 0;
+  box-shadow: 1px 1px #f6f6f6 inset;
+  font-size: 12px;
+  background: #fff;
+  height: 24px;
+  width: 300px;
+}
+}
+
+.dropdown dt a span,
+.multiSel span {
+  cursor: pointer;
+  display: inline-block;
+  padding: 0 3px 2px 0;
+}
+
+.dropdown dd ul {
+  display: none;
+  left: 0px;
+  padding: 2px 15px 2px 5px;
+  position: absolute;
+  top: 2px;
+  list-style: none;
+  height: 50px;
+  overflow: auto;
+  border: 1px solid #c3c3c3;
+  background-color: #fff;
+  border-radius: 4px;
+  color: #000;
+  outline: 0;
+  box-shadow: 1px 1px #f6f6f6 inset;
+  font-size: 12px;
+  background: #fff;
+  width: 300px;
+}
+
+.dropdown span.value {
+  display: none;
+}
+
+.dropdown dd ul li a {
+  padding: 5px;
+  display: block;
+}
+
+.dropdown dd ul li a:hover {
+  background-color: #fff;
+}
index 726d599..71a8d56 100644 (file)
 $(document).ready(function() {
 
     var USER_SERVICE = "/openoapi/auth/v1/users";
+    var ROLE_SERVICE = "/openoapi/auth/v1/roles";
     var $userName = $("#userName");
     var $password = $("#password");
     var $cfPsdError = $("#cfPsdError");
     var $userNameError = $("#userNameError");
     var $passwordError = $("#passwordError");
-
+    var $rolesError = $("#rolesError");
+    var roleMap=[];
     function initialPage() {
         /*initial the event*/
         $("#confirm").click(function(e) {
@@ -36,6 +38,110 @@ $(document).ready(function() {
         $("#cancel").click(function(e) {
             window.document.location = "/openoui/user/user.html";
         })
+    //get and initialize roles
+     getRolesList().done(function(data) {
+                                var data = formatRoles(data);
+                                   for (var i = 0; i < data.length; i++) {
+                                 var html = '<li><input type="checkbox" value="' + data[i].name + '"/>' + data[i].name + '</li>';
+                                 $('.mutliSelect ul').append(html);
+                                }
+                            })
+    
+    //init listener
+               $(".dropdown dt a").on('click', function() {
+                 $(".dropdown dd ul").slideToggle('fast');
+               });
+
+               $(".dropdown dd ul li a").on('click', function() {
+                 $(".dropdown dd ul").hide();
+               });
+
+               function getSelectedValue(id) {
+                 return $("#" + id).find("dt a span.value").html();
+               }
+
+               $(document).bind('click', function(e) {
+                 var $clicked = $(e.target);
+                 if (!$clicked.parents().hasClass("dropdown")) $(".dropdown dd ul").hide();
+               });
+
+               $('.mutliSelect input[type="checkbox"]').on('click', function() {
+                       if($('.hida')[0].innerHTML=='Please select roles')
+                       {
+                       $('.hida')[0].innerHTML='';    
+                       }
+                       
+                 var title;
+                 if($('.multiSel').text() ==='')
+                 {
+                       title = $(this).closest('.mutliSelect').find('input[type="checkbox"]').val(),
+                       title = $(this).val();
+                       }
+                       else
+                       {
+                       title = $(this).closest('.mutliSelect').find('input[type="checkbox"]').val(),
+                       title ="," + $(this).val();
+                       
+                       }
+                       var oldText=$('.hida')[0].innerHTML;
+                 if ($(this).is(':checked')) {
+                       if(oldText.length>0)
+                       {
+                               $('.hida')[0].innerHTML=oldText+','+title;
+                       }
+                       else
+                       {
+                                $('.hida')[0].innerHTML=title;    
+                       }
+
+                 } else {
+                  
+                  var rolesData = oldText.split(',');
+                  var rolesList='';
+                        for (var i = 0; i < rolesData.length ; i++) {
+                                  if(title!=rolesData[i])
+                                  {
+                                       if(i==0 || rolesList.length==0 )
+                                       {
+                                       rolesList=rolesData[i];
+                                       }
+                                       else
+                                       {
+                                       rolesList=rolesList+','+rolesData[i];
+                                       }
+                                  }
+                               }
+                               if(rolesList.length ==0)
+                               {
+                                       rolesList='Please select roles';
+                               }
+                        $('.hida')[0].innerHTML=rolesList;   
+                 
+                 }
+               });
+
+    }
+
+    function getRolesList() {
+        return Rest.http({
+            url: ROLE_SERVICE + "?=" + new Date().getTime(),
+            type: "GET",
+            async: false,
+            contentType: 'application/json',
+           dataType: "json"
+        })
+    }
+
+    function formatRoles(data) {
+        var rolesData = [];
+        for (var i = 0; i < data.roles.length; i++) {
+            var temp = {};
+            temp.roleid = data.roles[i].id;
+            temp.name = data.roles[i].name;
+            rolesData.push(temp);
+            roleMap[temp.name]=temp.roleid;
+        }
+        return rolesData;
     }
 
     function getCreateUser() {
@@ -44,6 +150,16 @@ $(document).ready(function() {
         data.password = $password.val();
         data.description = $("#description").val();
         data.email = "xxxx@xxxx.com";
+        //get roles
+        var roles=[];
+        var rolesData = $('.hida').text().split(',');
+        for (var i = 0; i < rolesData.length ; i++) {
+            var temp = {};
+            temp.name=rolesData[i];
+            temp.id=roleMap[rolesData[i]];
+            roles.push(temp);
+        }
+        data.roles=roles;
         return data;
     }
 
@@ -86,6 +202,11 @@ $(document).ready(function() {
         if ($password.val() == "") {
             showError($passwordError, "Mandatory.");
             return false;
+        }
+               if($('.hida')[0].innerHTML=='Please select roles')
+               {
+                       showError($rolesError, "Mandatory.");
+            return false;
         }
         return true;
     }
index 04cf054..7357955 100644 (file)
  */
 $(document).ready(function() {
     var USER_SERVICE = "/openoapi/auth/v1/users";
+    var ROLE_SERVICE = "/openoapi/auth/v1/roles";
     var userId;
+    var roleMap=[];
     function initialPage() {
         userId = getId();
         getUserDetails(userId).done(function(data) {
             listUserDetails(data);
         });
 
+        //init listener
+    $(".dropdown dt a").on('click', function() {
+    $(".dropdown dd ul").slideToggle('fast');
+    });
+
+    $(".dropdown dd ul li a").on('click', function() {
+      $(".dropdown dd ul").hide();
+    });
+
+    function getSelectedValue(id) {
+      return $("#" + id).find("dt a span.value").html();
+    }
+
+    $(document).bind('click', function(e) {
+      var $clicked = $(e.target);
+      if (!$clicked.parents().hasClass("dropdown")) $(".dropdown dd ul").hide();
+    });
+
+               $('.mutliSelect input[type="checkbox"]').on('click', function() {
+                       if($('.hida')[0].innerHTML=='Please select roles')
+                       {
+                       $('.hida')[0].innerHTML='';    
+                       }
+                       
+                 var title;
+                 if($('.multiSel').text() ==='')
+                 {
+                       title = $(this).closest('.mutliSelect').find('input[type="checkbox"]').val(),
+                       title = $(this).val();
+                       }
+                       else
+                       {
+                       title = $(this).closest('.mutliSelect').find('input[type="checkbox"]').val(),
+                       title ="," + $(this).val();
+                       
+                       }
+                       var oldText=$('.hida')[0].innerHTML;
+                 if ($(this).is(':checked')) {
+                       if(oldText.length>0)
+                       {
+                               $('.hida')[0].innerHTML=oldText+','+title;
+                       }
+                       else
+                       {
+                                $('.hida')[0].innerHTML=title;    
+                       }
+
+                 } else {
+                  
+                  var rolesData = oldText.split(',');
+                  var rolesList='';
+                        for (var i = 0; i < rolesData.length ; i++) {
+                                  if(title!=rolesData[i])
+                                  {
+                                       if(i==0 || rolesList.length==0 )
+                                       {
+                                       rolesList=rolesData[i];
+                                       }
+                                       else
+                                       {
+                                       rolesList=rolesList+','+rolesData[i];
+                                       }
+                                  }
+                               }
+                               if(rolesList.length ==0)
+                               {
+                                       rolesList='Please select roles';
+                               }
+                        $('.hida')[0].innerHTML=rolesList;   
+                 
+                 }
+               });
+
         /*initial the event*/
         $("#confirm").click(function(e) {
             var data = getModifyUser();
@@ -38,6 +113,16 @@ $(document).ready(function() {
         var data = {};
         data.description = $("#description").val();
         data.email = "xxxx@xxxx.com";
+        //get roles
+        var roles=[];
+        var rolesData = $('.hida').text().split(',');
+        for (var i = 0; i < rolesData.length ; i++) {
+            var temp = {};
+            temp.name=rolesData[i];
+            temp.id=roleMap[rolesData[i]];
+            roles.push(temp);
+        }
+        data.roles=roles;
         return data;
     }
     function getUserDetails(id) {
@@ -53,6 +138,75 @@ $(document).ready(function() {
     function listUserDetails(data) {
         $("#userName").val(data.name);
         $("#description").val(data.description);
+        var roles=formatRoles(data);
+        var rolesList='';
+        for (var i = 0; i < roles.length; i++) {
+           if(i==0 || rolesList.length==0 )
+            {
+            rolesList=roles[i].name;
+            }
+            else
+            {
+            rolesList=rolesList+','+roles[i].name;
+            }
+        }
+        if(rolesList.length ==0)
+        {
+            rolesList='Please select roles';
+        }
+        $('.hida')[0].innerHTML=rolesList; 
+     
+
+        //get and initialize roles
+         getRolesList().done(function(data) {
+                                    var allRoles = formatRoles(data);
+                                     for (var i = 0; i < allRoles.length; i++) {
+                                        var isExists=false;
+                                        for (var j = 0; j < roles.length; j++) {
+                                        if( roles[j].name== allRoles[i].name)
+                                        {
+                                        isExists=true;
+                                        break;
+                                        }
+                                        }
+                                         if(isExists)
+                                        {
+                                         var html = '<li><input type="checkbox" checked=true value="' + allRoles[i].name + '"/>' + allRoles[i].name + '</li>';
+                                         $('.mutliSelect ul').append(html);
+                                        }
+                                        else
+                                        {
+                                         var html = '<li><input type="checkbox" value="' + allRoles[i].name + '"/>' + allRoles[i].name + '</li>';
+                                         $('.mutliSelect ul').append(html);
+                                        }
+                                    }
+                                })
+    }
+
+
+        function getRolesList() {
+        return Rest.http({
+            url: ROLE_SERVICE + "?=" + new Date().getTime(),
+            type: "GET",
+            async: false,
+            contentType: 'application/json',
+            'beforeSend' : function(xhr) {
+            xhr.setRequestHeader("X-Auth-Token", "ffbf55c328464a9dbb1920aca768e0d2");
+    },
+            dataType: "json"
+        })
+    }
+
+     function formatRoles(data) {
+        var rolesData = [];
+        for (var i = 0; i < data.roles.length; i++) {
+            var temp = {};
+            temp.roleid = data.roles[i].id;
+            temp.name = data.roles[i].name;
+            rolesData.push(temp);
+            roleMap[temp.name]=temp.roleid;
+        }
+        return rolesData;
     }
 
     function modifyUser(data) {
index aa0dc72..c45e68d 100644 (file)
@@ -20,7 +20,8 @@ $(document).ready(function() {
 
     var userListHeader = [
         { title: "User", data: "User",width: "20%"},
-        { title: "Description", data: "Description",width: "60%"},
+        { title: "Description", data: "Description",width: "30%"},
+        { title: "Roles", data: "Roles",width: "30%"},
         { title: "Operations", data: "Operations",width: "20%"}
     ];
     function initialPage() {
@@ -32,6 +33,15 @@ $(document).ready(function() {
         }).error(function(data) {
             if (data.status == 403) {
                 $(".hw_body").html("<span style='font-size:20px;'>" + JSON.parse(data.responseText).error.message + "</span>");
+            } else {
+                var userListHeader = [
+                    { title: "User", data: "User",width: "20%"},
+                    { title: "Description", data: "Description",width: "30%"},
+                    { title: "Roles", data: "Roles",width: "30%"},
+                    { title: "Operations", data: "Operations",width: "20%"}
+                ];
+                Table.create("", "table_id", userListHeader);
+                $(".hw_body").css("visibility", "visible");
             }
         });
 
@@ -92,6 +102,20 @@ $(document).ready(function() {
             temp.rowid = data[i].id;
             temp.User = data[i].name;
             temp.Description = data[i].description;
+            temp.Roles='';
+            
+            for (var j = 0; j < data[i].roles.length; j++) {
+                if(temp.Roles.length>0)
+                {
+                    temp.Roles=temp.Roles+','+data[i].roles[j].name;
+                }
+                else
+                {
+                    temp.Roles=data[i].roles[j].name;
+                }
+                
+            }
+           
             if (data[i].name == "admin") {
                 temp.Operations = editOpt;
             } else {
index 2e16c8c..eec8fa5 100644 (file)
                     
                 </td>
             </tr>
+            <tr>
+                    <td>
+                        <span class="mandatory"></span>
+                    </td>
+                    <td class="row_interval">
+                        <span>Roles</span><span>:</span>
+                    </td>
+                    <td>
+                        <div>
+                            <dl class="dropdown"> 
+  
+                            <dt>
+                            <a href="#">
+                              <span class="hida">Select</span>    
+                              <p class="multiSel"></p>  
+                            </a>
+                            </dt>
+                          
+                            <dd>
+                                <div class="mutliSelect">
+                                     <ul>
+                                    
+                                    </ul>
+                                    
+                                </div>
+                            </dd>
+                        </dl>
+                        </div>
+                    </td>
+                    <td>
+                    </td>
+                </tr>
         </table>
     </div>
     <div class="button_Group">