</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": {
- "url": '/api/v1/patrons'
+ [% SWITCH filter %]
+ [% CASE 'suggestions_managers' %]
+ "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;
}