Bug 12944: Refactor the patron autocomplete
[koha.git] / koha-tmpl / intranet-tmpl / js / autocomplete / patrons.js
1 function patron_autocomplete(params) {
2     var patron_container = params.patron_container;
3     var input_autocomplete = params.input_autocomplete;
4     var patron_input_name = params.patron_input_name || 'cardnumber';
5     var field_to_retrieve = params.field_to_retrieve || 'cardnumber';
6
7     $( input_autocomplete ).autocomplete({
8         source: "/cgi-bin/koha/circ/ysearch.pl",
9         minLength: 3,
10         select: function( event, ui ) {
11             var field = ui.item.cardnumber;
12             if ( field_to_retrieve == 'borrowernumber' ) {
13                 field = ui.item.borrowernumber;
14             }
15             AddPatron( ui.item.firstname + " " + ui.item.surname, field, patron_container, patron_input_name );
16             input_autocomplete.val('').focus();
17             return false;
18         }
19     })
20     .data( "ui-autocomplete" )._renderItem = function( ul, item ) {
21         return $( "<li></li>" )
22         .data( "ui-autocomplete-item", item )
23         .append( "<a>" + item.surname + ", " + item.firstname + " (" + item.cardnumber + ") <small>" + item.address + " " + item.city + " " + item.zipcode + " " + item.country + "</small></a>" )
24         .appendTo( ul );
25     };
26
27     $("body").on("click",".removePatron",function(e){
28         e.preventDefault();
29         var divid = $(this).parent().attr("id");
30         var cardnumber = divid.replace("borrower_","");
31         RemovePatron(cardnumber, patron_container);
32     });
33 }
34
35 function AddPatron( patron_name, value, container, input_name ) {
36     div = "<div id='borrower_" + value + "'>" + patron_name + " ( <a href='#' class='removePatron'> " + _("Remove") + " </a> ) <input type='hidden' name='" + input_name + "' value='" + value + "' /></div>";
37     $(container).append( div );
38
39     $(container).parent().show( 800 );
40 }
41
42 function RemovePatron( cardnumber, container ) {
43     $( '#borrower_' + cardnumber ).remove();
44
45     if ( ! $(container).html() ) {
46         $(container).parent().hide( 800 );
47     }
48 }