[KSS-checkins] r50798 - kukit/kukit.js/trunk/kukit

gotcha at codespeak.net gotcha at codespeak.net
Sun Jan 20 14:51:00 CET 2008


Author: gotcha
Date: Sun Jan 20 14:50:59 2008
New Revision: 50798

Modified:
   kukit/kukit.js/trunk/kukit/kukit.js
   kukit/kukit.js/trunk/kukit/serveraction.js
Log:
fix base URL calculation to fix bug found via Grok integration by Jeff

Modified: kukit/kukit.js/trunk/kukit/kukit.js
==============================================================================
--- kukit/kukit.js/trunk/kukit/kukit.js	(original)
+++ kukit/kukit.js/trunk/kukit/kukit.js	Sun Jan 20 14:50:59 2008
@@ -79,6 +79,7 @@
 
 this.calculateBase = function() {
     var base = '';
+    // returns empty base when not in browser (cli tests)
     try {
         var _dummy = document;
         _dummy = window;
@@ -86,29 +87,32 @@
         // testing or what
         return base;
     }
+    // fetch base from specific link in case of ill situations
+    // like default pages in Plone 
     var nodes = document.getElementsByTagName("link");
     if (nodes.length > 0) {
         for (var i=0; i<nodes.length; i++) {
             var link = nodes[i];
             if (link.rel == 'kss-base-url') {
-                return link.href;
+                var base = link.href;
             }
         }
     }
-    nodes = document.getElementsByTagName("base");
-    if (nodes.length === 0) {
-        base = window.location.href;
-        var pieces = base.split('/');
-        pieces.pop();
-        base = pieces.join('/');
-    } else {
-        base = nodes[0].href;
-        // take off trailing slash
-        var baselen = base.length;
-        if (baselen > 0 && base.substring(baselen - 1) == '/') {
-            base = base.substring(0, baselen - 1);
+    // if no override, fetch as usual first from base tag
+    // then from page url if no base tag
+    if (!base) {
+        nodes = document.getElementsByTagName("base");
+        if (nodes.length != 0) {
+            var base = nodes[0].href;
+        } else {
+            var base = window.location.href;
         }
     }
+    // remove last piece until '/'
+    var pieces = base.split('/');
+    pieces.pop();
+    // base url needs a trailing '/' 
+    base = pieces.join('/') + '/';
     return base;
 };
 

Modified: kukit/kukit.js/trunk/kukit/serveraction.js
==============================================================================
--- kukit/kukit.js/trunk/kukit/serveraction.js	(original)
+++ kukit/kukit.js/trunk/kukit/serveraction.js	Sun Jan 20 14:50:59 2008
@@ -48,7 +48,7 @@
     if (url.match(RegExp('/^https?:\/\//'))) {
         return url;
     } else {
-        var result = kukit.engine.baseUrl + '/' + url;
+        var result = kukit.engine.baseUrl + url;
         return result;
     }
 };


More information about the Kukit-checkins mailing list