g.bill_list.print(params);
}
+// Temporarily override the forced silent print option for lost &
+// paid receipts where we /always/ want to show the print dialog.
+// Returns true if silent printing is enabled.
+function disable_silent_print() {
+ 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');
+ }
+
+ return silentPrintApplied;
+}
+
+function enable_silent_print() {
+ var prefs = Components.classes['@mozilla.org/preferences-service;1']
+ .getService(Components.interfaces['nsIPrefBranch']);
+
+ prefs.setBoolPref('print.always_print_silent', true);
+}
+
function handle_printlostpaid() {
var selected = g.bill_list.dump_selected_with_keys(0);
var xact_ids = selected.map(function(sel) { return sel.mbts_id });
+ var silentPrintApplied = disable_silent_print();
+
for (var i = 0; i < xact_ids.length; i++) {
xact_id = xact_ids[i];
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);
- });
- }
+ if (silentPrintApplied) {
+ // Re-apply the silent print preference after the
+ // current thread is done.
+ setTimeout(enable_silent_print, 200);
}
}
}
function print_refundable_payments_receipt(mrp_ids) {
+
+ var silentPrintApplied = disable_silent_print();
+
for (var i = 0; i < mrp_ids.length; i++) {
mrp_id = mrp_ids[0];
var receipt = g.network.request(
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);
- });
- }
+ if (silentPrintApplied) {
+ // Re-apply the silent print preference after the
+ // current thread is done.
+ setTimeout(enable_silent_print, 200);
}
}
+
function refresh(params) {
try {
if (g.safe_for_refresh) {
var selected = g.payments_list.dump_selected_with_keys(0);
var pay_ids = selected.map(function(sel) { return sel.mp_id });
+ // 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');
+ }
+
for (var i = 0; i < pay_ids.length; i++) {
pay_id = pay_ids[i];
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);
- });
- }
+ if (silentPrintApplied) {
+ // Re-apply the silent print preference after the
+ // current thread is done.
+ setTimeout(function() {
+ prefs.setBoolPref('print.always_print_silent', true);
+ }, 200);
}
}