toward a singleton for OpenILS.data
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 20 Apr 2010 16:25:48 +0000 (16:25 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 20 Apr 2010 16:25:48 +0000 (16:25 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@16281 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js
Open-ILS/xul/staff_client/chrome/content/main/menu.js
Open-ILS/xul/staff_client/server/main/data.xul

index b6e8e38..40f2d9a 100644 (file)
@@ -4,6 +4,10 @@ if (typeof OpenILS == 'undefined') OpenILS = {};
 OpenILS.data = function () {
 
     try {
+        /* We're going to turn this guy into a singleton, at least for a given window, and look for it in xulG */
+        if (! window.xulG) { window.xulG = {}; }
+        if (window.xulG._data) { return window.xulG._data; }
+
         JSAN.use('util.error'); this.error = new util.error();
         JSAN.use('util.network'); this.network = new util.network();
     } catch(E) {
@@ -11,6 +15,7 @@ OpenILS.data = function () {
         throw(E);
     }
 
+    window.xulG._data = this;
     return this;
 }
 
@@ -231,10 +236,6 @@ OpenILS.data.prototype = {
                 this.error.sdump('D_DATA_RETRIEVE','Retrieving ' + i + ' : ' + dc[i] + '\n');
                 this[i] = dc[i];
             }
-            if (typeof this.on_complete == 'function') {
-
-                this.on_complete();
-            }
         } catch(E) {
             this.error.sdump('D_ERROR','Error in OpenILS.data._debug_stash(): ' + js2JSON(E) );
         }
index a860fe1..b7d9e79 100644 (file)
@@ -11,6 +11,7 @@ main.menu = function () {
     JSAN.use('util.error'); this.error = new util.error();
     JSAN.use('util.window'); this.window = new util.window();
     JSAN.use('util.sound'); this.sound = new util.sound();
+    JSAN.use('OpenILS.data'); this.data = new OpenILS.data(); this.data.init({'via':'stash'});
 
     this.w = window;
     var x = document.getElementById('network_progress');
@@ -62,8 +63,6 @@ main.menu.prototype = {
 
         var obj = this;
 
-        JSAN.use('OpenILS.data'); obj.data = new OpenILS.data(); obj.data.init({'via':'stash'});
-
         var button_bar = String( obj.data.hash.aous['ui.general.button_bar'] ) == 'true';
         if (button_bar) {
             var x = document.getElementById('main_toolbar');
@@ -1483,6 +1482,7 @@ main.menu.prototype = {
         };
         content_params.chrome_xulG = xulG;
         content_params._sound = xulG._sound;
+        content_params._data = xulG._data;
         if (params && params.tab_name) content_params.set_tab_name( params.tab_name );
         
         var frame;
index 040f510..e82eaec 100644 (file)
             g.data.on_complete = function () {
 
                 try {
-
+                    g.data.on_complete = null;
                     g.data.stash('list','hash','tree','temp');
 
                     g.data._debug_stash();