]> source.dussan.org Git - archiva.git/commitdiff
use a callback pattern with non blocking call to check admin exists and menu entries...
authorOlivier Lamy <olamy@apache.org>
Mon, 23 Jan 2012 16:22:01 +0000 (16:22 +0000)
committerOlivier Lamy <olamy@apache.org>
Mon, 23 Jan 2012 16:22:01 +0000 (16:22 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1234883 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js
archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/redback.js

index 50240e28226e4c6cac39246d6b445c37b2267336..c52b5bf31ae182c3259403b06961680dfa6727c4 100644 (file)
@@ -114,11 +114,8 @@ $(function() {
     $.log("hideElementWithKarma");
   }
 
-
-  checkSecurityLinks=function(){
-    $.log("checkSecurityLinks");
-    var user = userLogged();
-    $.log("checkSecurityLinks, user:"+user);
+  userLoggedCallbackFn=function(user){
+    $.log("userLoggedCallbackFn:"+ (user?user.username:null));
 
     if (!user) {
       $("#login-link").show();
@@ -133,11 +130,14 @@ $(function() {
     }
   }
 
+  checkSecurityLinks=function(){
+    userLogged(userLoggedCallbackFn);
+  }
+
   checkCreateAdminLink=function(){
     $.ajax("restServices/redbackServices/userService/isAdminUserExists", {
       type: "GET",
       dataType: 'json',
-      async: false,
       success: function(data) {
         var adminExists = JSON.parse(data);
         if (adminExists == false) {
@@ -165,9 +165,9 @@ $(function() {
     $('#topbar-menu-container').html($("#topbar-menu"));
     $('#sidebar-content').html($("#main-menu"));
 
-    checkCreateAdminLink();
     hideElementWithKarma();
     checkSecurityLinks();
+    checkCreateAdminLink();
   }
   startArchivaApplication();
 })
index 1f80baa2165e64d0ffab0402e7397fff87cf6dfa..186ddec26232f28b57de6f57861d8b64dbc4e4ab 100644 (file)
@@ -32,25 +32,22 @@ $(function() {
   });
 
   /**
-   * return a user see user.js if user logged otherwise null
+   * call successFn on success with passing user object coming from cookie
    */
-  userLogged=function() {
+  userLogged=function(successFn) {
     // call restServices/redbackServices/loginService/isLogged to know
     // if a session exists and check the cookie
     $.log("userLogged");
     var userLogged = true;
     $.ajax("restServices/redbackServices/loginService/isLogged", {
       type: "GET",
-      async: false,
       success: function(data) {
         userLogged = JSON.parse(data);
+        if (successFn){
+          successFn(userLogged == false ? null : jQuery.parseJSON($.cookie('redback_login')));
+        }
       }
     });
-    if (userLogged == false)
-    {
-      return null;
-    }
-    return jQuery.parseJSON($.cookie('redback_login'));
   }
 
 });
\ No newline at end of file