Bug 13879: Fix sort on patron search (guarantor and linked to orders)
[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                 'name': 'name_sorton',
37                 'value': 'borrowers.surname borrowers.firstname'
38             },{
39                 'name': 'category_sorton',
40                 'value': 'categories.description',
41             },{
42                 'name': 'branch_sorton',
43                 'value': 'branches.branchname'
44             },{
45                 'name': 'template_path',
46                 'value': '[% json_template %]',
47             }
48             [% IF patrons_with_acq_perm_only %]
49             ,{
50                 'name': 'has_permission',
51                 'value': 'acquisition.order_manage',
52             }
53             [% END %]
54             );
55             $.ajax({
56                 'dataType': 'json',
57                 'type': 'POST',
58                 'url': sSource,
59                 'data': aoData,
60                 'success': function(json){
61                     fnCallback(json);
62                 }
63             });
64         },
65         'aoColumns':[
66             [% FOR column IN columns %]
67                 [% IF column == 'action' %]
68                     { 'mDataProp': 'dt_action', 'bSortable': false }
69                 [% ELSIF column == 'address' %]
70                     { 'mDataProp': 'dt_address', 'bSortable': false }
71                 [% ELSE %]
72                     { 'mDataProp': 'dt_[% column %]' }
73                 [% END %]
74                 [% UNLESS loop.last %],[% END %]
75             [% END %]
76         ],
77         'bAutoWidth': false,
78         [% IF patrons_with_acq_perm_only %]
79             'bPaginate': false,
80         [% ELSE %]
81             'sPaginationType': 'full_numbers',
82             "iDisplayLength": [% Koha.Preference('PatronsPerPage') %],
83         [% END %]
84         'bFilter': false,
85         'bProcessing': true,
86     }));
87     dtMemberResults.fnAddFilters("filter", 750);
88 });
89
90 var delay = (function(){
91   var timer = 0;
92   return function(callback, ms){
93     clearTimeout (timer);
94     timer = setTimeout(callback, ms);
95   };
96 })();
97
98 function filter() {
99     search = 1;
100
101     $("#searchresults").show();
102
103     if ( $("#searchmember_filter").val().length > 0 ) {
104         delay(function(){
105             dtMemberResults.fnDraw();
106         }, 1000);
107     }
108
109     return false;
110 }
111
112     // modify parent window owner element
113     [% IF selection_type == 'add' %]
114         [%# Note that add_user could sent data instead of borrowername too %]
115         function add_user(borrowernumber, borrowername) {
116             var p = window.opener;
117             $("#info").hide();
118             $("#error").hide();
119             if ( p.add_user(borrowernumber, borrowername) < 0 ) {
120                 $("#error").html(_("Borrower '%s' is already in the list.").format(borrowername));
121                 $("#error").show();
122             } else {
123                 $("#info").html(_("Borrower '%s' added.").format(borrowername));
124                 $("#info").show();
125             }
126         }
127     [% ELSIF selection_type == 'select' %]
128         function select_user(borrowernumber, data) {
129             var p = window.opener;
130             p.select_user(borrowernumber, data);
131             window.close();
132         }
133     [% END %]
134 //]]>
135 </script>
136
137 </head>
138 <body>
139 <div id="patron_search" class="yui-t7">
140   <div id="bd">
141     <div class="yui-g">
142
143         <h3>Search for patron</h3>
144
145           <label for="searchmember_filter">Search:</label>
146           <input type="text" id="searchmember_filter" value="[% searchmember %]"/>
147
148         [% IF patrons_with_acq_perm_only %]
149             <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>
150         [% END %]
151
152         <div id="info" class="dialog message"></div>
153         <div id="error" class="dialog alert"></div>
154
155         <div id="searchresults">
156             <table id="memberresultst">
157                 <thead>
158                     <tr>
159                         [% FOR column IN columns %]
160                             [% SWITCH column %]
161                                 [% CASE 'cardnumber' %]<th>Card</th>
162                                 [% CASE 'dateofbirth' %]<th>Date of birth</th>
163                                 [% CASE 'address' %]<th>Address</th>
164                                 [% CASE 'name' %]<th>Name</th>
165                                 [% CASE 'branch' %]<th>Library</th>
166                                 [% CASE 'category' %]<th>Category</th>
167                                 [% CASE 'action' %]<th>&nbsp;</th>
168                             [% END %]
169                         [% END %]
170                     </tr>
171                   </thead>
172                 <tbody></tbody>
173             </table>
174         </div>
175
176 <div id="closewindow"><a href="#" class="close">Close</a></div>
177 </div>
178 </div>
179 [% INCLUDE 'intranet-bottom.inc' %]