Bug 16241 - Move staff client CSS out of language directory
[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="[% interface %]/[% theme %]/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     // Apply DataTables on the results table
22     dtMemberResults = $("#memberresultst").dataTable($.extend(true, {}, dataTablesDefaults, {
23         'bServerSide': true,
24         'sAjaxSource': "/cgi-bin/koha/svc/members/search",
25         'fnServerData': function(sSource, aoData, fnCallback) {
26             if ( ! search ) {
27                 return;
28             }
29             aoData.push({
30                 'name': 'searchmember',
31                 'value': $("#searchmember_filter").val()
32             },{
33                 'name': 'firstletter',
34                 'value': $("#firstletter_filter").val()
35             },{
36                 'name': 'categorycode',
37                 'value': $("#categorycode_filter").val()
38             },{
39                 'name': 'branchcode',
40                 'value': $("#branchcode_filter").val()
41             },{
42                 'name': 'name_sorton',
43                 'value': 'borrowers.surname borrowers.firstname'
44             },{
45                 'name': 'category_sorton',
46                 'value': 'categories.description',
47             },{
48                 'name': 'branch_sorton',
49                 'value': 'branches.branchname'
50             },{
51                 'name': 'template_path',
52                 'value': '[% json_template %]',
53             },{
54                 'name': 'selection_type',
55                 'value': '[% selection_type %]',
56             }
57             [% IF patrons_with_acq_perm_only %]
58             ,{
59                 'name': 'has_permission',
60                 'value': 'acquisition.order_manage',
61             }
62             [% END %]
63             );
64             $.ajax({
65                 'dataType': 'json',
66                 'type': 'POST',
67                 'url': sSource,
68                 'data': aoData,
69                 'success': function(json){
70                     fnCallback(json);
71                 }
72             });
73         },
74         'aoColumns':[
75             [% FOR column IN columns %]
76                 [% IF column == 'action' %]
77                     { 'mDataProp': 'dt_action', 'bSortable': false, 'sClass': 'actions' }
78                 [% ELSIF column == 'address' %]
79                     { 'mDataProp': 'dt_address', 'bSortable': false }
80                 [% ELSE %]
81                     { 'mDataProp': 'dt_[% column %]' }
82                 [% END %]
83                 [% UNLESS loop.last %],[% END %]
84             [% END %]
85         ],
86         'bAutoWidth': false,
87         [% IF patrons_with_acq_perm_only %]
88             'bPaginate': false,
89         [% ELSE %]
90             'sPaginationType': 'full_numbers',
91             "iDisplayLength": [% Koha.Preference('PatronsPerPage') %],
92         [% END %]
93         'aaSorting': [[[% aaSorting || 0 %], 'asc']],
94         'bFilter': false,
95         'bProcessing': true,
96     }));
97
98     $("#searchform").on('submit', filter);
99     $(".filterByLetter").on("click",function(e){
100         e.preventDefault();
101         filterByFirstLetterSurname($(this).text());
102     });
103 });
104
105 function filter() {
106     search = 1;
107     $("#firstletter_filter").val('');
108     $("#searchresults").show();
109     dtMemberResults.fnDraw();
110     return false;
111 }
112
113 // User has clicked on a letter
114 function filterByFirstLetterSurname(letter) {
115     $("#firstletter_filter").val(letter);
116     search = 1;
117     $("#searchresults").show();
118     dtMemberResults.fnDraw();
119 }
120
121
122     // modify parent window owner element
123     [% IF selection_type == 'add' %]
124         function add_user(borrowernumber, borrowername) {
125             var p = window.opener;
126             // In one place (serials/routing.tt), the page is reload on every add
127             // We have to wait for the page to be there
128             function wait_for_opener () {
129                 if ( ! $(opener.document).find('body').size() ) {
130                     setTimeout(wait_for_opener, 500);
131                 } else {
132                     [%# Note that add_user could sent data instead of borrowername too %]
133                     $("#info").hide();
134                     $("#error").hide();
135                     if ( p.add_user(borrowernumber, borrowername) < 0 ) {
136                         $("#error").html(_("Borrower '%s' is already in the list.").format(borrowername));
137                         $("#error").show();
138                     } else {
139                         $("#info").html(_("Borrower '%s' added.").format(borrowername));
140                         $("#info").show();
141                     }
142                 }
143             }
144             wait_for_opener();
145         }
146     [% ELSIF selection_type == 'select' %]
147         function select_user(borrowernumber, data) {
148             var p = window.opener;
149             p.select_user(borrowernumber, data);
150             window.close();
151         }
152     [% END %]
153 //]]>
154 </script>
155
156 </head>
157 <body id="common_patron_search" class="common">
158 <div id="patron_search" class="yui-t7">
159   <div id="bd">
160     <div class="yui-g">
161
162         <form id="searchform">
163             <fieldset class="brief">
164                 <h3>Search for patron</h3>
165                 <ol>
166                     <li>
167                         <label for="searchmember_filter">Search:</label>
168                         <input type="text" id="searchmember_filter" value="[% searchmember %]"/>
169                     </li>
170                     <li>
171                         <label for="categorycode_filter">Category:</label>
172                         <select id="categorycode_filter">
173                             <option value="">Any</option>
174                             [% FOREACH category IN categories %]
175                                 <option value="[% category.categorycode %]">[% category.description %]</option>
176                             [% END %]
177                         </select>
178                     </li>
179                     <li>
180                         <label for="branchcode_filter">Library:</label>
181                         <select id="branchcode_filter">
182                             [% IF branches.size != 1 %]
183                                 <option value="">Any</option>
184                             [% END %]
185                             [% FOREACH branch IN branches %]
186                                 <option value="[% branch.branchcode %]">[% branch.branchname %]</option>
187                             [% END %]
188                         </select>
189                     </li>
190                 </ol>
191                 <fieldset class="action">
192                     <input class="btn btn-default" type="submit" value="Search" />
193                 </fieldset>
194             </fieldset>
195         <form>
196
197         [% IF patrons_with_acq_perm_only %]
198             <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>
199         [% END %]
200
201         <div class="browse">
202             Browse by last name:
203             [% FOREACH letter IN alphabet.split(' ') %]
204                 <a href="#" class="filterByLetter">[% letter %]</a>
205             [% END %]
206         </div>
207
208         <div id="info" class="dialog message"></div>
209         <div id="error" class="dialog alert"></div>
210
211         <input type="hidden" id="firstletter_filter" value="" />
212         <div id="searchresults">
213             <table id="memberresultst">
214                 <thead>
215                     <tr>
216                         [% FOR column IN columns %]
217                             [% SWITCH column %]
218                                 [% CASE 'cardnumber' %]<th>Card</th>
219                                 [% CASE 'dateofbirth' %]<th>Date of birth</th>
220                                 [% CASE 'address' %]<th>Address</th>
221                                 [% CASE 'name' %]<th>Name</th>
222                                 [% CASE 'branch' %]<th>Library</th>
223                                 [% CASE 'category' %]<th>Category</th>
224                                 [% CASE 'dateexpiry' %]<th>Expires on</td>
225                                 [% CASE 'borrowernotes' %]<th>Notes</th>
226                                 [% CASE 'action' %]<th>&nbsp;</th>
227                             [% END %]
228                         [% END %]
229                     </tr>
230                   </thead>
231                 <tbody></tbody>
232             </table>
233         </div>
234
235 <div id="closewindow"><a href="#" class="btn btn-default close">Close</a></div>
236 </div>
237 </div>
238 [% INCLUDE 'intranet-bottom.inc' %]