From 3d82299ca2ebde5561365e618ea8c59d9a8c7a72 Mon Sep 17 00:00:00 2001
From: Owen Leonard <oleonard@myacpl.org>
Date: Tue, 27 Oct 2020 12:23:45 +0000
Subject: [PATCH] Bug 25614: Move ILL request keyword filter to sidebar

On the ILL request list page there are two filters for the table: One in
the sidebar and one configured automatically by the DataTables plugin. I
think these two systems are conflicting somehow to prevent the "clear
filter" button in the table toolbar from working correctly.

This patch doesn't fix the bug but avoids it: Since the filter field in
the table toolbar is duplicating the functionality of the form in the
sidebar, we could hide it and rely on the sidebar filter instead.

To test, apply the patch and go to the ILL requests page in the staff
interface.

 - The table of requests should display without a search form or "clear
   filter" button at the top.
 - The left-hand sidebar form should now have a "keyword" filter option
   which searches any column in the table.
 - Other filter fields should work as before.

Signed-off-by: David Nind <david@davidnind.com>
---
 .../prog/en/modules/ill/ill-requests.tt             |  4 ++++
 koha-tmpl/intranet-tmpl/prog/js/ill-list-table.js   | 21 +++++++++++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/ill/ill-requests.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/ill/ill-requests.tt
index b6a40a17f0..1d57e28fa8 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/ill/ill-requests.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/ill/ill-requests.tt
@@ -38,6 +38,10 @@
                             <h3>Filters</h3>
                             <ol>
                                 <li>
+                                    <label for="illfilter_keyword">Keyword:</label>
+                                    <input type="text" name="illfilter_keyword" id="illfilter_keyword" />
+                                </li>
+                                <li>
                                     <label for="illfilter_status">Status:</label>
                                     <select name="illfilter_status" id="illfilter_status">
                                         <option value=""></option>
diff --git a/koha-tmpl/intranet-tmpl/prog/js/ill-list-table.js b/koha-tmpl/intranet-tmpl/prog/js/ill-list-table.js
index d20b26bf6e..abd01861a7 100644
--- a/koha-tmpl/intranet-tmpl/prog/js/ill-list-table.js
+++ b/koha-tmpl/intranet-tmpl/prog/js/ill-list-table.js
@@ -116,6 +116,26 @@ $(document).ready(function() {
                 $('#illfilter_patron').val('');
             }
         },
+        keyword: {
+            listener: function () {
+                var me = 'keyword';
+                $('#illfilter_keyword').change(function () {
+                    var val = $('#illfilter_keyword').val();
+                    if (val && val.length > 0) {
+                        activeFilters[me] = function () {
+                            table.api().search(val);
+                        }
+                    } else {
+                        if (activeFilters.hasOwnProperty(me)) {
+                            delete activeFilters[me];
+                        }
+                    }
+                });
+            },
+            clear: function () {
+                $('#illfilter_keyword').val('');
+            }
+        },
         dateModified: {
             clear: function() {
                 $('#illfilter_datemodified_start, #illfilter_datemodified_end').val('');
@@ -455,6 +475,7 @@ $(document).ready(function() {
                 'sPaginationType': "full_numbers", // Pagination display
                 'deferRender': true, // Improve performance on big datasets
                 'data': dataCopy,
+                "dom": '<"top pager"<"table_entries"ilp><"table_controls"B>>tr<"bottom pager"ip>',
                 'columns': colData,
                 'originalData': data, // Enable render functions to access
                                         // our original data
-- 
2.11.0