Bug 13021: guarantor search - main patch
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / common / patron_search.tt
1 [% USE Koha %]
2 [% INCLUDE 'doc-head-open.inc' %]
3 <title>Koha &rsaquo; Patron search</title>
4 [% INCLUDE 'doc-head-close.inc' %]
5 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
6 [% INCLUDE 'datatables.inc' %]
7
8 <script type="text/javascript">
9 //<![CDATA[
10
11 var search = 1;
12 $(document).ready(function(){
13     $("#info").hide();
14     $("#error").hide();
15
16     [% IF view != "show_results" %]
17         $("#searchresults").hide();
18         search = 0;
19     [% END %]
20
21     $("#searchmember_filter").on('keyup', function(){
22         filter();
23     });
24     // Apply DataTables on the results table
25     dtMemberResults = $("#memberresultst").dataTable($.extend(true, {}, dataTablesDefaults, {
26         'bServerSide': true,
27         'sAjaxSource': "/cgi-bin/koha/svc/members/search",
28         'fnServerData': function(sSource, aoData, fnCallback) {
29             if ( ! search ) {
30                 return;
31             }
32             aoData.push({
33                 'name': 'searchmember',
34                 'value': $("#searchmember_filter").val()
35             },
36             {
37                 'name': 'template_path',
38                 'value': '[% json_template %]',
39             }
40             [% IF patrons_with_acq_perm_only %]
41             ,{
42                 'name': 'has_permission',
43                 'value': 'acquisition.order_manage',
44             }
45             [% END %]
46             );
47             $.ajax({
48                 'dataType': 'json',
49                 'type': 'POST',
50                 'url': sSource,
51                 'data': aoData,
52                 'success': function(json){
53                     fnCallback(json);
54                 }
55             });
56         },
57         'aoColumns':[
58             [% FOR column IN columns %]
59                 [% IF column == 'action' %]
60                     { 'mDataProp': 'dt_action', 'bSortable': false }
61                 [% ELSE %]
62                     { 'mDataProp': 'dt_[% column %]' }
63                 [% END %]
64                 [% UNLESS loop.last %],[% END %]
65             [% END %]
66         ],
67         'bAutoWidth': false,
68         [% IF patrons_with_acq_perm_only %]
69             'bPaginate': false,
70         [% ELSE %]
71             'sPaginationType': 'full_numbers',
72             "iDisplayLength": [% Koha.Preference('PatronsPerPage') %],
73         [% END %]
74         'bFilter': false,
75         'bProcessing': true,
76     }));
77     dtMemberResults.fnAddFilters("filter", 750);
78 });
79
80 var delay = (function(){
81   var timer = 0;
82   return function(callback, ms){
83     clearTimeout (timer);
84     timer = setTimeout(callback, ms);
85   };
86 })();
87
88 function filter() {
89     search = 1;
90
91     $("#searchresults").show();
92
93     if ( $("#searchmember_filter").val().length > 0 ) {
94         delay(function(){
95             dtMemberResults.fnDraw();
96         }, 1000);
97     }
98
99     return false;
100 }
101
102     // modify parent window owner element
103     [% IF selection_type == 'add' %]
104         [%# Note that add_user could sent data instead of borrowername too %]
105         function add_user(borrowernumber, borrowername) {
106             var p = window.opener;
107             $("#info").hide();
108             $("#error").hide();
109             if ( p.add_user(borrowernumber, borrowername) < 0 ) {
110                 $("#error").html(_("Borrower '%s' is already in the list.").format(borrowername));
111                 $("#error").show();
112             } else {
113                 $("#info").html(_("Borrower '%s' added.").format(borrowername));
114                 $("#info").show();
115             }
116         }
117     [% ELSIF selection_type == 'select' %]
118         function select_user(borrowernumber, data) {
119             var p = window.opener;
120             p.select_user(borrowernumber, data);
121             window.close();
122         }
123     [% END %]
124 //]]>
125 </script>
126
127 </head>
128 <body>
129 <div id="patron_search" class="yui-t7">
130   <div id="bd">
131     <div class="yui-g">
132
133         <h3>Search for patron</h3>
134
135           <label for="searchmember_filter">Search:</label>
136           <input type="text" id="searchmember_filter" value="[% searchmember %]"/>
137
138         [% IF patrons_with_acq_perm_only %]
139             <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>
140         [% END %]
141
142         <div id="info" class="dialog message"></div>
143         <div id="error" class="dialog alert"></div>
144
145         <div id="searchresults">
146             <table id="memberresultst">
147                 <thead>
148                     <tr>
149                         [% FOR column IN columns %]
150                             [% SWITCH column %]
151                                 [% CASE 'cardnumber' %]<th>Card</th>
152                                 [% CASE 'dateofbirth' %]<th>Date of birth</th>
153                                 [% CASE 'address' %]<th>Address</th>
154                                 [% CASE 'name' %]<th>Name</th>
155                                 [% CASE 'branch' %]<th>Library</th>
156                                 [% CASE 'category' %]<th>Category</th>
157                                 [% CASE 'action' %]<th>&nbsp;</th>
158                             [% END %]
159                         [% END %]
160                     </tr>
161                   </thead>
162                 <tbody></tbody>
163             </table>
164         </div>
165
166 <div id="closewindow"><a href="#" class="close">Close</a></div>
167 </div>
168 </div>
169 [% INCLUDE 'intranet-bottom.inc' %]