From e9d6d89fcb95ac94e3f6dbb52415fd37ea6d7219 Mon Sep 17 00:00:00 2001
From: Paul Poulain <paul.poulain@biblibre.com>
Date: Wed, 27 Jun 2012 16:56:08 +0200
Subject: [PATCH] [REBASED] Bug 7563 [ENH] - Silent print slips using Firefox PlugIn jsPrintSetup and new staff client preference
Content-Type: text/plain; charset="utf-8"

(Rebased to Koha version: 3.09.00.018)
---
 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 ++++++++----
 kohaversion.pl                                     |    2 +-
 members/printslip.pl                               |    2 ++
 6 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql
index 6c6d91b..9900de9 100644
--- a/installer/data/mysql/sysprefs.sql
+++ b/installer/data/mysql/sysprefs.sql
@@ -371,3 +371,4 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('
 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 <a href="http://www.loc.gov/marc/languages/language_code.html">MARC Code List for Languages</a>)','','Free');
 INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OPACShowBarcode','0','Show items barcode in holding tab','','YesNo');
+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 a0fafb5..bd09e44 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -5392,7 +5392,8 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
     SetVersion ($DBversion);
 }
 
-$DBversion = "XXX";
+<<<<<<< HEAD
+$DBversion = "3.09.00.018";
 if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
     $dbh->do("DROP TABLE IF EXISTS aqbudgetborrowers");
     $dbh->do("
@@ -5413,6 +5414,12 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
         VALUES (11, 'budget_manage_all', 'Manage all budgets')
     ");
     print "Upgrade to $DBversion done (Add aqbudgetborrowers table)\n";
+=======
+$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";
+>>>>>>> Bug 7563 [ENH] - Silent print slips using Firefox PlugIn jsPrintSetup and new staff client preference
     SetVersion($DBversion);
 }
 
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 <code>http://</code>.)
         -
+            - "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 %]
 
 <script language="javascript">
-    function printThenClose() {
-        window.print();
-        window.close();
-    }
+[% IF ( IntranetSlipPrinterJS ) %]
+    [% IntranetSlipPrinterJS %]
+[% ELSE %]
+     function printThenClose() {
+         window.print();
+         window.close();
+     }
+[% END %]
 </script>
 </head>
 <body id="circ_printslip" class="circ" onload="printThenClose();">
diff --git a/kohaversion.pl b/kohaversion.pl
index 07c5fb2..6bea4f7 100644
--- a/kohaversion.pl
+++ b/kohaversion.pl
@@ -16,7 +16,7 @@ the kohaversion is divided in 4 parts :
 use strict;
 
 sub kohaversion {
-    our $VERSION = '3.09.00.017';
+    our $VERSION = '3.09.00.018';
     # version needs to be set this way
     # so that it can be picked up by Makefile.PL
     # during install
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