You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2011/12/31 14:55:46 UTC

svn commit: r1226092 - in /archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp: ./ js/archiva/ js/redback/ js/redback/templates/

Author: olamy
Date: Sat Dec 31 13:55:46 2011
New Revision: 1226092

URL: http://svn.apache.org/viewvc?rev=1226092&view=rev
Log:
start moving role edition to use knockout with adding bean mapping

Added:
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/permission.js
      - copied, changed from r1226091, archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/operation.js
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/resource.js
      - copied, changed from r1226091, archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/operation.js
Modified:
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/index.html
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/operation.js
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/roles.js
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/templates/roles-tmpl.html
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/users.js

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/index.html
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/index.html?rev=1226092&r1=1226091&r2=1226092&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/index.html (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/index.html Sat Dec 31 13:55:46 2011
@@ -64,6 +64,8 @@
        .script("redback/users.js").wait()
        .script("redback/redback.js").wait()
        .script("redback/register.js").wait()
+       .script("redback/permission.js").wait()
+       .script("redback/resource.js").wait()
        .script("redback/roles.js").wait()
        .script("archiva/main.js");
 

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js?rev=1226092&r1=1226091&r2=1226092&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js Sat Dec 31 13:55:46 2011
@@ -79,7 +79,7 @@ $(function() {
               return mapOperation(item);
           });
           window.redbackModel.operatioNames = $.map(mappedOperations, function(item){
-            return item.name;
+            return item.name();
           });
 
           $("[redback-permissions]").each(function(element){
@@ -88,7 +88,6 @@ $(function() {
             var neededKarmas = $(eval(bindingValue)).toArray();
             var karmaOk = false;
             $(neededKarmas).each(function(value){
-              //alert(neededKarmas[value]);
               if ($.inArray(neededKarmas[value],window.redbackModel.operatioNames)>=0) {
                 karmaOk = true;
               }

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js?rev=1226092&r1=1226091&r2=1226092&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js Sat Dec 31 13:55:46 2011
@@ -176,4 +176,20 @@ openDialogConfirmui=function(okFn, okMes
       }
     }]
   });
+}
+
+mapStringArray=function(data){
+  //if (data){
+    if ($.isArray(data)){
+      $.log("isArray");
+      return $.map(data,function(item){
+            return item;
+      });
+    } else {
+      $.log("not Array");
+      return new Array(data);
+    }
+  //}
+
+  //return null;
 }
\ No newline at end of file

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/operation.js
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/operation.js?rev=1226092&r1=1226091&r2=1226092&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/operation.js (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/operation.js Sat Dec 31 13:55:46 2011
@@ -20,7 +20,7 @@ $(function() {
 
 
   operation=function(name) {
-    this.name=name;
+    this.name=ko.observable(name);
   }
 
   /**

Copied: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/permission.js (from r1226091, archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/operation.js)
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/permission.js?p2=archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/permission.js&p1=archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/operation.js&r1=1226091&r2=1226092&rev=1226092&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/operation.js (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/permission.js Sat Dec 31 13:55:46 2011
@@ -19,15 +19,19 @@
 $(function() {
 
 
-  operation=function(name) {
-    this.name=name;
+  permission=function(name,operation,resource) {
+    this.name=ko.observable(name);
+    this.operation=ko.observable(operation);
+    this.resource=ko.observable(resource);
   }
 
   /**
-   * @param data Operation response from redback rest api
+   * @param data Permission response from redback rest api
    */
-  mapOperation=function(data) {
-    return new operation(data.name,null);
+  mapPermission=function(data) {
+    return new permission(data.name,
+                          data.operation?mapOperation(data.operation):null,
+                          data.resource?mapResource(data.resource):null);
   }
 
 

Copied: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/resource.js (from r1226091, archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/operation.js)
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/resource.js?p2=archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/resource.js&p1=archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/operation.js&r1=1226091&r2=1226092&rev=1226092&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/operation.js (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/resource.js Sat Dec 31 13:55:46 2011
@@ -19,15 +19,16 @@
 $(function() {
 
 
-  operation=function(name) {
-    this.name=name;
+  resource=function(identifier,pattern) {
+    this.identifier=ko.observable(identifier);
+    this.pattern=ko.observable(pattern);
   }
 
   /**
-   * @param data Operation response from redback rest api
+   * @param data Resource response from redback rest api
    */
-  mapOperation=function(data) {
-    return new operation(data.name,null);
+  mapResource=function(data) {
+    return new resource(data.identifier,data.pattern);
   }
 
 

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/roles.js
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/roles.js?rev=1226092&r1=1226091&r2=1226092&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/roles.js (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/roles.js Sat Dec 31 13:55:46 2011
@@ -18,16 +18,44 @@
  */
 $(function() {
 
-  role = function(name,description,permissions){
-    this.name = name;
-    this.description = description;
-    this.permissions=permissions;
-  }
+  role = function(name,description,assignable,childRoleNames,parentRoleNames,users,parentsRolesUsers,permissions){
+    this.name = ko.observable(name);
+    this.description = ko.observable(description);
+    this.assignable = ko.observable(assignable);
+    this.childRoleNames = ko.observableArray(childRoleNames);//read only
+    this.parentRoleNames = ko.observableArray(parentRoleNames);//read only
+    this.users = ko.observableArray(users);
+    this.parentsRolesUsers = ko.observableArray(parentsRolesUsers);//read only
+    this.permissions = ko.observableArray(permissions);//read only
+
+
+
 
-  permission = function(){
 
+
+    this.updateDescription=function(){
+      var url = "restServices/redbackServices/roleManagementService/updateRoleDescription?";
+      var roleName = this.name();
+      url += "roleName="+encodeURIComponent(roleName);
+      url += "&roleDescription="+encodeURIComponent(this.description());
+      $.ajax(url,
+        {
+          type: "GET",
+          dataType: 'json',
+          success: function(data) {
+            $.log("role description updated");
+            displaySuccessMessage($.i18n.prop("role.updated",roleName));
+          },
+          error: function(data){
+            displayErrorMessage("error updating role description");
+          }
+        }
+      );
+    }
   }
 
+
+
   displayRolesGrid = function(){
     $("#user-messages").html("");
     $("#main-content").html("");
@@ -37,11 +65,11 @@ $(function() {
        dataType: 'json',
        success: function(data) {
          var roles = $.map(data.role, function(item) {
-             return mapRole(item);
+           return mapRole(item);
          });
-
+         $.log(ko.toJSON(roles));
          $("#main-content").html($("#rolesTabs").tmpl());
-         $("#main-content #roles-view-tabs-content #roles-view").html($("#rolesGrid").tmpl(data));
+         $("#main-content #roles-view-tabs-content #roles-view").html($("#rolesGrid").tmpl(roles));
          $("#roles-view-tabs").tabs();
          activateRolesGridTab();
        }
@@ -68,22 +96,7 @@ $(function() {
     var roleName = $("#editRoleTable #role-edit-name").html();
     var description = $("#editRoleTable #role-edit-description").val();
     clearUserMessages();
-    var url = "restServices/redbackServices/roleManagementService/updateRoleDescription?";
-    url += "roleName="+encodeURIComponent(roleName);
-    url += "&roleDescription="+encodeURIComponent(description);
-    $.ajax(url,
-      {
-        type: "GET",
-        dataType: 'json',
-        success: function(data) {
-          $.log("role description updated");
-          displaySuccessMessage($.i18n.prop("role.updated",roleName));
-        },
-        error: function(data){
-          displayErrorMessage("error updating role description");
-        }
-      }
-    );
+    new role(roleName,description).updateDescription();
 
   }
 
@@ -91,7 +104,23 @@ $(function() {
    * @param data Role response from redback rest api
    */
   mapRole=function(data) {
-    return new role(data.name, data.description);
+    // name, description, assignable,childRoleNames,parentRoleNames,users,parentsRolesUsers,permissions
+    $.log("mapRole:"+data.name+":");
+    var childRoleNames = mapStringArray(data.childRoleNames);
+    var parentRoleNames = mapStringArray(data.parentRoleNames);
+    var users = data.users ? $.map(data.users, function(item) {
+      return mapUser(item);
+    }):null;
+
+    var parentsRolesUsers = data.parentsRolesUsers ? $.map(data.parentsRolesUsers, function(item) {
+      return mapUser(item);
+    }):null;
+
+    var permissions = data.permissions? $.map(data.permissions, function(item){
+      return mapPermission(item);
+    }):null;
+
+    return new role(data.name, data.description,data.assignable,childRoleNames,parentRoleNames,users,parentsRolesUsers,permissions);
   }
 
   activateRolesGridTab=function(){

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/templates/roles-tmpl.html
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/templates/roles-tmpl.html?rev=1226092&r1=1226091&r2=1226092&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/templates/roles-tmpl.html (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/templates/roles-tmpl.html Sat Dec 31 13:55:46 2011
@@ -80,7 +80,7 @@
       {{/if}}
     </ul>
   {{/if}}
-
+  <!--
   <div class="page-header">
     <h3>${$.i18n.prop('role.model.child.roles')}</h3>
   </div>
@@ -167,5 +167,5 @@
   {{else}}
     ${$.i18n.prop('role.edit.no.user.defined')}
   {{/if}}
-
+  -->
 </script>

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/users.js
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/users.js?rev=1226092&r1=1226091&r2=1226092&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/users.js (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/users.js Sat Dec 31 13:55:46 2011
@@ -31,10 +31,10 @@ $(function() {
           async: false,
           dataType: 'json',
           success: function(data) {
-              var mappedUsers = $.map(data.user, function(item) {
-                  return mapUser(item);
-              });
-              self.users(mappedUsers);
+            var mappedUsers = $.map(data.user, function(item) {
+              return mapUser(item);
+            });
+            self.users(mappedUsers);
           }
         }
       );