roojs-core.js
[roojs1] / Roo / History.js
index 4ef9ee6..91ae8d2 100644 (file)
@@ -1,17 +1,22 @@
 /**
  * Originally based of this code... - refactored for Roo...
- *
+ * https://github.com/browserstate/history.js
  * History.js Core
  * @author Benjamin Arthur Lupton <contact@balupton.com>
  * @copyright 2010-2011 Benjamin Arthur Lupton <contact@balupton.com>
  * @license New BSD License <http://creativecommons.org/licenses/BSD/>
+ *
+ * Hackily modifyed by alan@roojs.com
+ * 
+ * this is not initialized automatically..
+ * must call Roo.History.init( { ... options... });
+ *
+ *  TOTALLY UNTESTED...
+ *
+ *  Documentation to be done....
  */
 
-
-// this is not initialized automatically..
-// must call Roo.History.init( { ... options... });
-
-
 Roo.History = {
         
      
@@ -208,20 +213,14 @@ Roo.History = {
         
         Roo.apply(this,options)
         
-               // Check Load Status of Adapter
-               //if ( typeof this.Adapter === 'undefined' ) {
-               //      return false;
-               //}
-
+               
                // Check Load Status of Core
-               if ( typeof this.initCore !== 'undefined' ) {
-                       this.initCore();
-               }
-
+               this.initCore();
+       
                // Check Load Status of HTML4 Support
-               if ( typeof this.initHtml4 !== 'undefined' ) {
-                       this.initHtml4();
-               }
+               //if ( typeof this.initHtml4 !== 'undefined' ) {
+               //      this.initHtml4();
+               //}
         
         this.initEmulated();
         
@@ -241,7 +240,7 @@ Roo.History = {
         
         
         
-        this.Adapter.bind(window,'popstate',this.onPopState);
+        Roo.get(window).on('popstate',this.onPopState, this);
         
          
                /**
@@ -258,8 +257,8 @@ Roo.History = {
             this.intervalList.push(setInterval(this.onUnload,this.storeInterval));
 
                        // For Other Browsers
-                       this.Adapter.bind(window,'beforeunload',this.onUnload);
-                       this.Adapter.bind(window,'unload',this.onUnload);
+                       Roo.get(window).on('beforeunload',this.onUnload,this);
+                       Roo.get(window).on('unload',this.onUnload, this);
 
                } else {
             this.onUnload = emptyFunction;
@@ -270,7 +269,7 @@ Roo.History = {
                /**
                 * Clear Intervals on exit to prevent memory leaks
                 */
-               this.Adapter.bind(window,"unload",this.clearAllIntervals);
+               Roo.get(window).on('unload',this.clearAllIntervals, this);
 
                /**
                 * Create the initial State
@@ -304,14 +303,14 @@ Roo.History = {
                                 */
 
                                // Setup Alias
-                               this.Adapter.bind(window,'hashchange',function(){
-                                       _this.Adapter.trigger(window,'popstate');
-                               });
+                               Roo.get(window).on('hashchange',function(){
+                                       Roo.get(window).fireEvent('popstate');
+                               }, this);
 
                                // Initialise Alias
                                if ( this.getHash() ) {
-                                       this.Adapter.onDomLoad(function(){
-                                               _this.Adapter.trigger(window,'hashchange');
+                                       Roo.onReady(function(){
+                                               Roo.get(window).fireEvent('hashchange');
                                        });
                                }
                        }
@@ -1636,7 +1635,7 @@ Roo.History = {
 
         // Apply the New State
         //this.debug('this.safariStatePoll: trigger');
-        this.Adapter.trigger(window,'popstate');
+        Roo.get(window).fireEvent('popstate');
 
         // Chain
         return this;
@@ -1651,9 +1650,10 @@ Roo.History = {
      * Send the browser history back one item
      * @param {Integer} queue [optional]
      */
-    back : function(queue){
+    back : function(queue)
+    {
         //this.debug('this.back: called', arguments);
-
+        var _this = this;
         // Handle Queueing
         if ( queue !== false && this.busy() ) {
             // Wait + Push to Queue
@@ -1672,7 +1672,7 @@ Roo.History = {
 
         // Fix certain browser bugs that prevent the state from changing
         this.doubleCheck(function(){
-            this.back(false);
+            _this.back(false);
         });
 
         // Go back
@@ -1785,7 +1785,7 @@ Roo.History = {
             else {
                 // Traditional Anchor
                 //this.debug('this.onPopState: traditional anchor', currentHash);
-                this.Adapter.trigger(window,'anchorchange');
+                Roo.get(window).fireEvent('anchorchange');
                 this.busy(false);
             }
 
@@ -1793,9 +1793,10 @@ Roo.History = {
             this.expectedStateId = false;
             return false;
         }
+        stateId = (event && event.browserEvent && event.browserEvent['state']) || (extra && extra['state']) || undefined;
 
         // Ensure
-        stateId = this.Adapter.extractEventData('state',event,extra) || false;
+        //stateId = this.Adapter.extractEventData('state',event,extra) || false;
 
         // Fetch State
         if ( stateId ) {
@@ -1836,7 +1837,7 @@ Roo.History = {
         this.setTitle(newState);
 
         // Fire Our Event
-        this.Adapter.trigger(window,'statechange');
+        Roo.get(window).fireEvent('statechange');
         this.busy(false);
 
         // Return true
@@ -1899,7 +1900,7 @@ Roo.History = {
             history.pushState(newState.id,newState.title,newState.url);
 
             // Fire HTML5 Event
-            this.Adapter.trigger(window,'popstate');
+            Roo.get(window).fireEvent('popstate');
         }
 
         // End pushState closure
@@ -1956,7 +1957,7 @@ Roo.History = {
             history.replaceState(newState.id,newState.title,newState.url);
 
             // Fire HTML5 Event
-            this.Adapter.trigger(window,'popstate');
+            Roo.get(window).fireEvent('popstate');
         }
 
         // End replaceState closure
@@ -2039,6 +2040,4 @@ Roo.History = {
             }
         }
     }
-};
-
-                 
\ No newline at end of file
+};
\ No newline at end of file