Bug 10855: (follow-up) Search subscriptions by additional fields
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / serials / serials-search.tt
1 [% USE Branches %]
2 [% INCLUDE 'doc-head-open.inc' %]
3 [% USE KohaDates %]
4 [% USE AuthorisedValues %]
5 <title>Koha &rsaquo; Serials [% biblionumber %]</title>
6 [% INCLUDE 'doc-head-close.inc' %]
7 [% INCLUDE 'calendar.inc' %]
8 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
9 [% INCLUDE 'datatables.inc' %]
10 <script type="text/javascript">
11 //<![CDATA[
12  $(document).ready(function() {
13     var osrlt = $("#osrlt").dataTable($.extend(true, {}, dataTablesDefaults, {
14         "sPaginationType": "four_button",
15         "aoColumnDefs": [
16             { 'bSortable': false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
17             { "sType": "title-string", "aTargets" : [ "title-string" ] },
18             { 'sType': "anti-the", 'aTargets' : [ 'anti-the'] }
19         ]
20     } ) );
21
22     var csrlt = $("#csrlt").dataTable($.extend(true, {}, dataTablesDefaults, {
23         // FIXME sort function of additional_fields!
24         "sPaginationType": "four_button",
25         "aoColumnDefs": [
26             { 'bSortable': false, 'aTargets': [ 'NoSort' ] },
27             { 'sType': "anti-the", 'aTargets' : [ 'anti-the'] }
28         ]
29     } ) );
30
31     osrlt.fnAddFilters("dt-filter", 750);
32     csrlt.fnAddFilters("dt-filter", 750);
33
34     $('#serialstabs').tabs();
35     $("#reopensub").click(function(){
36       return confirm(_("Are you sure you want to reopen this subscription?"));
37     });
38  });
39  //]]>
40 </script>
41 <style type="text/css">input.dt-filter { width : 100%; font-size : 85%; }</style>
42 </head>
43 <body id="ser_serials-home" class="ser">
44 [% INCLUDE 'header.inc' %]
45 [% INCLUDE 'serials-search.inc' %]
46
47 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; [% IF ( done_searched ) %]<a href="/cgi-bin/koha/serials/serials-home.pl">Serials</a> &rsaquo; Search results[% ELSE %]Serials [% END %] </div>
48
49 <div id="doc3" class="yui-t2">
50   <div id="bd">
51     <div id="yui-main">
52       <div class="yui-b">
53       [% INCLUDE 'serials-toolbar.inc' %]
54
55       <h2>Serials subscriptions ([% total %] found)</h2>
56       [% UNLESS ( done_searched ) %]
57       <div id="advsearch" style="padding-bottom:3em;">
58         <form action="/cgi-bin/koha/serials/serials-search.pl" method="get">
59           <fieldset class="rows">
60           <legend>Search subscriptions</legend>
61               <ol>
62                 <li>
63                   <label for="issn">ISSN:</label>
64                   <input type="text" id="issn" name="ISSN_filter" value="[% ISSN_filter | html %]" />
65                 </li>
66                 <li>
67                   <label for="title">Title:</label>
68                   <input type="text" id="title" name="title_filter" value="[% title_filter | html %]" />
69                 </li>
70                 [% IF ( marcflavour == "UNIMARC" ) %]
71                 <li>
72                   <label for="ean">EAN:</label>
73                   <input type="text" id="ean" name="EAN_filter" value="[% EAN_filter | html %]" />
74                 </li>
75                 [% END %]
76                 <li>
77                   <label for="callnumber">Call number:</label>
78                   <input type="text" id="callnumber" name="callnumber_filter" value="[% callnumber_filter | html %]" />
79                 </li>
80                 <li>
81                   <label for="publisher">Publisher:</label>
82                   <input type="text" id="publisher" name="publisher_filter" value="[% publisher_filter | html %]" />
83                 </li>
84                 <li>
85                   <label for="bookseller">Vendor:</label>
86                   <input type="text" id="bookseller" name="bookseller_filter" value="[% bookseller_filter | html %]" />
87                 </li>
88                 <li>
89                   <label for="branch">Library:</label>
90                   <select id="branch" name="branch_filter">
91                     <option value="">All</option>
92                     [% FOREACH branch IN branches_loop %]
93                       [% IF ( branch.selected ) %]
94                         <option selected="selected" value="[% branch.branchcode %]">[% branch.branchname %]</option>
95                       [% ELSE %]
96                         <option value="[% branch.branchcode %]">[% branch.branchname %]</option>
97                       [% END %]
98                     [% END %]
99                   </select>
100                 </li>
101                 [% IF locations %]
102                   <li>
103                     <label for="location">Location:</label>
104                     <select name="location_filter">
105                       <option value="">All</option>
106                       [% FOR loc IN locations %]
107                         [% IF loc.selected %]
108                           <option value="[% loc.authorised_value %]" selected="selected">[% loc.lib %]</option>
109                         [% ELSE %]
110                           <option value="[% loc.authorised_value %]">[% loc.lib %]</option>
111                         [% END %]
112                       [% END %]
113                     </select>
114                   </li>
115                 [% END %]
116                 <li>
117                   <label for="to">Expires before:</label>
118                   <input type="text" id="to" name="expiration_date_filter" value="[% expiration_date_filter | $KohaDates %]" size="10" maxlength="10" class="datepickerto" />
119                 </li>
120                 [% FOR field IN additional_fields_for_subscription %]
121                   <li>
122                     <label for="additional_field_[% field.id %]"> [% field.name %]: </label>
123                     [% IF field.authorised_value_choices %]
124                       <select id="additional_field_[% field.id %]" name="additional_field_[% field.id %]_filter">
125                         <option value="">All</option>
126                         [% FOREACH av IN field.authorised_value_choices %]
127                           <option value="[% av.authorised_value %]">[% av.lib %]</option>
128                         [% END %]
129                       </select>
130                     [% ELSE %]
131                       <input id="additional_field_[% field.id %]" type="text" value="[% additional_fields.${field.name} %]" name="additional_field_[% field.id %]_filter" />
132                     [% END %]
133                   </li>
134                 [% END %]
135               </ol>
136               <input type="hidden" name="searched" value="1" />
137               <fieldset class="action">
138                 <input type="submit" value="Search" />
139               </fieldset>
140           </fieldset>
141         </form>
142       </div>
143       [% END %]
144       [% IF ( done_searched ) %]
145         [% IF ( total ) %]
146           <div id="serialstabs" class="toptabs" style="clear:both;">
147             <ul class="ui-tabs-nav">
148               <li><a href="#opened">Open ([% openedsubscriptions.size || 0 %])</a></li>
149               <li><a href="#closed">Closed ([% closedsubscriptions.size || 0 %])</a></li>
150             </ul>
151             <div id="opened">
152               [% IF openedsubscriptions %]
153                 <table id="osrlt">
154                   <thead>
155                     <tr>
156                         <th>ISSN</th>
157                         <th class="anti-the">Title</th>
158                         <th>Notes</th>
159                         <th>Library</th>
160                         <th>Location</th>
161                         <th>Call number</th>
162                         <th class="title-string">Expiration date</th>
163                         [% FOR field IN additional_fields_for_subscription %]
164                           <th>[% field.name %]</th>
165                         [% END %]
166                         <th class="NoSort">Actions</th>
167                     </tr>
168                   </thead>
169                   <tfoot>
170                     <tr>
171                       <td><input type="text" class="dt-filter" data-column_num="0" placeholder="Search ISSN" /></td>
172                       <td><input type="text" class="dt-filter" data-column_num="1" placeholder="Search title" /></td>
173                       <td><input type="text" class="dt-filter" data-column_num="2" placeholder="Search notes" /></td>
174                       <td><input type="text" class="dt-filter" data-column_num="3" placeholder="Search library" /></td>
175                       <td><input type="text" class="dt-filter" data-column_num="4" placeholder="Search location" /></td>
176                       <td><input type="text" class="dt-filter" data-column_num="5" placeholder="Search callnumber" /></td>
177                       <td><input type="text" class="dt-filter" data-column_num="6" placeholder="Search expiration date" /></td>
178                       [% FOR field IN additional_fields_for_subscription %]
179                         <td><input type="text" class="dt-filter" data-column_num="[% loop.count + 6 %]" placeholder="Search [% field.name %]" /></td>
180                       [% END %]
181                       <td></td>
182                     </tr>
183                   </tfoot>
184                   <tbody>
185                     [% FOREACH subscription IN openedsubscriptions %]
186                     [% UNLESS subscription.cannotdisplay %]
187                       <tr>
188                         <td>
189                         [% IF ( subscription.issn ) %][% subscription.issn %]
190                         [% END %]
191                         </td>
192                         <td><a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=[% subscription.subscriptionid %]" class="button" title="subscription detail">[% subscription.title |html %]</a>
193                         </td>
194                         <td>[% IF ( subscription.publicnotes ) %][% subscription.publicnotes %][% END %]
195                         [% IF ( subscription.internalnotes ) %]([% subscription.internalnotes %])[% END %]
196                         </td>
197                         <td>
198                           [% IF ( subscription.branchcode ) %][% Branches.GetName( subscription.branchcode ) %][% END %]
199                         </td>
200                         <td>
201                           [% IF ( subscription.location ) %][% AuthorisedValues.GetByCode( 'LOC', subscription.location ) %][% END %]
202                         </td>
203                         <td>
204                           [% IF ( subscription.callnumber ) %][% subscription.callnumber %][% END %]
205                         </td>
206                         <td>
207                             [% IF ( subscription.enddate ) %]
208                                 <span title="[% subscription.enddate %]">[% subscription.enddate | $KohaDates %]</span>
209                             [% ELSE %]
210                                 <span title="0000-00-00"></span>
211                             [% END %]
212                         </td>
213
214                         [% FOR field IN additional_fields_for_subscription %]
215                           [% IF field.authorised_value_category %]
216                             <td>[% AuthorisedValues.GetByCode( field.authorised_value_category, subscription.additional_fields.${field.name} ) %]</td>
217                           [% ELSE %]
218                             <td>[% subscription.additional_fields.${field.name} %]</td>
219                           [% END %]
220                         [% END %]
221
222                         <td>
223                             <div class="dropdown">
224                                 <a class="btn btn-mini dropdown-toggle" id="subactions[% subscription.subscriptionid %]" role="button" data-toggle="dropdown" href="#">
225                                    Actions <b class="caret"></b>
226                                 </a>
227                                 <ul class="dropdown-menu pull-right" role="menu" aria-labelledby="subactions[% subscription.subscriptionid %]">
228
229                                     [% IF ( routing && CAN_user_serials_routing ) %]
230                                         [% IF ( subscription.cannotedit ) %]
231                                         [% ELSE %]
232                                             [% IF ( subscription.routingedit ) %]
233                                                 <li>
234                                                     <a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscription.subscriptionid %]"><i class="icon-pencil"></i> Edit routing list ([% subscription.routingedit %])</a>
235                                                 </li>
236                                             [% ELSE %]
237                                                 <li>
238                                                     <a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscription.subscriptionid %]&amp;op=new"> <i class="icon-plus"></i> New routing list</a>
239                                                 </li>
240                                             [% END %]
241                                         [% END %]
242                                     [% END # IF ( routing && CAN_user_serials_routing ) %]
243
244                                     <li>
245                                         <a href="/cgi-bin/koha/serials/serials-collection.pl?subscriptionid=[% subscription.subscriptionid %]"><i class="icon-list-alt"></i> Issue history</a>
246                                     </li>
247                                     [% IF ( CAN_user_serials_receive_serials ) %]
248                                         <li>
249                                             <a href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=[% subscription.subscriptionid %]&amp;serstatus=1,3,7"> <i class="icon-inbox"></i> Serial receive</a>
250                                         </li>
251                                     [% END %]
252                                 </ul>
253                             </div>
254                         </td>
255
256                       </tr>
257                       [% END %]
258                     [% END %]
259                   </tbody>
260                 </table>
261               [% ELSE %]
262                 <div class="dialog message">
263                   <p>Your search returned no open subscriptions.</p>
264                 </div>
265               [% END %]
266             </div>
267             <div id="closed">
268               [% IF closedsubscriptions %]
269                 <table id="csrlt">
270                 <!-- FIXME add additional_fields for closed subs -->
271                   <thead>
272                     <tr>
273                         <th>ISSN</th>
274                         <th class="anti-the">Title</th>
275                         <th>Notes</th>
276                         <th>Library</th>
277                         <th>Location</th>
278                         <th>Call number</th>
279                         [% FOR field IN additional_fields_for_subscription %]
280                           <th>[% field.name %]</th>
281                         [% END %]
282                         <th class="NoSort">Actions</th>
283                     </tr>
284                   </thead>
285                   <tfoot>
286                     <tr>
287                       <td><input type="text" class="dt-filter" data-column_num="0" placeholder="Search ISSN" /></td>
288                       <td><input type="text" class="dt-filter" data-column_num="1" placeholder="Search title" /></td>
289                       <td><input type="text" class="dt-filter" data-column_num="2" placeholder="Search notes" /></td>
290                       <td><input type="text" class="dt-filter" data-column_num="3" placeholder="Search library" /></td>
291                       <td><input type="text" class="dt-filter" data-column_num="4" placeholder="Search location" /></td>
292                       <td><input type="text" class="dt-filter" data-column_num="5" placeholder="Search callnumber" /></td>
293                       [% FOR field IN additional_fields_for_subscription %]
294                         <td><input type="text" class="dt-filter" data-column_num="[% loop.count + 5 %]" placeholder="Search [% field.name %]" /></td>
295                       [% END %]
296                       <td></td>
297                     </tr>
298                   </tfoot>
299                   <tbody>
300                     [% FOREACH subscription IN closedsubscriptions %]
301                     [% UNLESS subscription.cannotdisplay %]
302                       <tr>
303                         <td>
304                           [% IF ( subscription.issn ) %]
305                             [% subscription.issn %]
306                           [% END %]
307                         </td>
308                         <td>
309                           <a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=[% subscription.subscriptionid %]" class="button" title="subscription detail">[% subscription.title |html %]</a>
310                         </td>
311                         <td>
312                           [% IF ( subscription.notes ) %][% subscription.notes %][% END %]
313                           [% IF ( subscription.internalnotes ) %]([% subscription.internalnotes %])[% END %]
314                         </td>
315                         <td>
316                           [% IF ( subscription.branchcode ) %][% Branches.GetName( subscription.branchcode ) %][% END %]
317                         </td>
318                         <td>
319                           [% IF ( subscription.location ) %][% AuthorisedValues.GetByCode( 'LOC', subscription.location ) %][% END %]
320                         </td>
321                         <td>
322                           [% IF ( subscription.callnumber ) %][% subscription.callnumber %][% END %]
323                         </td>
324                         [% FOR field IN additional_fields_for_subscription %]
325                           [% IF field.authorised_value_category %]
326                             <td>[% AuthorisedValues.GetByCode( field.authorised_value_category, subscription.additional_fields.${field.name} ) %]</td>
327                           [% ELSE %]
328                             <td>[% subscription.additional_fields.${field.name} %]</td>
329                           [% END %]
330                         [% END %]
331                         <td>
332                             <div class="dropdown">
333                                 <a class="btn btn-mini dropdown-toggle" id="closedsubactions[% subscription.subscriptionid %]" role="button" data-toggle="dropdown" href="#">
334                                    Actions <b class="caret"></b>
335                                 </a>
336                                 <ul class="dropdown-menu pull-right" role="menu" aria-labelledby="closedsubactions[% subscription.subscriptionid %]">
337
338                                     [% IF ( routing && CAN_user_serials_routing ) %]
339                                         [% UNLESS ( subscription.cannotedit ) %]
340                                             <li>
341                                                 <a href="/cgi-bin/koha/serials/serials-search.pl?subscriptionid=[% subscription.subscriptionid %]&amp;op=reopen&amp;routing=[% subscription.routing %]&amp;searched=1&amp;title_filter=[% title_filter | uri %]&amp;ISSN_filter=[% ISSN_filter | uri %]&amp;EAN_filter=[% EAN_filter | uri %]&amp;published_filter=[% publisher_filter | uri %]&amp;bookseller_filter=[% bookseller_filter | uri %]&amp;branch_filter=[% branch_filter | uri %]" id="reopensub"> <i class="icon-repeat"></i> Reopen</a>
342                                             </li>
343                                         [% END %]
344                                     [% END # IF ( routing && CAN_user_serials_routing ) %]
345
346                                     <li>
347                                         <a href="/cgi-bin/koha/serials/serials-collection.pl?subscriptionid=[% subscription.subscriptionid %]"><i class="icon-list-alt"></i> Issue history</a>
348                                     </li>
349
350                                 </ul>
351                             </div>
352                         </td>
353                       </tr>
354                     [% END %]
355                     [% END %]
356                   </tbody>
357                 </table>
358               [% ELSE %]
359                 <div class="dialog message">
360                   <p>Your search returned no closed subscriptions.</p>
361                 </div>
362               [% END %]
363             </div>
364           </div>
365         [% ELSE %]
366             <div class="dialog message">
367               <p>Your search returned no results.</p>
368             </div>
369         [% END %]
370       [% END %]
371     </div>
372   </div>
373
374   <div class="yui-b">
375     [% INCLUDE 'serials-menu.inc' %]
376     [% IF ( done_searched ) %]
377     <div id="advsearch">
378         <form action="/cgi-bin/koha/serials/serials-search.pl" method="get">
379           <fieldset class="brief">
380             <h4>Search subscriptions</h4>
381               <ol>
382                 <li>
383                   <label for="issn">ISSN:</label>
384                   <input type="text" id="issn" name="ISSN_filter" value="[% ISSN_filter | html %]" />
385                 </li>
386                 <li>
387                   <label for="title">Title:</label>
388                   <input type="text" id="title" name="title_filter" value="[% title_filter | html %]" />
389                 </li>
390                 [% IF ( marcflavour == "UNIMARC" ) %]
391                 <li>
392                   <label for="ean">EAN:</label>
393                   <input type="text" id="ean" name="EAN_filter" value="[% EAN_filter | html %]" />
394                 </li>
395                 [% END %]
396                 <li>
397                   <label for="callnumber">Call number:</label>
398                   <input type="text" id="callnumber" name="callnumber_filter" value="[% callnumber_filter | html %]" />
399                 </li>
400                 <li>
401                   <label for="publisher">Publisher:</label>
402                   <input type="text" id="publisher" name="publisher_filter" value="[% publisher_filter | html %]" />
403                 </li>
404                 <li>
405                   <label for="bookseller">Vendor:</label>
406                   <input type="text" id="bookseller" name="bookseller_filter" value="[% bookseller_filter | html %]" />
407                 </li>
408                 <li>
409                   <label for="branch">Library:</label>
410                   <select id="branch" name="branch_filter">
411                     <option value="">All</option>
412                     [% FOREACH branch IN branches_loop %]
413                       [% IF ( branch.selected ) %]
414                         <option selected="selected" value="[% branch.branchcode %]">[% branch.branchname %]</option>
415                       [% ELSE %]
416                         <option value="[% branch.branchcode %]">[% branch.branchname %]</option>
417                       [% END %]
418                     [% END %]
419                   </select>
420                 </li>
421                 [% IF locations %]
422                   <li>
423                     <label for="location">Location:</label>
424                     <select name="location_filter">
425                       <option value="">All</option>
426                       [% FOR loc IN locations %]
427                         [% IF loc.selected %]
428                           <option value="[% loc.authorised_value %]" selected="selected">[% loc.lib %]</option>
429                         [% ELSE %]
430                           <option value="[% loc.authorised_value %]">[% loc.lib %]</option>
431                         [% END %]
432                       [% END %]
433                     </select>
434                   </li>
435                 [% END %]
436                 <li>
437                   <label for="to">Expires before:</label>
438                   <input type="text" id="to" name="expiration_date_filter" value="[% expiration_date_filter | $KohaDates %]" size="10" maxlength="10" class="datepickerto" />
439                 </li>
440
441                 [% FOR field IN additional_fields_for_subscription %]
442                   <li>
443                     <label for="additional_field_[% field.id %]ID"> [% field.name %]: </label>
444                     [% IF field.authorised_value_choices %]
445                       <select id="additional_field_[% field.id %]" name="additional_field_[% field.id %]_filter">
446                         <option value="">All</option>
447                         [% FOREACH av IN field.authorised_value_choices %]
448                           [% IF av.authorised_value == additional_field_filters.${field.name}.value %]
449                             <option value="[% av.authorised_value %]" selected="selected">[% av.lib %]</option>
450                           [% ELSE %]
451                             <option value="[% av.authorised_value %]">[% av.lib %]</option>
452                           [% END %]
453                         [% END %]
454                       </select>
455                     [% ELSE %]
456                       <input id="additional_field_[% field.id %]" type="text" value="[% additional_field_filters.${field.name}.value %]" name="additional_field_[% field.id %]_filter" />
457                     [% END %]
458                   </li>
459                 [% END %]
460               </ol>
461               <input type="hidden" name="searched" value="1" />
462               <fieldset class="action">
463                 <input type="submit" value="Search" />
464               </fieldset>
465             </div>
466           </fieldset>
467         </form>
468       [% END %]
469   </div>
470 </div>
471 [% INCLUDE 'intranet-bottom.inc' %]