Bug 24518: Fix IE11 partner filtering
authorAndrew Isherwood <andrew.isherwood@ptfs-europe.com>
Mon, 27 Jan 2020 12:00:47 +0000 (12:00 +0000)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 18 Mar 2020 17:52:13 +0000 (17:52 +0000)
This patch adopts the approach detailed in comment #1.

It also fixes a couple of additional minor bugs relating to the ILL
partner list:
- Exclude partners with no email address, we cannot use them
- Quote the "value" attribute to avoid warnings displayed by IE, they
should be quoted anyway!

Test plan: USE IE11
- Apply the patch
- Define 3 ILL partner patrons (patrons in the category that has a code
that matches the <partner_code> value in the ILL config). One patron
should have no email address, the other two should have an email address
- Navigate to "Place request with partners" for an ILL request
- TEST: Observe that the patron with no email address is not displayed
- Try filtering the list
- TEST: Observe that the list filters correctly

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

koha-tmpl/intranet-tmpl/prog/en/modules/ill/ill-requests.tt
koha-tmpl/intranet-tmpl/prog/js/ill-list-table.js

index b5ccab4..dc92128 100644 (file)
                                         <label for="partners" class="required">Select partner libraries:</label>
                                         <select size="5" multiple="true" id="partners" name="partners" required="required">
                                             [% FOREACH partner IN whole.value.partners %]
-                                                <option value=[% partner.email | html %]>
-                                                    [% partner.branchcode _ " - " _ partner.surname %]
-                                                </option>
+                                                [% IF partner.email && partner.email.length > 0 %]
+                                                    <option value="[% partner.email | html %]">
+                                                        [% partner.branchcode _ " - " _ partner.surname %]
+                                                    </option>
+                                                [% END %]
                                             [% END %]
                                         </select>
 
index 1365174..877d5f1 100644 (file)
@@ -323,20 +323,22 @@ $(document).ready(function() {
     });
 
     // Filter partner list
+    // Record the list of all options
+    var ill_partner_options = $('#partners > option');
     $('#partner_filter').keyup(function() {
         var needle = $('#partner_filter').val();
-        $('#partners > option').each(function() {
-            var regex = new RegExp(needle, 'i');
+        var regex = new RegExp(needle, 'i');
+        var filtered = [];
+        ill_partner_options.each(function() {
             if (
                 needle.length == 0 ||
                 $(this).is(':selected') ||
                 $(this).text().match(regex)
             ) {
-                $(this).show();
-            } else {
-                $(this).hide();
+                filtered.push($(this));
             }
         });
+        $('#partners').empty().append(filtered);
     });
 
     // Display the modal containing request supplier metadata