[Jifty-commit] r7290 - jifty/trunk/share/plugins/Jifty/Plugin/SinglePage/web/static/js/singlepage

Jifty commits jifty-commit at lists.jifty.org
Thu Jul 2 05:24:52 EDT 2009


Author: c9s
Date: Thu Jul  2 05:24:51 2009
New Revision: 7290

Modified:
   jifty/trunk/share/plugins/Jifty/Plugin/SinglePage/web/static/js/singlepage/spa.js

Log:
fix spa for link with parameters

Modified: jifty/trunk/share/plugins/Jifty/Plugin/SinglePage/web/static/js/singlepage/spa.js
==============================================================================
--- jifty/trunk/share/plugins/Jifty/Plugin/SinglePage/web/static/js/singlepage/spa.js	(original)
+++ jifty/trunk/share/plugins/Jifty/Plugin/SinglePage/web/static/js/singlepage/spa.js	Thu Jul  2 05:24:51 2009
@@ -10,6 +10,7 @@
 (function($) {
     SPA = {
         initialHash: null,
+        initailArgs: { },
         historyChange: function(newLocation, historyData, first) {
             // if has first history, meaning ! is first load
             if (first) {
@@ -23,12 +24,15 @@
                 else {
                     // go back to initail hash or initail path
                     Jifty.update({ 
-                             "continuation": {}, "actions": {}, 
-                                "fragments": [ { "mode": "Replace", "args": {}, 
-                                   "region": "__page", 
-                                     "path": SPA.initialHash } ], 
-                         "action_arguments":{} }, ""
-                    );
+                             "continuation": {}, 
+                                  "actions": {}, 
+                         "action_arguments": {},
+                                "fragments": [ { 
+                                        "mode": "Replace", 
+                                        "args": SPA.initailArgs , 
+                                      "region": "__page", 
+                                        "path": SPA.initialHash 
+                                          } ] }, "");
                 }
             }
         },
@@ -74,15 +78,36 @@
 
             var args = $.extend({}, hiddens, buttons, inputs);
 
-            return Jifty.update( {'continuation':{},'actions':null,'fragments':[{'mode':'Replace','args':args,'region':'__page','path': submit_to}]}, elt );
+            return Jifty.update( {'continuation':{},'actions':null,'fragments':[
+                        {'mode':'Replace','args':args,'region':'__page','path': submit_to
+                    }]}, elt );
         }
     };
 
     // for page load event
     $(document).ready(function(){
+        var hash = location.hash.slice(1);
+        var search = location.search.slice(1);
+
+        if( location.hash && ! location.search ) {
+            if ( hash.indexOf('?') >= 0 ) {
+                search = location.hash.slice(1);
+                search = search.substring( search.indexOf('?') + 1 );
+                hash = hash.substring( 0 , hash.indexOf('?') );
+            }else {
+                search = '';
+            }
+
+            var args = { } ;
+            var gy = search.split("&");
+            for (i=0; i<gy.length; i++) {
+                var res =  gy[i].split("=");
+                args[  res[0]  ] = res[1];
+            }
+
+            SPA.initailArgs = args;
+            SPA.initialHash = hash;
 
-        if( location.hash ) {
-            SPA.initialHash = location.hash.slice(1) ; 
         }
         else {
             SPA.initialHash = location.pathname + location.search; // /entrypoint
@@ -93,7 +118,7 @@
 
         // fire history event manually
         if( dhtmlHistory.isFirstLoad() && location.hash ) {
-            dhtmlHistory.fireHistoryEvent( location.hash.slice(1) );
+            dhtmlHistory.fireHistoryEvent( hash );
         }
     });
     


More information about the Jifty-commit mailing list