From 1192eaa5f6695244b45a08aa31e7f9a0fc0e673f Mon Sep 17 00:00:00 2001
From: Kyle M Hall <kyle@bywatersolutions.com>
Date: Mon, 5 Nov 2012 12:22:24 -0500
Subject: [PATCH] [SIGNED-OFF] Bug 9009 - Add separate user js and css for SCO module
Content-Type: text/plain; charset="utf-8"

Add system preferences SCOUserCSS and SCOUserJS to define separate CSS and JavaScript for the Self Checkout Module.

Test plan:
1) Apply patch
2) Run updatedatabase.pl
3) Add something arbitrary to the new sysprefs SCOUserCSS and SCOUserJS ( such as TestCSS and TestJS ).
4) Load the SCO module in a browser, and view the HTML, verify the CSS and JS values in the system preferences have been included.

Signed-off-by: Marc Veron <veron@veron.ch>

I tested with an alert('hello') as JavaScript and some background-color for the CSS. Worked as expected.
---
 installer/data/mysql/sysprefs.sql                  |    2 ++
 installer/data/mysql/updatedatabase.pl             |    8 ++++++++
 .../en/modules/admin/preferences/circulation.pref  |   10 ++++++++++
 koha-tmpl/opac-tmpl/prog/en/modules/sco/help.tt    |    3 +++
 koha-tmpl/opac-tmpl/prog/en/modules/sco/receipt.tt |    2 ++
 .../opac-tmpl/prog/en/modules/sco/sco-main.tt      |    3 ++-
 opac/sco/help.pl                                   |    5 +++++
 opac/sco/sco-main.pl                               |    5 +++++
 8 files changed, 37 insertions(+), 1 deletions(-)

diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql
index 0cc5a54..e63dc0b 100644
--- a/installer/data/mysql/sysprefs.sql
+++ b/installer/data/mysql/sysprefs.sql
@@ -388,3 +388,5 @@ INSERT INTO systempreferences (variable, value, options, explanation, type) VALU
 INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('HoldsToPullStartDate','2','Set the default start date for the Holds to pull list to this many days ago',NULL,'Integer');
 INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('alphabet','A B C D E F G H I J K L M N O P Q R S T U V W X Y Z','Alphabet than can be expanded into browse links, e.g. on Home > Patrons',NULL,'free');
 INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('RefundLostItemFeeOnReturn', '1', 'If enabled, the lost item fee charged to a borrower will be refunded when the lost item is returned.', NULL, 'YesNo');
+INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ('SCOUserCSS', '', NULL, 'Add CSS to be included in the SCO module in an embedded <style> tag.', 'free');
+INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ('SCOUserJS', '', NULL, 'Define custom javascript for inclusion in the SCO module', 'free');
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index a6af263..9812653 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -6114,6 +6114,14 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
     SetVersion($DBversion);
 }
 
+$DBversion = "3.09.00.XXX";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+   $dbh->do("INSERT INTO systempreferences ( variable, value, explanation, type ) VALUES ( 'SCOUserCSS', '', 'Add CSS to be included in the SCO module in an embedded <style> tag.', 'free' )");
+   $dbh->do("INSERT INTO systempreferences ( variable, value, explanation, type ) VALUES ( 'SCOUserJS', '', 'Define custom javascript for inclusion in the SCO module', 'free' )");
+   print "Upgrade to $DBversion done (Add SCOUserCSS and SCOUserJS  sysprefs)\n";
+   SetVersion ($DBversion);
+}
+
 =head1 FUNCTIONS
 
 =head2 TableExists($table)
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
index c188d80..8a166af 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
@@ -460,6 +460,16 @@ Circulation:
             - lost item fees charged to a borrower when the lost item is returned.
     Self Checkout:
         -
