[Koha-patches] [PATCH] Bug 11014 - Slip Print Problem in Chrome

David Cook dcook at prosentient.com.au
Wed May 21 05:36:50 CEST 2014


Currently, slips cannot be printed in circulation, members, or the
self check out when using Chrome.

This patch adds a timer of 1ms which allows Chrome's custom code to
prevent "window.close" occuring before the user has dealt with the
print window.

This patch also allows admins to use the 'IntranetSlipPrinterJS'
system preference to override the slip printing code by centralizing
all the slip printing code in slip-print.inc, and including this JS
anywhere it's needed in the staff client.

I haven't used this include in the OPAC SCO but perhaps it would make
sense to do so as well (even if it isn't referred to in the syspref's
name).

_TEST PLAN_
1) Using Chrome on Windows (not sure if this is an issue on other OSes),
try to print a slip in the following locations:

Fines Tab -> Print button
koha-tmpl/intranet-tmpl/prog/en/modules/members/printfeercpt.tt:

Details tab -> Print button -> Print slip || Print quick slip
koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember-receipt.tt:

Details tab -> Print button -> Print summary
koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember-print.tt:

Fines tab -> Accounts tab -> Print (Manual invoice of $5 sundry)
koha-tmpl/intranet-tmpl/prog/en/modules/members/printinvoice.tt:

Checkout tab -> Print button
koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt:

Finish button
koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/printslip.tt

2) Note that each time you try to print, a new print page is created
but closed before you have a chance to print.

3) Apply the patch

4) Repeat Step 1

5) Note that the print page now doesn't close until after you've
chosen to print or cancel.
---
 .../intranet-tmpl/prog/en/includes/slip-print.inc  |   10 ++++++++++
 .../prog/en/modules/circ/printslip.tt              |   11 +----------
 .../prog/en/modules/members/moremember-print.tt    |    8 ++------
 .../prog/en/modules/members/moremember-receipt.tt  |    8 ++------
 .../prog/en/modules/members/printfeercpt.tt        |    8 ++------
 .../prog/en/modules/members/printinvoice.tt        |    8 ++------
 .../bootstrap/en/modules/sco/printslip.tt          |    2 +-
 7 files changed, 20 insertions(+), 35 deletions(-)
 create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/slip-print.inc

diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/slip-print.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/slip-print.inc
new file mode 100644
index 0000000..413f4bb
--- /dev/null
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/slip-print.inc
@@ -0,0 +1,10 @@
+<script type="text/javascript">
+[% IF ( Koha.Preference('IntranetSlipPrinterJS') ) %]
+    [% Koha.Preference('IntranetSlipPrinterJS') %]
+[% ELSE %]
+    function printThenClose() {
+        window.print();
+        setTimeout('window.close()', 1);
+    }
+[% END %]
+</script>
\ No newline at end of file
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 7dc5b81..8e2b25b 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt
@@ -8,16 +8,7 @@
 <link rel="stylesheet" type="text/css" href="[% stylesheet %]" />
 [% END %]
 
-<script type="text/javascript">
-[% IF ( Koha.Preference('IntranetSlipPrinterJS') ) %]
-    [% Koha.Preference('IntranetSlipPrinterJS') %]
-[% ELSE %]
-     function printThenClose() {
-         window.print();
-         window.close();
-     }
-[% END %]
-</script>
+[% INCLUDE 'slip-print.inc' #printThenClose %]
 </head>
 <body id="circ_printslip" class="circ" onload="printThenClose();">
 <div id="receipt">
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember-print.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember-print.tt
index eee5aef..4c71072 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember-print.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember-print.tt
@@ -1,15 +1,11 @@
+[% USE Koha %]
 [% USE KohaDates %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Summary for [% firstname %] [% surname %] ([% cardnumber %])</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <link rel="shortcut icon" href="[% IF ( IntranetFavicon ) %][% IntranetFavicon %][% ELSE %][% interface %]/[% theme %]/img/favicon.ico[% END %]" type="image/x-icon" />
 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/print.css" />
-<script type="text/javascript">
-    function printThenClose() {
-        window.print();
-        window.close();
-    }
-</script>
+[% INCLUDE 'slip-print.inc' #printThenClose %]
 <body id="pat_moremember-print" class="pat" onload="printThenClose();">
 
 </head>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember-receipt.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember-receipt.tt
index 80d3dc0..c7d67a1 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember-receipt.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember-receipt.tt
@@ -1,15 +1,11 @@
+[% USE Koha %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Print Receipt for [% cardnumber %]</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <link rel="shortcut icon" href="[% IF ( IntranetFavicon ) %][% IntranetFavicon %][% ELSE %][% interface %]/[% theme %]/img/favicon.ico[% END %]" type="image/x-icon" />
  <link rel="stylesheet" type="text/css" href="[% themelang %]/css/print.css" />
 
-<script type="text/javascript">
-    function printThenClose() {
-        window.print();
-        window.close();
-    }
-</script>
+[% INCLUDE 'slip-print.inc' #printThenClose %]
 </head>
 <body id="pat_moremember-receipt" class="pat" onload="printThenClose();">
 
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/printfeercpt.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/printfeercpt.tt
index 26be3f4..64bbf35 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/printfeercpt.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/printfeercpt.tt
@@ -1,14 +1,10 @@
+[% USE Koha %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Print Receipt for [% cardnumber %]</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <link rel="shortcut icon" href="[% IF ( IntranetFavicon ) %][% IntranetFavicon %][% ELSE %][% interface %]/[% theme %]/img/favicon.ico[% END %]" type="image/x-icon" />
 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/printreceiptinvoice.css" />
-<script type="text/javascript">
-    function printThenClose() {
-        window.print();
-        window.close();
-    }
-</script>
+[% INCLUDE 'slip-print.inc' #printThenClose %]
 </head>
 <body id="pat_printfeercpt" class="pat" onload="printThenClose();">
 
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/printinvoice.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/printinvoice.tt
index 8a19918..29e64da 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/printinvoice.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/printinvoice.tt
@@ -1,14 +1,10 @@
+[% USE Koha %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Print Receipt for [% cardnumber %]</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <link rel="shortcut icon" href="[% IF ( IntranetFavicon ) %][% IntranetFavicon %][% ELSE %][% interface %]/[% theme %]/img/favicon.ico[% END %]" type="image/x-icon" />
 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/printreceiptinvoice.css" />
-<script type="text/javascript">
-    function printThenClose() {
-        window.print();
-        window.close();
-    }
-</script>
+[% INCLUDE 'slip-print.inc' #printThenClose %]
 </head>
 <body id="printinvoice" class="pat" onload="printThenClose();">
 
diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/printslip.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/printslip.tt
index 224c916..8ad25ac 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/printslip.tt
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/printslip.tt
@@ -23,7 +23,7 @@
 <script language="javascript">
     function printThenClose() {
         window.print();
-        window.close();
+        setTimeout('window.close()', 1);
     }
 </script>
 </body>
-- 
1.7.7.4




More information about the Koha-patches mailing list