From 451b2c9a211cd8b114fca5f1572d6b8ed5805e83 Mon Sep 17 00:00:00 2001
From: Mark Tompsett <mtompset@hotmail.com>
Date: Thu, 26 Oct 2017 11:41:34 -0400
Subject: [PATCH] Bug 11976: Counter patch using Column Settings

As per Nick Clemen's suggestion from comment #6,
system preferences may not be the best way.

Using Home->Administration->Column Settings->OPAC->subscriptionst
the fields visibility can be toggled.

TEST PLAN
---------
1) Have a subscription where you have received at least once.
2) Look for it in OPAC and note the date is the received date, not the publication date
3) Apply patch
4) Log in to staff client
5) Home->Administration->Column Settings->OPAC->subscriptionst
6) Set visibility as desired.
7) Refresh OPAC page
   -- everything should be as expected.
8) run koha qa test tools.

Signed-off-by: David Bourgault <david.bourgault@inlibro.com>

Signed-off-by: Alex Arnaud <alex.arnaud@biblibre.com>
---
 admin/columns_settings.yml                         | 11 +++++++
 .../opac-tmpl/bootstrap/en/modules/opac-detail.tt  | 35 ++++++++++++++++------
 2 files changed, 37 insertions(+), 9 deletions(-)

diff --git a/admin/columns_settings.yml b/admin/columns_settings.yml
index 951a564..61fa864 100644
--- a/admin/columns_settings.yml
+++ b/admin/columns_settings.yml
@@ -481,3 +481,14 @@ modules:
         -
           columnname: item_coursereserves
 
+      subscriptionst:
+        -
+          columnname: serial_serialseq
+        -
+          columnname: serial_publisheddate
+        -
+          columnname: serial_planneddate
+        -
+          columnname: serial_status
+        -
+          columnname: serial_notes
diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt
index e87d152..2ab6041 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt
@@ -844,18 +844,23 @@
                                 [% END %]
                                 [% IF ( subscription.latestserials ) %]
                                     <p class="subscription_latestissues"> The [% subscription.opacdisplaycount %] latest issues for this subscription:</p>
-                                    <table class="table table-bordered table-striped">
+                                    <table class="table table-bordered table-striped" id="subscriptionst">
+                                        <thead>
                                         <tr>
-                                            <th>Issue #</th>
-                                            <th>Date</th>
-                                            <th>Status</th>
-                                            <th>Note</th>
+                                            <th id="serial_serialseq" data-colname="serial_serialseq" class="serialseq">Issue #</th>
+                                            <th id="serial_publisheddate" data-colname="serial_publisheddate" class="publisheddate">Publication date</th>
+                                            <th id="serial_planneddate" data-colname="serial_planneddate" class="planneddate">Received date</th>
+                                            <th id="serial_status" data-colname="serial_status" class="serial_status">Status</th>
+                                            <th id="serial_notes" data-colname="serial_notes" class="serial_notes">Note</th>
                                         </tr>
+                                        </thead>
+                                        <tbody>
                                         [% FOREACH latestserial IN subscription.latestserials %]
                                             <tr>
-                                                <td>[% latestserial.serialseq %]</td>
-                                                <td>[% latestserial.planneddate %]</td>
-                                                <td>
+                                                <td class="serialseq">[% latestserial.serialseq %]</td>
+                                                <td class="publisheddate">[% latestserial.publisheddate %]</td>
+                                                <td class="planneddate">[% latestserial.planneddate %]</td>
+                                                <td class="serial_status">
                                                     [% IF (latestserial.status1 ) %]<span>Expected</span>[% END %]
                                                     [% IF (latestserial.status2 ) %]<span>Arrived</span>[% END %]
                                                     [% IF (latestserial.status3 ) %]<span>Late</span>[% END %]
@@ -869,9 +874,10 @@
                                                     [% IF (latestserial.status7 ) %]<span>Claimed</span>[% END %]
                                                     [% IF (latestserial.status8 ) %]<span>Stopped</span>[% END %]
                                                 </td>
-                                                <td>[% latestserial.notes %]</td>
+                                                <td class="serial_notes">[% latestserial.notes %]</td>
                                             </tr>
                                         [% END # / FOREACH latestserials %]
+                                        </tbody>
                                     </table>
                                 [% END # / IF subscription.latestserials %]
                             [% END # / FOREACH subscriptions %]
@@ -1461,6 +1467,17 @@
             "bKohaColumnsUseNames": true
         }, columns_settings);
 
+        var serial_column_settings = [% ColumnsSettings.GetColumns( 'opac', 'biblio-detail', 'subscriptionst', 'json' ) %];
+
+        KohaTable("#subscriptionst", {
+            dom: 'B<"clearfix">t',
+            "columnDefs": [
+                { "aTargets": [ -1 ], "bSortable": false, "bSearchable": false },
+                { "sType": "title-string", "aTargets" : [ "title-string" ] }
+                ],
+            "bKohaColumnsUseNames": true
+        }, serial_column_settings);
+
 [% IF ( TagsInputEnabled && loggedinusername ) %]
         $(".tag_add").click(function(){
             var thisid = $(this).attr("id");
-- 
2.7.4