+            - "Include the following JavaScript on all pages in the web-based self checkout:"
+            - pref: SCOUserJS
+              type: textarea
+              class: code
+        -
+            - "Include the following CSS on all pages in the web-based self checkout:"
+            - pref: SCOUserCSS
+              type: textarea
+              class: code
+        -
             - pref: ShowPatronImageInWebBasedSelfCheck
               choices:
                   yes: Show
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/sco/help.tt b/koha-tmpl/opac-tmpl/prog/en/modules/sco/help.tt
index 32b4f56..f2fa3a9 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/sco/help.tt
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/sco/help.tt
@@ -6,6 +6,9 @@
 <link rel="stylesheet" type="text/css" href="[% yuipath %]/reset-fonts-grids.css" />
 <link rel="stylesheet" type="text/css" href="[% yuipath %]/skin.css" />
 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/sco.css" />
+[% IF ( SCOUserCSS ) %]<style type="text/css">[% SCOUserCSS %]</style>[% END %]
+
+[% IF ( SCOUserJS ) %]<script type="text/javascript">[% SCOUserJS %]</script>[% END %]
 </head>
 <body>
 <div id="doc" class="yui-t7">
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/sco/receipt.tt b/koha-tmpl/opac-tmpl/prog/en/modules/sco/receipt.tt
index 8178412..7e363d2 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/sco/receipt.tt
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/sco/receipt.tt
@@ -26,6 +26,8 @@ function closeNow()
 }
 </script> 
 
+[% IF ( SCOUserCSS ) %]<style type="text/css">[% SCOUserCSS %]</style>[% END %]
+[% IF ( SCOUserJS ) %]<script type="text/javascript">[% SCOUserJS %]</script>[% END %]
 
 </head>
 
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/sco/sco-main.tt b/koha-tmpl/opac-tmpl/prog/en/modules/sco/sco-main.tt
index 66cace5..0366df9 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/sco/sco-main.tt
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/sco/sco-main.tt
@@ -95,12 +95,13 @@ $(document).ready(function() {
 
 </script>
 [% IF ( opacuserjs ) %]<script type="text/javascript">[% opacuserjs %]</script>[% END %]
-
+[% IF ( SCOUserJS ) %]<script type="text/javascript">[% SCOUserJS %]</script>[% END %]
 
 <link rel="stylesheet" type="text/css" href="[% yuipath %]/reset-fonts-grids.css" />
 <link rel="stylesheet" type="text/css" href="[% yuipath %]/skin.css" />
 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/sco.css" />
 [% IF ( OPACUserCSS ) %]<style type="text/css">[% OPACUserCSS %]</style>[% END %]
+[% IF ( SCOUserCSS ) %]<style type="text/css">[% SCOUserCSS %]</style>[% END %]
 
 </head>
 <body onload="dofocus();">
diff --git a/opac/sco/help.pl b/opac/sco/help.pl
index b3f4398..abcb396 100755
--- a/opac/sco/help.pl
+++ b/opac/sco/help.pl
@@ -52,5 +52,10 @@ if (C4::Context->preference('SelfCheckHelpMessage')) {
     $template->param(SelfCheckHelpMessage => C4::Context->preference('SelfCheckHelpMessage'));
 }
 
+$template->param(
+    SCOUserJS  => C4::Context->preference('SCOUserJS'),
+    SCOUserCSS => C4::Context->preference('SCOUserCSS'),
+);
+
 output_html_with_http_headers $query, $cookie, $template->output;
 
diff --git a/opac/sco/sco-main.pl b/opac/sco/sco-main.pl
index 26a8774..58ac2c6 100755
--- a/opac/sco/sco-main.pl
+++ b/opac/sco/sco-main.pl
@@ -263,4 +263,9 @@ if ($borrower->{cardnumber}) {
     );
 }
 
+$template->param(
+    SCOUserJS  => C4::Context->preference('SCOUserJS'),
+    SCOUserCSS => C4::Context->preference('SCOUserCSS'),
+);
+
 output_html_with_http_headers $query, $cookie, $template->output;
-- 
1.7.2.5