Bug 23697: Add autocompletion search in patron module
[koha-ffzg.git] / koha-tmpl / intranet-tmpl / prog / js / members-menu.js
1 /* global borrowernumber advsearch dateformat _ CAN_user_borrowers_edit_borrowers number_of_adult_categories destination Sticky MSG_DATE_FORMAT_US MSG_DATE_FORMAT_ISO MSG_DATE_FORMAT_METRIC MSG_DATE_FORMAT_DMYDOT MSG_CONFIRM_UPDATE_CHILD MSG_CONFIRM_RENEW_PATRON */
2
3 $(document).ready(function(){
4
5     $("#filteraction_off, #filteraction_on").on('click', function(e) {
6         e.preventDefault();
7         $('#filters').toggle();
8         $('.filteraction').toggle();
9         if (typeof Sticky !== "undefined" && typeof hcSticky === "function") {
10             Sticky.hcSticky('update');
11         }
12     });
13     if( advsearch ){
14         $("#filteraction_on").toggle();
15         $("#filters").show();
16     } else {
17         $("#filteraction_off").toggle();
18     }
19
20     searchfield_date_tooltip("");
21     searchfield_date_tooltip('_filter');
22     $("#searchfieldstype").change(function() {
23         searchfield_date_tooltip("");
24     });
25     $("#searchfieldstype_filter").change(function() {
26         searchfield_date_tooltip('_filter');
27     });
28
29     if( CAN_user_borrowers_edit_borrowers ){
30         $("#deletepatron").click(function(){
31             window.location='/cgi-bin/koha/members/deletemem.pl?member=' + borrowernumber;
32         });
33         $("#renewpatron").click(function(){
34             confirm_reregistration();
35             $(".btn-group").removeClass("open");
36             return false;
37         });
38         $("#updatechild").click(function(e){
39             if( $(this).data("toggle") == "tooltip"){ // Disabled menu option has tooltip attribute
40                 e.preventDefault();
41             } else {
42                 update_child();
43                 $(".btn-group").removeClass("open");
44             }
45         });
46     }
47
48     $("#updatechild, #patronflags, #renewpatron, #deletepatron, #exportbarcodes").tooltip();
49     $("#exportcheckins").click(function(){
50         export_barcodes();
51         $(".btn-group").removeClass("open");
52         return false;
53     });
54     $("#printsummary").click(function(){
55         printx_window("page");
56         $(".btn-group").removeClass("open");
57         return false;
58     });
59     $("#printslip").click(function(){
60         printx_window("slip");
61         $(".btn-group").removeClass("open");
62         return false;
63     });
64     $("#printquickslip").click(function(){
65         printx_window("qslip");
66         $(".btn-group").removeClass("open");
67         return false;
68     });
69     $("#print_overdues").click(function(){
70         window.open("/cgi-bin/koha/members/print_overdues.pl?borrowernumber=" + borrowernumber, "printwindow");
71         $(".btn-group").removeClass("open");
72         return false;
73     });
74     $("#printclearscreen").click(function(){
75         printx_window("slip");
76         window.location.replace("/cgi-bin/koha/circ/circulation.pl");
77     });
78     $("#searchtohold").click(function(){
79         searchToHold();
80         return false;
81     });
82     $("#select_patron_messages").on("change",function(){
83         $("#borrower_message").val( $(this).val() );
84     });
85
86     $(".edit-patronimage").on("click", function(e){
87         e.preventDefault();
88         var borrowernumber = $(this).data("borrowernumber");
89         $.get("/cgi-bin/koha/members/moremember.pl", { borrowernumber : borrowernumber }, function( data ){
90             var image_form = $(data).find("#picture-upload");
91             image_form.show().find(".cancel").remove();
92             $("#patronImageEdit .modal-body").html( image_form );
93         });
94         var modalTitle = $(this).attr("title");
95         $("#patronImageEdit .modal-title").text(modalTitle);
96         $("#patronImageEdit").modal("show");
97     });
98
99     var obj = $( "#searchmember" ).autocomplete({
100         source: "/cgi-bin/koha/circ/ysearch.pl",
101         minLength: 3,
102         select: function( event, ui ) {
103             window.location.href = ui.item.link;
104         }
105     }).data( "ui-autocomplete" );
106     if( obj ) {
107         obj._renderItem = function( ul, item ) {
108             item.link = "/cgi-bin/koha/circ/circulation.pl?borrowernumber=" + item.borrowernumber;
109             var cardnumber = "";
110             if( item.cardnumber != "" ){
111                 // Display card number in parentheses if it exists
112                 cardnumber = " (" + item.cardnumber + ") ";
113             }
114             return $( "<li></li>" )
115             .data( "ui-autocomplete-item", item )
116             .append( "<a href=\"" + item.link + "\">" + item.surname + ", " + item.firstname + cardnumber + " <small>" + item.dateofbirth + " " + item.address + " " + item.city + " " + item.zipcode + " " + item.country + "</small></a>" )
117             .appendTo( ul );
118         };
119     }
120 });
121
122
123
124 function searchfield_date_tooltip(filter) {
125     var field = "#searchmember" + filter;
126     var type = "#searchfieldstype" + filter;
127     if ( $(type).val() == 'dateofbirth' ) {
128         var MSG_DATE_FORMAT = "";
129         if( dateformat == 'us' ){
130             MSG_DATE_FORMAT = MSG_DATE_FORMAT_US;
131         } else if( dateformat == 'iso' ){
132             MSG_DATE_FORMAT = MSG_DATE_FORMAT_ISO;
133         } else if( dateformat == 'metric' ){
134             MSG_DATE_FORMAT = MSG_DATE_FORMAT_METRIC;
135         } else if( dateformat == 'dmydot' ){
136             MSG_DATE_FORMAT = MSG_DATE_FORMAT_DMYDOT;
137         }
138         $(field).attr("title", MSG_DATE_FORMAT).tooltip('show');
139     } else {
140         $(field).tooltip('destroy');
141     }
142 }
143
144 function confirm_updatechild() {
145     var is_confirmed = window.confirm( MSG_CONFIRM_UPDATE_CHILD );
146     if (is_confirmed) {
147         window.location='/cgi-bin/koha/members/update-child.pl?op=update&borrowernumber=' + borrowernumber;
148     }
149 }
150
151 function update_child() {
152     if( number_of_adult_categories > 1 ){
153         window.open('/cgi-bin/koha/members/update-child.pl?op=multi&borrowernumber=' + borrowernumber,'UpdateChild','width=400,height=300,toolbar=no,scrollbars=yes,resizable=yes');
154     } else {
155         confirm_updatechild();
156     }
157 }
158
159 function confirm_reregistration() {
160     var is_confirmed = window.confirm( MSG_CONFIRM_RENEW_PATRON );
161     if (is_confirmed) {
162         window.location = '/cgi-bin/koha/members/setstatus.pl?borrowernumber=' + borrowernumber + '&amp;destination=' + destination + '&amp;reregistration=y';
163     }
164 }
165 function export_barcodes() {
166     window.open('/cgi-bin/koha/members/readingrec.pl?borrowernumber=' + borrowernumber + '&amp;op=export_barcodes');
167 }
168 var slip_re = /slip/;
169 function printx_window(print_type) {
170     var handler = print_type.match(slip_re) ? "printslip" : "summary-print";
171     window.open("/cgi-bin/koha/members/" + handler + ".pl?borrowernumber=" + borrowernumber + "&amp;print=" + print_type, "printwindow");
172     return false;
173 }
174 function searchToHold(){
175     var date = new Date();
176     date.setTime(date.getTime() + (10 * 60 * 1000));
177     $.cookie("holdfor", borrowernumber, { path: "/", expires: date });
178     location.href="/cgi-bin/koha/catalogue/search.pl";
179 }