LP#1086458: define custom event for refreshing the checkout page
authorGalen Charlton <gmc@esilibrary.com>
Thu, 26 Sep 2013 20:05:26 +0000 (13:05 -0700)
committerDan Wells <dbw2@calvin.edu>
Tue, 15 Oct 2013 20:46:08 +0000 (16:46 -0400)
Using a custom event handled by a chrome event handler rather
than calling xulG.set_tab() directly avoids any possibility of
leaking objects and executation contexts from the code that's
requesting refresh of the checkout page.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Open-ILS/xul/staff_client/chrome/content/main/menu.js

index 2f16bfd..37d92aa 100644 (file)
@@ -1780,6 +1780,20 @@ main.menu.prototype = {
 
         obj.sort_menu(document.getElementById('main.menu.admin'), true);
 
+        document.addEventListener(
+            'refresh_checkout',
+            function() {
+                try {
+                    obj.set_tab(obj.url_prefix('XUL_PATRON_BARCODE_ENTRY'),{},{});
+                } catch(E) {
+                    obj.error.sdump('D_ERROR','tab_refresh_checkout_handler: ' + js2JSON(E));
+                }
+            }
+            ,
+            false,
+            true
+        );
+
         if(params['firstURL']) {
             obj.new_tab(params['firstURL'],{'focus':true},null);
         }