add call and bean mapping for ApplicationRoles data

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1230551 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Olivier Lamy 2012-01-12 14:11:50 +00:00
parent e267d43bb1
commit 9c6d1fb950
2 changed files with 62 additions and 1 deletions

View File

@ -257,5 +257,44 @@ $(function() {
$("#role-edit-users-li").addClass("active"); $("#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));
}
}); });

View File

@ -159,7 +159,6 @@ $(function() {
async: false, async: false,
dataType: 'json', dataType: 'json',
success: function(data) { success: function(data) {
//$("#user-edit-roles-view").show();
var mappedRoles = $.map(data.role, function(item) { var mappedRoles = $.map(data.role, function(item) {
return mapRole(item); return mapRole(item);
}); });
@ -168,6 +167,14 @@ $(function() {
ko.applyBindings(viewModel,$("#user-edit-roles-view").get(0)); ko.applyBindings(viewModel,$("#user-edit-roles-view").get(0));
$("#main-content #edit_user_details_pills_headers").pills(); $("#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) { UserViewModel=function(user) {
this.user=user; this.user=user;
this.roles = ko.observableArray(new Array()); this.roles = ko.observableArray(new Array());