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();
 
-
-
 })
 });
 


Reply via email to