]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/xul/staff_client/server/admin/printer_settings.js
LP#838969 Silent print cannot be unselected
[working/Evergreen.git] / Open-ILS / xul / staff_client / server / admin / printer_settings.js
1 var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true; var g = {};
2
3 function my_init() {
4     try {
5         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
6                 if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
7         JSAN.errorLevel = "die"; // none, warn, or die
8         JSAN.addRepository('/xul/server/');
9         JSAN.use('util.error'); g.error = new util.error();
10         g.error.sdump('D_TRACE','my_init() for printer_settings.xul');
11
12         g.set_printer_context();
13
14         g.prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces['nsIPrefBranch']);
15
16         var print_silent_pref = false;
17         if (g.prefs.prefHasUserValue('print.always_print_silent')) {
18             print_silent_pref = g.prefs.getBoolPref('print.always_print_silent');
19         }
20         var x = document.getElementById('print_silent');
21         x.checked = print_silent_pref;
22
23         /*
24         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
25         g.PSSVC = Components.classes["@mozilla.org/gfx/printsettings-service;1"].getService(Components.interfaces.nsIPrintSettingsService);
26         g.PO = Components.classes["@mozilla.org/gfx/printsettings-service;1"].getService(Components.interfaces.nsIPrintOptions);
27         g.PPSVC = Components.classes["@mozilla.org/embedcomp/printingprompt-service;1"].getService(Components.interfaces.nsIPrintingPromptService);
28         g.settings = g.PSSVC.globalPrintSettings;
29         */
30
31     } catch(E) {
32         try { g.error.standard_unexpected_error_dialog('admin/printer_settings.xul',E); } catch(F) { alert(E); }
33     }
34 }
35
36 g.toggle_silent_print = function() {
37     var x = document.getElementById('print_silent');
38     netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
39     if (x.checked) {
40         g.prefs.setBoolPref('print.always_print_silent', true);
41         dump('Setting print.always_print_silent to true\n');
42     } else {
43         // Setting print.always_print_silent to false is not the same as clearing it, since a false here will prevent
44         // gPrintSettings.printSilent = true from working when fed to webBrowserPrint
45         if (g.prefs.prefHasUserValue('print.always_print_silent')) {
46             g.prefs.clearUserPref('print.always_print_silent');
47         }
48         dump('Clearing print.always_print_silent\n');
49     }
50 }
51
52 g.set_printer_context = function(context) {
53     g.context = context || 'default';
54     JSAN.use('util.print'); g.print = new util.print(g.context);
55 }
56
57 g.page_settings = function() {
58     netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
59     g.print.page_settings();
60     g.print.save_settings();
61 }
62
63 g.printer_settings = function() {
64     netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
65     var print_silent_pref = false;
66     if (g.prefs.prefHasUserValue('print.always_print_silent')) {
67         print_silent_pref = g.prefs.getBoolPref('print.always_print_silent');
68     }
69     g.prefs.setBoolPref('print.always_print_silent', false);
70     g.prefs.clearUserPref('print.always_print_silent');
71     var w = get_contentWindow(document.getElementById('sample'));
72     g.print.NSPrint(w ? w : window, false, {});
73     g.print.save_settings();
74     if (print_silent_pref) {
75         g.prefs.setBoolPref('print.always_print_silent', true);
76     }
77 }
78
79 g.set_print_strategy = function(which) {
80     netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
81     if (which == 'custom.print') {
82         var key = 'oils.printer.external.cmd.' + g.context;
83         var has_key = g.prefs.prefHasUserValue(key);
84         var value = has_key ? g.prefs.getCharPref(key) : '';
85         var cmd = window.prompt(
86             document.getElementById('offlineStrings').getString('printing.prompt_for_external_print_cmd'),
87             value
88         );
89         if (!cmd) { return; }
90         g.prefs.setCharPref(key,cmd);
91     }
92     JSAN.use('util.file'); var file = new util.file('print_strategy.' + g.context);
93     file.write_content( 'truncate', String( which ) );
94     file.close();
95     JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.init({'via':'stash'});
96     if (!data.print_strategy) {
97         data.print_strategy = {};
98     }
99     data.print_strategy[g.context] = which;
100     data.stash('print_strategy');
101     alert(
102         document.getElementById('offlineStrings').getFormattedString('printing.print_strategy_saved',[which,g.context])
103     );
104 }
105
106 g.save_settings = function() { g.print.save_settings(); }