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)
committerChris Sharp <csharp@georgialibraries.org>
Thu, 17 Oct 2013 18:20:49 +0000 (14:20 -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>
Open-ILS/xul/staff_client/chrome/content/main/menu.js

index d9db611..402b13f 100644 (file)
@@ -1683,6 +1683,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);
         }