Bug 11502: make library filter in "Holds To Pull" more precise
authorDavid Cook <dcook@prosentient.com.au>
Thu, 9 Jan 2014 06:12:26 +0000 (17:12 +1100)
committerGalen Charlton <gmc@esilibrary.com>
Tue, 14 Jan 2014 16:32:47 +0000 (16:32 +0000)
This patch uses regex checking via the DataTables fnFilter API method
to make the branch filter more precise on the "Holds to Pull" page.

The ability to use regex is built into DataTables so this just adds
the actual expression.

_TEST PLAN_

Before applying:

1) Add library (branches) with codes of NM, NMH, and NB
2) Add items (that can be placed on hold) at all these branches
3) Place a hold on an item that is only available at NM
4) Place a hold on an item that is only available at NMH
5) Place a hold on an item that is only available at NM and NB
6) Go to "Holds to Pull" in the Circulation module
7) Filter by these three different values
8) Note that filtering by "NM" will incorrectly bring up all three
holds, while "NMH" and "NB" will only pull up one (like they should).

Apply the patch.

9) Shift+refresh the page so that your Javascript refreshes
10) Repeat step 7 (filtering by the different branch values)
11) Note that filtering by "NM" will now only bring up the hold for "NM"
and the hold for "NM" and "NB", while the others still only bring up
one hold.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt

index c14c165..9a00eab 100644 (file)
@@ -42,7 +42,11 @@ $(document).ready(function() {
   $("#homebranchfilter").each( function () {
       $(this).html( createSelect( holdst.fnGetColumnData(4) ) );
       $('select', this).change( function () {
-          holdst.fnFilter( $(this).val(), 4 );
+          var filter_value = $(this).val();
+          if(filter_value){
+                filter_value = "(^|>)"+filter_value+"($|<)";
+          }
+          holdst.fnFilter( filter_value, 4, true );
       } );
   } );
   $("#itypefilter").each( function () {