]> source.dussan.org Git - archiva.git/commitdiff
add call and bean mapping for ApplicationRoles data
authorOlivier Lamy <olamy@apache.org>
Thu, 12 Jan 2012 14:11:50 +0000 (14:11 +0000)
committerOlivier Lamy <olamy@apache.org>
Thu, 12 Jan 2012 14:11:50 +0000 (14:11 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1230551 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/roles.js
archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/users.js

index 1c12cc81d796279ab7bb08872d46737fb7022df7..830206a789f174fa2f10dbba5fea3742e1154383 100644 (file)
@@ -257,5 +257,44 @@ $(function() {
     $("#role-edit-users-li").addClass("active");
   }
 
+  ApplicationRoles = function(name,description,globalRoles,roleTemplates,resources){
+    //private String name;
+    this.name = name;
+    //private String description;
+    this.description = description;
+    //private Collection<String> globalRoles;
+    this.globalRoles = globalRoles;
+    //private Collection<RoleTemplate> roleTemplates;
+    this.roleTemplates = roleTemplates;
+    //private Collection<String> resources;
+    this.resources = resources;
+  }
+
+  mapApplicationRoles=function(data){
+    var roleTemplates = data.roleTemplates ? $.isArray(data.roleTemplates) ? $.map(data.roleTemplates, function(item) {
+      return mapRoleTemplate(item);
+    }):new Array(mapRoleTemplate(data.roleTemplates)):null;
+
+    return new ApplicationRoles(data.name,data.description,mapStringArray(data.globalRoles),roleTemplates,mapStringArray(data.resources));
+  }
+
+  RoleTemplate = function(id,namePrefix,delimiter,description,resource,roles){
+    //private String id;
+    this.id = id;
+    //private String namePrefix;
+    this.namePrefix = namePrefix;
+    //private String delimiter = " - ";
+    this.delimiter = delimiter;
+    //private String description;
+    this.description = description;
+    //private String resource;
+    this.resource = resource;
+    //private List<String> roles;
+    this.roles = roles;
+  }
+
+  mapRoleTemplate = function(data){
+    return new RoleTemplate(data.id,data.namePrefix,data.delimiter,data.description,mapStringArray(data.roles));
+  }
 
 });
\ No newline at end of file
index 605ae1acc7d9166278aa2858a1888658e33ebbf1..2035dffa19cbdecf9d4f11754b29af8b3106762f 100644 (file)
@@ -159,7 +159,6 @@ $(function() {
           async: false,
           dataType: 'json',
           success: function(data) {
-            //$("#user-edit-roles-view").show();
             var mappedRoles = $.map(data.role, function(item) {
               return mapRole(item);
             });
@@ -168,6 +167,14 @@ $(function() {
             ko.applyBindings(viewModel,$("#user-edit-roles-view").get(0));
             $("#main-content #edit_user_details_pills_headers").pills();
 
+            $("#main-content #edit_user_details_pills_headers").bind('change', function (e) {
+              //$.log( $(e.target).attr("href") ); // activated tab
+              //e.relatedTarget // previous tab
+              if ($(e.target).attr("href")=="#user-edit-roles-edit") {
+                editUserRoles(user);
+              }
+            })
+
           }
         }
       );
@@ -175,6 +182,21 @@ $(function() {
     }
   }
 
+  editUserRoles=function(user){
+    $.log("editUserRoles:"+user.username());
+    $("#user-edit-roles-edit").html(smallSpinnerImg());
+    $.ajax("restServices/redbackServices/roleManagementService/getApplicationRoles/"+encodeURIComponent(user.username()), {
+        type: "GET",
+        async: false,
+        dataType: 'json',
+        success: function(data) {
+          $("#user-edit-roles-edit").html("loaded");
+
+        }
+      }
+    );
+  }
+
   UserViewModel=function(user) {
     this.user=user;
     this.roles = ko.observableArray(new Array());