1 var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true; var g = {};
5 if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
6 JSAN.errorLevel = "die"; // none, warn, or die
7 JSAN.addRepository('/xul/server/');
8 JSAN.use('util.error'); g.error = new util.error();
9 g.error.sdump('D_TRACE','my_init() for printer_settings.xul');
11 g.set_printer_context();
13 g.prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces['nsIPrefBranch']);
15 var print_silent_pref = false;
16 if (g.prefs.prefHasUserValue('print.always_print_silent')) {
17 print_silent_pref = g.prefs.getBoolPref('print.always_print_silent');
19 var x = document.getElementById('print_silent');
20 x.checked = print_silent_pref;
23 g.PSSVC = Components.classes["@mozilla.org/gfx/printsettings-service;1"].getService(Components.interfaces.nsIPrintSettingsService);
24 g.PO = Components.classes["@mozilla.org/gfx/printsettings-service;1"].getService(Components.interfaces.nsIPrintOptions);
25 g.PPSVC = Components.classes["@mozilla.org/embedcomp/printingprompt-service;1"].getService(Components.interfaces.nsIPrintingPromptService);
26 g.settings = g.PSSVC.globalPrintSettings;
30 try { g.error.standard_unexpected_error_dialog('admin/printer_settings.xul',E); } catch(F) { alert(E); }
34 g.toggle_silent_print = function() {
35 var x = document.getElementById('print_silent');
37 g.prefs.setBoolPref('print.always_print_silent', true);
38 dump('Setting print.always_print_silent to true\n');
40 // Setting print.always_print_silent to false is not the same as clearing it, since a false here will prevent
41 // gPrintSettings.printSilent = true from working when fed to webBrowserPrint
42 if (g.prefs.prefHasUserValue('print.always_print_silent')) {
43 g.prefs.clearUserPref('print.always_print_silent');
45 dump('Clearing print.always_print_silent\n');
49 g.set_printer_context = function(context) {
50 g.context = context || 'default';
51 JSAN.use('util.print'); g.print = new util.print(g.context);
54 g.page_settings = function() {
55 g.print.page_settings();
56 g.print.save_settings();
59 g.printer_settings = function() {
60 var print_silent_pref = false;
61 if (g.prefs.prefHasUserValue('print.always_print_silent')) {
62 print_silent_pref = g.prefs.getBoolPref('print.always_print_silent');
64 g.prefs.setBoolPref('print.always_print_silent', false);
65 g.prefs.clearUserPref('print.always_print_silent');
66 var w = get_contentWindow(document.getElementById('sample'));
67 g.print.NSPrint(w ? w : window, false, {});
68 g.print.save_settings();
69 if (print_silent_pref) {
70 g.prefs.setBoolPref('print.always_print_silent', true);
74 g.set_print_strategy = function(which) {
75 if (which == 'custom.print') {
76 var key = 'oils.printer.external.cmd.' + g.context;
77 var has_key = g.prefs.prefHasUserValue(key);
78 var value = has_key ? g.prefs.getCharPref(key) : '';
79 var cmd = window.prompt(
80 document.getElementById('offlineStrings').getString('printing.prompt_for_external_print_cmd'),
84 g.prefs.setCharPref(key,cmd);
86 JSAN.use('util.file'); var file = new util.file('print_strategy.' + g.context);
87 file.write_content( 'truncate', String( which ) );
89 JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.init({'via':'stash'});
90 if (!data.print_strategy) {
91 data.print_strategy = {};
93 data.print_strategy[g.context] = which;
94 data.stash('print_strategy');
96 document.getElementById('offlineStrings').getFormattedString('printing.print_strategy_saved',[which,g.context])
100 g.save_settings = function() { g.print.save_settings(); }