1 function patron_autocomplete(node, options) {
4 let on_select_callback;
6 if ( options['link-to'] ) {
7 link_to = options['link-to'];
9 if ( options['url-params'] ) {
10 url_params = options['url-params'];
12 if ( options['on-select-callback'] ) {
13 on_select_callback = options['on-select-callback'];
16 return node.autocomplete({
17 source: function( request, response ) {
22 {"me.firstname": {"like": "%"+request.term+"%"}},
23 {"me.surname": {"like": "%"+request.term+"%"}},
24 {"me.cardnumber": {"like": request.term+"%"}}
26 '_order_by': '+me.surname,+me.firstname',
31 url: '/api/v1/patrons',
33 "x-koha-embed": "library"
35 success: function(data) {
36 return response(data);
39 alert( _("An error occurred. Check the logs") );
45 select: function( event, ui ) {
47 window.location.href = ui.item.link;
48 } else if ( on_select_callback ) {
49 return on_select_callback(event, ui);
53 .data( "ui-autocomplete" )
54 ._renderItem = function( ul, item ) {
56 item.link = link_to == 'circ'
57 ? "/cgi-bin/koha/circ/circulation.pl"
58 : link_to == 'reserve'
59 ? "/cgi-bin/koha/reserve/request.pl"
60 : "/cgi-bin/koha/members/moremember.pl";
61 item.link += ( url_params ? '?' + url_params + '&' : "?" ) + 'borrowernumber=' + item.patron_id;
67 if( item.cardnumber != "" ){
68 // Display card number in parentheses if it exists
69 cardnumber = " (" + item.cardnumber + ") ";
71 if( item.library_id == loggedInLibrary ){
72 loggedInClass = "ac-currentlibrary";
76 return $( "<li></li>" )
77 .addClass( loggedInClass )
78 .data( "ui-autocomplete-item", item )
81 + ( item.link ? "<a href=\"" + item.link + "\">" : "<a>" )
82 + ( item.surname ? item.surname.escapeHtml() : "" ) + ", "
83 + ( item.firstname ? item.firstname.escapeHtml() : "" )
84 + cardnumber.escapeHtml()
86 + ( item.date_of_birth
87 ? $date(item.date_of_birth)
88 + "<span class=\"age_years\"> ("
89 + $get_age(item.date_of_birth)
95 + ( item.address ? item.address.escapeHtml() : "" ) + " "
96 + ( item.city ? item.city.escapeHtml() : "" ) + " "
97 + ( item.zipcode ? item.zipcode.escapeHtml() : "" ) + " "
98 + ( item.country ? item.country.escapeHtml() : "" ) + " "
101 "<span class=\"ac-library\">"
102 + item.library.name.escapeHtml()