JBAS-2101 Lost/paid show dialog on re-prints
authorBill Erickson <berickxx@gmail.com>
Thu, 8 Nov 2018 19:43:54 +0000 (14:43 -0500)
committerBill Erickson <berickxx@gmail.com>
Thu, 21 Mar 2019 19:46:23 +0000 (15:46 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/xul/staff_client/server/patron/bill2.js
Open-ILS/xul/staff_client/server/patron/bill_history.js

index 243ea9c..fe8b696 100644 (file)
@@ -937,10 +937,33 @@ function handle_printlostpaid() {
         JSAN.use('util.print'); 
         var print = new util.print('default');
 
+        // Temporarily override the forced silent print option for lost &
+        // paid receipts where we /always/ want to show the print dialog.
+        var prefs = Components.classes['@mozilla.org/preferences-service;1']
+            .getService(Components.interfaces['nsIPrefBranch']);
+
+        var silentPrintApplied = (
+            prefs.prefHasUserValue('print.always_print_silent')
+            && prefs.getBoolPref('print.always_print_silent')
+        );
+
+        if (silentPrintApplied) {
+            // Note setting the value to 'false' does not work.
+            prefs.clearUserPref('print.always_print_silent');
+        }
+
         print.simple(html , {
             no_prompt: false,
             content_type: 'text/html'
         });
+
+        if (silentPrintApplied) {
+            // Re-apply the silent print preference after the
+            // current thread is done.
+            setTimeout(function() {
+                prefs.setBoolPref('print.always_print_silent', true);
+            });
+        }
     }
 }
 
index 248eee1..3bd9421 100644 (file)
@@ -440,10 +440,33 @@ function print_lostpaid_from_history() {
         JSAN.use('util.print'); 
         var print = new util.print('default');
 
+        // Temporarily override the forced silent print option for lost &
+        // paid receipts where we /always/ want to show the print dialog.
+        var prefs = Components.classes['@mozilla.org/preferences-service;1']
+            .getService(Components.interfaces['nsIPrefBranch']);
+
+        var silentPrintApplied = (
+            prefs.prefHasUserValue('print.always_print_silent')
+            && prefs.getBoolPref('print.always_print_silent')
+        );
+
+        if (silentPrintApplied) {
+            // Note setting the value to 'false' does not work.
+            prefs.clearUserPref('print.always_print_silent');
+        }
+
         print.simple(html , {
             no_prompt: false, // always prompt for lost payment receipts
             content_type: 'text/html'
         });
+
+        if (silentPrintApplied) {
+            // Re-apply the silent print preference after the
+            // current thread is done.
+            setTimeout(function() {
+                prefs.setBoolPref('print.always_print_silent', true);
+            });
+        }
     }
 }