From 9c6d1fb950f6b0ea7fced415aa54062798101d61 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Thu, 12 Jan 2012 14:11:50 +0000 Subject: [PATCH] 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 --- .../src/main/webapp/js/redback/roles.js | 39 +++++++++++++++++++ .../src/main/webapp/js/redback/users.js | 24 +++++++++++- 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/roles.js b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/roles.js index 1c12cc81d..830206a78 100644 --- a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/roles.js +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/roles.js @@ -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 globalRoles; + this.globalRoles = globalRoles; + //private Collection roleTemplates; + this.roleTemplates = roleTemplates; + //private Collection 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 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 diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/users.js b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/users.js index 605ae1acc..2035dffa1 100644 --- a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/users.js +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/users.js @@ -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()); -- 2.39.5