Bug 30055: (QA follow-up) Minor QA fixes
[srvgit] / koha-tmpl / intranet-tmpl / prog / en / modules / members / search.tt
index 51a3f8a..7422381 100644 (file)
             </fieldset>
         </form>
 
-        [% IF patrons_with_acq_perm_only %]
-            <div class="hint">Only staff with superlibrarian or acquisitions permissions (or order_manage permission if granular permissions are enabled) are returned in the search results</div>
-        [% END %]
-
-        [% IF patrons_with_suggestion_perm_only %]
+        [% IF filter == 'suggestions_managers' %]
             <div class="hint">Only staff with superlibrarian or suggestions_manage permissions are returned in the search results</div>
+        [% ELSIF filter == 'orders_managers' %]
+            <div class="hint">Only staff with superlibrarian or acquisitions permissions (or order_manage permission if granular permissions are enabled) are returned in the search results</div>
+        [% ELSIF filter == 'funds_owners' OR filter == 'funds_users' %]
+            <div class="hint">Only staff with superlibrarian or acquisitions permissions (or budget_modify permission if granular permissions are enabled) are returned in the search results</div>
         [% END %]
 
         <div class="browse">
             [% END %]
         </div>
 
-        <div id="info" class="dialog message"></div>
-        <div id="error" class="dialog alert"></div>
+        <div id="info" class="dialog message" style="display: none;"></div>
+        <div id="error" class="dialog alert" style="display: none;"></div>
 
         <input type="hidden" id="firstletter_filter" value="" />
-        <div id="searchresults">
+        <div id="searchresults" style="display:none;">
             <table id="memberresultst">
                 <thead>
                     <tr>
             map[l.branchcode] = l;
             return map;
         }, {});
+
+        [% IF Koha.Preference('ExtendedPatronAttributes') %]
+            let extended_attribute_types = [% To.json(attribute_type_codes || []) | $raw %];
+        [% END %]
     </script>
     [% INCLUDE 'datatables.inc' %]
     [% INCLUDE 'js-date-format.inc' %]
                     let start_with = $("#firstletter_filter").val()
                     if (!start_with) return "";
                     return { "like": start_with + "%" }
-                }
+                },
+                "-and": function(){
+                    let filter = $("#searchmember_filter").val();
+                    if (!filter) return "";
+                    [% SET search_fields = Koha.Preference('DefaultPatronSearchFields') || 'surname,firstname,othernames,cardnumber,userid' %]
+                    return [
+                        [% FOR search_field IN search_fields.split(',') %]
+                        {"me.[% search_field | html %]":{"like":"%"+filter+"%"}},
+                        [% END %]
+                        [% IF Koha.Preference('ExtendedPatronAttributes') %]
+                        {
+                            "extended_attributes.value": { "like": "%" + filter + "%" },
+                            "extended_attributes.code": extended_attribute_types
+                        }
+                        [% END %]
+                    ];
+                },
             };
+            [% SET default_sort_column = "name" %]
+            [% SET order_column_index = 0 %]
             patrons_table = $("#memberresultst").kohaTable({
                 "ajax": {
                     [% SWITCH filter %]
                         "url": '/api/v1/suggestions/managers'
                     [% CASE 'baskets_managers' %]
                         "url": '/api/v1/acquisitions/baskets/managers'
+                    [% CASE 'funds_owners' %]
+                        "url": '/api/v1/acquisitions/funds/owners'
+                    [% CASE 'funds_users' %]
+                        "url": '/api/v1/acquisitions/funds/users'
                     [% CASE %]
                         "url": '/api/v1/patrons'
                     [% END %]
                 },
-                "order": [[ 1, "asc" ]],
+                embed: ['extended_attributes'],
                 "iDeferLoading": 0,
                 "columns": [
                     [% FOR column IN columns %]
+                        [% IF default_sort_column == column %]
+                            [% order_column_index = loop.count - 1%]
+                        [% END %]
                         [% SWITCH column %]
                             [% CASE 'cardnumber' %]
                             {
                             }
                             [% CASE 'name' %]
                             {
-                                "data": "me.firstname:me.surname",
+                                "data": "me.firstname:me.surname:me.othernames",
                                 "searchable": true,
                                 "orderable": true,
                                 "render": function( data, type, row, meta ) {
-                                    return $patron_to_html(row, { invert_name: 1 });
+                                    let patron_id = encodeURIComponent(row.patron_id);
+                                    return "<a href=\"/cgi-bin/koha/members/moremember.pl?borrowernumber=" + patron_id + "\" class=\"patron_preview\" data-borrowernumber=\"" + patron_id + "\" style=\"white-space:nowrap\">" + $patron_to_html(row, { invert_name: 1 }) + "</a>";
                                 }
                             }
                             [% CASE 'branch' %]
                         [% UNLESS loop.last %],[% END %]
                     [% END %]
                 ],
+                "order": [[ [% order_column_index | html %], "asc" ]],
                 'bAutoWidth': false,
                 'sPaginationType': 'full_numbers',
                 "iDisplayLength": [% Koha.Preference('PatronsPerPage') | html %],
                 [% CASE 'branch' %]
                     let library_id = $("#branchcode_filter").val();
                     patrons_table.find('thead tr:eq(1) th[data-filter="libraries"] select').val(library_id);
-                    table_dt.column([% loop.count - 1 %]).search(library_id);
+                    table_dt.column([% loop.count - 1 %]).search(library_id ? '^'+library_id+'$' : '');
                 [% CASE 'category' %]
                     let category_id = $("#categorycode_filter").val();
                     patrons_table.find('thead tr:eq(1) th[data-filter="categories"] select').val(category_id);
-                    table_dt.column([% loop.count - 1 %]).search(category_id);
+                    table_dt.column([% loop.count - 1 %]).search(category_id ? '^'+category_id+'$' : '');
                 [% END %]
             [% END %]
-            table_dt.search($("#searchmember_filter").val());
+            table_dt.search("");
             table_dt.draw();
             return false;
         }