From bf81fd1505d9d45dbbf8f0924973cd495057d571 Mon Sep 17 00:00:00 2001 From: Marc Veron Date: Fri, 8 Jun 2012 12:58:35 +0200 Subject: [PATCH] Bug 7563 [ENH] - Silent print slips using Firefox PlugIn jsPrintSetup and new staff client preference Content-Type: text/plain; charset="utf-8" Configure slip printers to print slips (silently) to a special printer using the Firefox PlugIn jsPrintSetUp. All other print actions are not affected. See http://jsprintsetup.mozdev.org/ for all the possibilities (e.g. change header/footer, get a list of printers, set printer etc.). The overall concept is to have a new staff client preference (IntranetSlipPrinterJS) where one can enter the necessary JavaScript. If the preference is empty, Koha falls back to te default behaviour. An example of JavaScript can be found on: http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=7563 --- installer/data/mysql/sysprefs.sql | 1 + installer/data/mysql/updatedatabase.pl | 9 +++++++-- .../en/modules/admin/preferences/staff_client.pref | 5 +++++ .../prog/en/modules/circ/printslip.tt | 12 ++++++++---- members/printslip.pl | 2 ++ 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index c4060fe..c330e13 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -369,3 +369,4 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES(' INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('SuspendHoldsIntranet', '1', NULL , 'Allow holds to be suspended from the intranet.', 'YesNo'); INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('SuspendHoldsOpac', '1', NULL , 'Allow holds to be suspended from the OPAC.', 'YesNo'); INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('DefaultLanguageField008','','Fill in the default language for field 008 Range 35-37 (e.g. eng, nor, ger, see MARC Code List for Languages)','','Free'); +INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('IntranetSlipPrinterJS','','Use this JavaScript for printing slips. Define at least function printThenClose(). For use e.g. with Firefox PlugIn jsPrintSetup, see http://jsprintsetup.mozdev.org/','','Free'); diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 62b4372..9529571 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -5333,8 +5333,6 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('SuspendHoldsIntranet', '1', NULL , 'Allow holds to be suspended from the intranet.', 'YesNo')"); $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('SuspendHoldsOpac', '1', NULL , 'Allow holds to be suspended from the OPAC.', 'YesNo')"); print "Upgrade to $DBversion done (Add system preference OpacBrowseResults ))\n"; - SetVersion($DBversion); -} $DBversion ="3.09.00.013"; if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { @@ -5343,6 +5341,13 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { SetVersion($DBversion); } +$DBversion ="XXX"; +if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { + $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('IntranetSlipPrinterJS','','Use this JavaScript for printing slips. Define at least function printThenClose(). For use e.g. with Firefox PlugIn jsPrintSetup, see http://jsprintsetup.mozdev.org/','','Free')"); + print "Upgrade to $DBversion done (Add system preference IntranetSlipPrinterJS))\n"; + SetVersion($DBversion); +} + =head1 FUNCTIONS =head2 TableExists($table) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref index b93f8fd..b6be289 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_client.pref @@ -16,6 +16,11 @@ Staff Client: class: url - on all pages in the staff interface, instead of the default. (This should be a complete URL, starting with http://.) - + - "Use the following JavaScript for printing slips. Define at least function printThenClose(). For use e.g. with Firefox PlugIn jsPrintSetup, see http://jsprintsetup.mozdev.org/:" + - pref: IntranetSlipPrinterJS + type: textarea + class: code + - - "Include the following CSS on all pages in the staff client:" - pref: IntranetUserCSS type: textarea diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt index 3e60d73..7b29d4e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt @@ -8,10 +8,14 @@ [% END %] diff --git a/members/printslip.pl b/members/printslip.pl index 3a499cd..71fdda2 100755 --- a/members/printslip.pl +++ b/members/printslip.pl @@ -89,4 +89,6 @@ $template->param( error => $error, ); +$template->param( IntranetSlipPrinterJS => C4::Context->preference('IntranetSlipPrinterJS' ) ); + output_html_with_http_headers $input, $cookie, $template->output; -- 1.7.2.5