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 2012/01/14 23:33:41 UTC

svn commit: r1231596 - /archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js

Author: olamy
Date: Sat Jan 14 22:33:41 2012
New Revision: 1231596

URL: http://svn.apache.org/viewvc?rev=1231596&view=rev
Log:
don't parse all the document for display element with karma needed

Modified:
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/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=1231596&r1=1231595&r2=1231596&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 Jan 14 22:33:41 2012
@@ -68,41 +68,48 @@ $(function() {
   }
 
   decorateMenuWithKarma=function(user) {
-      var username = user.username;
-      // we can receive an observable user so take if it's a function or not
-      if ($.isFunction(username)){
-        username = user.username();
+    var username = user.username;
+    // we can receive an observable user so take if it's a function or not
+    if ($.isFunction(username)){
+      username = user.username();
+    }
+    var url = 'restServices/redbackServices/userService/getCurrentUserOperations';
+    $.ajax({
+      url: url,
+      success: function(data){
+        var mappedOperations = $.map(data.operation, function(item) {
+            return mapOperation(item);
+        });
+        window.redbackModel.operatioNames = $.map(mappedOperations, function(item){
+          return item.name();
+        });
+
+        $("#topbar-menu-container [redback-permissions]").each(function(element){
+          checkElementKarma(this);
+        });
+        $("#sidebar-content [redback-permissions]").each(function(element){
+          checkElementKarma(this);
+        });
       }
-      var url = 'restServices/redbackServices/userService/getCurrentUserOperations';
-      $.ajax({
-        url: url,
-        success: function(data){
-          var mappedOperations = $.map(data.operation, function(item) {
-              return mapOperation(item);
-          });
-          window.redbackModel.operatioNames = $.map(mappedOperations, function(item){
-            return item.name();
-          });
-
-          $("[redback-permissions]").each(function(element){
-            var bindingValue = $(this).attr("redback-permissions");
-            $(this).hide();
-            var neededKarmas = $(eval(bindingValue)).toArray();
-            var karmaOk = false;
-            $(neededKarmas).each(function(value){
-              if ($.inArray(neededKarmas[value],window.redbackModel.operatioNames)>=0) {
-                karmaOk = true;
-              }
-            });
-            if (karmaOk == false) {
-              $(this).hide();
-            } else {
-              $(this).show();
-            }
-          });
-        }
-      });
+    });
+  }
+
+  checkElementKarma=function(element){
+    var bindingValue = $(element).attr("redback-permissions");
+    $(element).hide();
+    var neededKarmas = $(eval(bindingValue)).toArray();
+    var karmaOk = false;
+    $(neededKarmas).each(function(value){
+      if ($.inArray(neededKarmas[value],window.redbackModel.operatioNames)>=0) {
+        karmaOk = true;
+      }
+    });
+    if (karmaOk == false) {
+      $(element).hide();
+    } else {
+      $(element).show();
     }
+  }
 
   hideElementWithKarma=function(){
     $("#topbar-menu-container [redback-permissions]").each(function(element){
@@ -166,8 +173,6 @@ $(function() {
   hideElementWithKarma();
   checkSecurityLinks();
 
-
-
 })
 });