Bug 14060: Remove readonly attributes on date inputs
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / reserve / request.tt
1 [% USE Koha %]
2 [% USE KohaDates %]
3 [% USE Branches %]
4 [% USE Categories %]
5 [% USE ItemTypes %]
6 [% INCLUDE 'doc-head-open.inc' %]
7 [% UNLESS ( multi_hold ) %]
8     <title>Koha &rsaquo; Circulation &rsaquo; Holds &rsaquo; Place a hold on [% title |html %]</title>
9 [% ELSE %]
10     <title>Koha &rsaquo; Circulation &rsaquo; Holds &rsaquo; Confirm holds</title>
11 [% END %]
12 [% INCLUDE 'doc-head-close.inc' %]
13 <link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
14 [% INCLUDE 'datatables.inc' %]
15 [% INCLUDE 'calendar.inc' %]
16 <script type="text/javascript">
17     // <![CDATA[
18 var MSG_CONFIRM_DELETE_HOLD   = _("Are you sure you want to cancel this hold?");
19 var patron_homebranch = "[% borrower_branchname |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]";
20 var override_items = {[% FOREACH bibitemloo IN bibitemloop %][% FOREACH itemloo IN bibitemloo.itemloop %][% IF ( itemloo.override ) %]
21     [% itemloo.itemnumber %]: {
22         homebranch: "[% itemloo.homebranchname |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]",
23         holdallowed: [% itemloo.holdallowed %]
24     },
25 [% END %][% END %][% END %]
26 };
27 var MSG_NO_ITEMS_AVAILABLE = _("A hold cannot be requested on any of these items.");
28
29 $(document).ready(function() {
30     function ToggleHoldsToPlace() {
31         if ( $("#requestany").prop('checked') ) {
32             $("#holds_to_place_count").prop('disabled', false);
33         } else {
34             $("#holds_to_place_count").prop('disabled', true);
35         }
36     }
37     ToggleHoldsToPlace();
38     $("#requestany").on('change', function(){
39         ToggleHoldsToPlace();
40     });
41
42     [% IF AutoResumeSuspendedHolds %]
43         $(".suspend_until_datepicker, .datepickerfrom, .datepickerto").datepicker("option", "minDate", 1);
44     [% END %]
45
46     var my_table = $("#requestspecific").dataTable($.extend(true, {}, dataTablesDefaults, {
47         'bPaginate': false,
48         "sDom": '<"top pager"ilf>t',
49         "aoColumnDefs": [
50             { "sType": "title-string", "aTargets" : [ "title-string" ] }
51         ]
52     }));
53
54     //Override fieldset styling for dataTables search box
55     $("div.top.pager").css("margin-left","1em");
56     $(".dataTables_filter label").css({
57         "width":"auto",
58         "margin-right":"0em"
59     });
60
61 });
62
63 function check() {
64     var msg = "";
65     var count_reserv = 0;
66
67     // check if we have checkitem form
68     if (document.form.checkitem){
69         for (i=0;i<document.form.checkitem.length;i++){
70             if (document.form.checkitem[i].checked == true) {
71                 count_reserv++ ;
72             }
73         }
74         // for only one item, check the checkitem without consider the loop checkitem
75         if (i==0){
76             if (document.form.checkitem.checked == true) {
77                 count_reserv++;
78             }
79         }
80     }
81
82     if (document.form.requestany.checked == true){
83         count_reserv++ ;
84     }
85
86     if (count_reserv == "0"){
87         msg += (_("- Please select an item to place a hold") + "\n");
88     }
89
90     if (msg == "") {
91         $('#hold-request-form').preventDoubleFormSubmit();
92         return(true);
93     } else {
94         alert(msg);
95         return(false);
96     }
97 }
98
99 function checkMultiHold() {
100     var spans = $(".multi_hold_item");
101     if ($(spans).size() == 0) {
102         alert(MSG_NO_ITEMS_AVAILABLE);
103         return false;
104     }
105
106     var biblionumbers = "";
107     $(spans).each(function() {
108         var bibnum = $(this).attr("title");
109         biblionumbers += bibnum + "/";
110     });
111
112     var badSpans = $(".not_holdable");
113     var badBibs = "";
114     $(badSpans).each(function() {
115         var bibnum = $(this).attr("title");
116         badBibs += bibnum + "/";
117     });
118
119     $("#multi_hold_bibs").val(biblionumbers);
120     $("#bad_bibs").val(badBibs);
121
122     $('#hold-request-form').preventDoubleFormSubmit();
123
124     return true;
125 }
126
127  $(document).ready(function() {
128     $("input.needsoverride").click(function() { // This must be before the radio button/checkbox switch logic
129         var itemnumber = this.value;
130         var msg = '';
131
132         switch (override_items[itemnumber].holdallowed) {
133             case 0: msg = _("This item normally cannot be put on hold."); break;
134             case 1: msg = _("This item normally cannot be put on hold except for patrons from %s.").format(override_items[itemnumber].homebranch); break;
135         }
136
137         msg += "\n\n" + _("Place hold on this item?");
138
139         return confirm(msg);
140     });
141     $("input.warning").click(function() {
142         return confirm( _("None of these items can normally be put on hold for this patron.") + "\n\n" + _("Place hold?") );
143     });
144     $("#requestany").click(function() {
145         if(this.checked){
146             $("input[name=checkitem]").each(function() {
147                 $(this).prop("checked", false);
148             });
149         }
150     });
151     $("input[name=checkitem]").click(function() {
152         onechecked = 0;
153         $("input[name=checkitem]").each(function() {
154             if(this.checked){
155                 onechecked = 1;
156             }
157         });
158         if(onechecked == 1){
159             $("#requestany").prop("checked", false);
160         } else {
161             $("#requestany").prop("checked",true);
162         }
163     });
164
165     $(".clear-date").on("click",function(e){
166         e.preventDefault();
167         var fieldID = this.id.replace("clear-date-","");
168         $("#" + fieldID).val("");
169     });
170
171
172 [% UNLESS ( borrowernumber || borrowers || noitems ) %]
173     [% IF ( CircAutocompl ) %]
174     $( "#patron" ).autocomplete({
175         source: "/cgi-bin/koha/circ/ysearch.pl",
176         minLength: 3,
177         select: function( event, ui ) {
178             $( "#patron" ).val( ui.item.cardnumber );
179             $( "#holds_patronsearch" ).submit();
180             return false;
181         }
182     })
183     .data( "ui-autocomplete" )._renderItem = function( ul, item ) {
184         return $( "<li></li>" )
185         .data( "ui-autocomplete-item", item )
186         .append( "<a>" + item.surname + ", " + item.firstname +
187                  " (" + item.cardnumber + ") <small>" + item.address +
188                  " " + item.city + " " + item.zipcode + " " +
189                  item.country + "</small></a>" )
190         .appendTo( ul );
191     };
192     [% END %]
193 [% END %]
194
195  });
196
197 // ]]>
198 </script>
199 </head>
200 <body id="circ_request" class="catalog">
201 [% INCLUDE 'header.inc' %]
202 [% INCLUDE 'circ-search.inc' %]
203
204 [% UNLESS ( multi_hold ) %]
205     <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a> &rsaquo; <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber %]">[% title |html %]</a> &rsaquo; Place a hold on [% title |html %]</div>
206 [% ELSE %]
207     <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a> &rsaquo; Confirm holds</div>
208 [% END %]
209
210  <div id="doc3" class="yui-t2">
211
212    <div id="bd">
213         <div id="yui-main">
214         <div class="yui-b">
215 [% IF ( noitems ) %]
216     <div class="dialog alert">
217     [%IF (multi_hold) %]
218         <strong>Cannot place hold:</strong> one or more records without items attached.
219     [% ELSE %]
220         <strong>Cannot place hold:</strong> this record has no items attached.
221     [% END %]
222     </div>
223 [% END %]
224
225   [% IF ( messagetransfert ) %]
226                 <div class="dialog message">
227                                 <h2>Hold found for ([% nextreservtitle %]), please transfer</h2>
228                         <p>Hold placed by : <strong> [% nextreservsurname %] [% nextreservfirstname %]</strong> at : <strong> [% branchname %] </strong>, Please transfer this item.
229                         </p>
230                         <form name="cancelReservewithtransfert" action="branchreserves.pl" method="post">
231                                 <input type="submit" class="button" />
232                         </form>
233                 </div>
234   [% END %]
235
236   [% UNLESS ( multi_hold ) %]
237     <h1>Place a hold on [% INCLUDE 'biblio-default-view.inc' %][% title |html %]</a></h1>
238   [% ELSE %]
239     <h1>Confirm holds</h1>
240   [% END %]
241
242   [% UNLESS borrowernumber OR noitems %]
243     [% IF ( messageborrower ) %]
244       <div class="dialog alert"><h3>Patron not found</h3><p>No patron with this name, please, try another</p> </div>
245     [% END %]
246     <form  id="holds_patronsearch" action="request.pl?biblionumber=[% biblionumber %]" method="post">
247         <fieldset id="circ_holds_selectborrower" class="brief">
248
249         [% UNLESS borrowers %]
250                 <label for="patron">Patron: </label>
251                 <div class="hint">Enter patron card number or partial name:</div>
252                 <input type="text" size="40" id="patron" class="focus" name="findborrower" />
253                 <input type="submit" value="Search" />
254                 <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
255             </fieldset>
256         [% ELSE %]
257             [% INCLUDE 'circ-patron-search-results.inc' destination = "holds" %]
258           </fieldset>
259
260         [% END %]
261         [% IF ( multi_hold ) %]
262             <input type="hidden" name="multi_hold" value="[% multi_hold %]"/>
263             <input type="hidden" name="biblionumbers" value="[% biblionumbers %]"/>
264         [% END %]
265     </form>
266   [% ELSIF NOT noitems %]
267
268 [% IF ( exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || alreadypossession || ageRestricted ) %]
269     <div class="dialog alert">
270
271     [% UNLESS ( multi_hold ) %]
272       <h3>Cannot place hold</h3>
273       <ul>
274         [% IF ( exceeded_maxreserves ) %]
275           <li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> can only place a maximum of [% maxreserves %] total holds.</li>
276         [% ELSIF ( exceeded_holds_per_record ) %]
277           <li><strong>Too many holds for this record: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> can only place a maximum of [% max_holds_for_record %] hold(s) on this record.</li>
278         [% ELSIF ( alreadypossession ) %]
279           <li> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>is already in possession</strong> of one item</lie
280         [% ELSIF ( alreadyreserved ) %]
281           <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>already has a hold</strong> on this item </li>
282         [% ELSIF ( ageRestricted ) %]
283           <li><strong>Age restricted</strong></li>
284         [% ELSIF ( none_available ) %]
285           <li> <strong>No items are available</strong> to be placed on hold</li>
286         [% ELSIF ( maxreserves ) %]
287           <li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> has too many holds.</li>
288         [% END %]
289       </ul>
290     [% ELSE %]
291         <h3>Cannot place hold on some items</h3>
292         [% IF ( exceeded_maxreserves ) %]
293           <li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> can place [% new_reserves_allowed %] of the requested [% new_reserves_count %] holds for a maximum of [% maxreserves %] total holds.</li>
294         [% ELSIF ( exceeded_holds_per_record ) %]
295             [% FOREACH biblioloo IN biblioloop %]
296                 [% IF (biblioloo.tooManyHoldsForThisRecord) %]
297                     <li><strong>Too many holds for <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber %]"> [% biblioloo.title %]</a>: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> can only place a maximum of [% max_holds_for_record %] hold(s) on this record.</li>
298                 [% END %]
299             [% END %]
300         [% END %]
301     [% END %]
302
303     </div>
304 [% END %]
305
306 [% IF ( expiry || diffbranch || restricted || ( amount_outstanding && Koha.Preference('maxoutstanding') && amount_outstanding > Koha.Preference('maxoutstanding') ) ) %]
307 <div class="dialog message"><ul>
308     [% IF ( expiry ) %]
309     <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a>: <strong>Account has expired</strong></li>
310     [% END %]
311
312     [% IF restricted %]
313     <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]#reldebarments">[% borrowerfirstname %] [% borrowersurname %]</a>: <strong>Patron has restrictions</strong></li>
314     [% END %]
315
316     [% IF amount_outstanding && Koha.Preference('maxoutstanding') && amount_outstanding > Koha.Preference('maxoutstanding') %]
317     <li><a href="/cgi-bin/koha/members/pay.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a>: <strong>Patron has outstanding fines: [% amount_outstanding | format('%.2f') %]</strong></li>
318     [% END %]
319
320     [% IF ( diffbranch ) %]
321     <li> <strong>Pickup library is different. </strong>Patron: <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> Patron's home library: ([% borrower_branchname %] / [% borrower_branchcode %] )</li>
322     [% END %]
323
324 </ul></div>
325 [% END %]
326
327   [% IF ( messageborrower ) %]
328    <div class="dialog alert"><h3>Patron not found:</h3> <p>Name or barcode not found. Please try an other </p></div>
329   [% END %]
330
331   <fieldset class="rows left">
332     <legend>Hold details</legend>
333         [% UNLESS ( multi_hold ) %]
334             <form action="placerequest.pl" method="post" onsubmit="return check();" name="form" id="hold-request-form">
335         [% ELSE %]
336             <form action="placerequest.pl" method="post" onsubmit="return checkMultiHold();" name="form">
337         [% END %]
338
339         <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
340         <input type="hidden" name="type" value="str8" />
341
342         [% IF ( multi_hold ) %]
343             <input type="hidden" name="multi_hold" value="[% multi_hold %]"/>
344             <input type="hidden" name="biblionumbers" id="multi_hold_bibs" value="[% biblionumbers %]"/>
345             <input type="hidden" name="bad_bibs" id="bad_bibs" value=""/>
346             <input type="hidden" name="request" value="any"/>
347             [% FOREACH biblioloo IN biblioloop %]
348               <input type="hidden" name="title_[% biblioloo.biblionumber %]" value="[% biblioloo.title |html %]"/>
349               <input type="hidden" name="rank_[% biblioloo.biblionumber %]" value="[% biblioloo.rank %]"/>
350             [% END %]
351         [% ELSE %]
352             <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
353             <input type="hidden" name="title" value="[% title |html %]" />
354             <input type="hidden" name="rank-request" value="[% fixedRank %]" />
355         [% END %]
356
357        <ol> <li><span class="label">Patron:</span>
358             [% IF ( borrowernumber ) %]
359                 <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] ([% cardnumber %])</a>
360             [% ELSE %]
361                 Not defined yet
362             [% END %]
363         </li>
364         [% UNLESS ( multi_hold ) %]
365           <li>
366               <span class="label">Estimated priority:</span>
367               <strong>[% fixedRank %]</strong>
368           </li>
369         [% END %]
370         <li>
371             <label for="holdnotes">Notes:</label>
372             <textarea id="holdnotes" name="notes" cols="30" rows="1"></textarea>
373         </li>
374         <li>
375             <label for="pickup">Pickup at:</label>
376             <select name="pickup" size="1" id="pickup">
377             [%- FOREACH branchloo IN branchloop %]
378               [% IF ( branchloo.selected ) -%]
379                 <option value="[% branchloo.branchcode %]" selected="selected">[% branchloo.branchname %]</option>
380               [%- ELSE -%]
381                 <option value="[% branchloo.branchcode %]">[% branchloo.branchname %]</option>
382               [%- END -%]
383             [%- END %]
384             </select>
385         </li>
386
387         [% UNLESS ( multi_hold ) %]
388             [% IF Koha.Preference('AllowHoldItemTypeSelection') %]
389                 <li>
390                     <label for="itemtype">Request specific item type:</label>
391                     <select name="itemtype" size="1" id="itemtype">
392                         <option value="">Any item type</option>
393                         [%- FOREACH itemtype IN available_itemtypes %]
394                             <option value="[% itemtype %]">[% ItemTypes.GetDescription( itemtype ) %]</option>
395                         [%- END %]
396                     </select>
397                 </li>
398             [% END %]
399         [% END %]
400
401         [% IF ( reserve_in_future ) %]
402         <li>
403         <label for="from">Hold starts on date:</label>
404         <input name="reserve_date" id="from" size="10" class="datepickerfrom">
405         <a href="#" id="clear-date-from" class="clear-date">Clear date</a>
406         </li>
407         [% END %]
408
409         <li>
410         <label for="to">Hold expires on date:</label>
411         <input name="expiration_date" id="to" size="10" class="datepickerto" />
412         <a href="#" id="clear-date-to" class="clear-date">Clear date</a>
413         </li>
414
415         [% UNLESS ( multi_hold ) %]
416           <li> <label for="requestany">Hold next available item </label>
417                [% IF force_hold_level == 'item' %]
418                    <input type="checkbox" id="requestany" name="request" disabled="true" />
419                [% ELSIF force_hold_level == 'record' %]
420                    <input type="checkbox" id="requestany" checked="checked" value="Any" disabled="true"/>
421                    <input type="hidden" name="request" value="Any"/>
422                [% ELSE %]
423                    <input type="checkbox" id="requestany" name="request" checked="checked" value="Any" />
424                 [% END %]
425                <input type="hidden" name="biblioitem" value="[% biblioitemnumber %]" />
426                <input type="hidden" name="alreadyreserved" value="[% alreadyreserved %]" />
427           </li>
428
429           [% IF remaining_holds_for_record > 1 %]
430               [% SET count = 1 %]
431               <li>
432                    <label for="holds_to_place_count">Holds to place (count)</label>
433                    <select name="holds_to_place_count" id="holds_to_place_count">
434                    [% WHILE count <= remaining_holds_for_record %]
435                         <option value="[% count %]">[% count %]</option>
436                         [% SET count = count + 1 %]
437                    [% END %]
438
439                    </select>
440               </li>
441             [% ELSE %]
442                 <input type="hidden" name="holds_to_place_count" value="1">
443             [% END %]
444         [% END %]
445
446 </ol>
447    [% UNLESS ( multi_hold ) %]
448         <fieldset class="action">
449             [% IF ( borrowernumber ) %]
450                 [% IF ( override_required ) %]
451                     <input type="submit" class="warning" value="Place hold" />
452                 [% ELSIF ( none_available ) %]
453                     <input type="submit" disabled="disabled" value="Place hold" />
454                 [% ELSE %]
455                     <input type="submit" value="Place hold" />
456                 [% END %]
457             [% END %]
458         </fieldset>
459         [% FOREACH bibitemloo IN bibitemloop %]
460           <ol>
461             [% UNLESS ( item_level_itypes ) %]
462               <li><span class="label">Item type:</span> [% bibitemloo.description %]</li>
463             [% END %]
464
465             [% IF ( bibitemloo.publicationyear ) %]<li><span class="label">Publication year:</span> [% bibitemloo.publicationyear %]</li>[% END %]
466           </ol>
467
468         <h2 style="padding: 0 1em;">
469             Place a hold on a specific item
470             [% IF bibitemloo.force_hold_level == 'item' %]
471                 <span class="error"><i>(Required)</i></span>
472             [% END %]
473         </h2>
474         <table id="requestspecific">
475             <thead>
476                 <tr>
477                     <th>Hold</th>
478                 [% IF ( item_level_itypes ) %]
479                     <th>Item type</th>
480                 [% END %]
481                     <th>Barcode</th>
482                     <th>Home library</th>
483                     <th>Last location</th>
484                     <th>Call no.</th>
485                     <th>Copy number</th>
486                 [% IF itemdata_enumchron %]
487                     <th>Vol no.</th>
488                 [% END %]
489                     <th class="title-string">Information</th>
490                 </tr>
491             </thead>
492             <tbody>
493             [% SET selected = 0 %]
494             [% FOREACH itemloo IN bibitemloo.itemloop %]
495             [% UNLESS ( itemloo.hide ) %]
496                 <tr class="[% itemloo.backgroundcolor %]">
497                     <td>
498                 [% IF itemloo.force_hold_level == 'record' # Patron has placed a record level hold previously for this record %]
499                     <span class="error">
500                         <i class="fa fa-times fa-lg" alt="Cannot be put on hold"></i>
501                         Hold must be record level
502                     </span>
503                 [% ELSIF ( itemloo.available ) %]
504                     <input type="radio" name="checkitem" value="[% itemloo.itemnumber %]" />
505                 [% ELSIF ( itemloo.override ) %]
506                     <input type="radio" name="checkitem" class="needsoverride" value="[% itemloo.itemnumber %]" />
507                     <i class="fa fa-exclamation-triangle fa-lg" style="color:gold" alt="Requires override of hold policy"/></i>
508                 [% ELSE %]
509                     <span class="error">
510                         <i class="fa fa-times fa-lg" alt="Cannot be put on hold"></i>
511                         [% IF itemloo.not_holdable %]
512                             [% IF itemloo.not_holdable == 'damaged' %]
513                                 Item damaged
514                             [% ELSIF itemloo.not_holdable == 'ageRestricted' %]
515                                 Age restricted
516                             [% ELSIF itemloo.not_holdable == 'tooManyHoldsForThisRecord' %]
517                                 Exceeded max holds per record
518                             [% ELSIF itemloo.not_holdable == 'tooManyReserves' %]
519                                 Too many holds
520                             [% ELSIF itemloo.not_holdable == 'notReservable' %]
521                                 Not holdable
522                             [% ELSIF itemloo.not_holdable == 'cannotReserveFromOtherBranches' %]
523                                 Patron is from different library
524                             [% ELSIF itemloo.not_holdable == 'itemAlreadyOnHold' %]
525                                 Patron already has hold for this item
526                             [% ELSE %]
527                                 [% itemloo.not_holdable %]
528                             [% END %]
529                         [% END %]
530                     </span>
531                 [% END %]
532                     </td>
533                 [% IF ( item_level_itypes ) %]
534                     <td>
535                     [% UNLESS ( noItemTypeImages ) %]
536                         [% IF ( itemloo.imageurl ) %]<img src="[% itemloo.imageurl %]" alt="" /> <br /> [% END %]
537                     [% END %]
538                         [% itemloo.itypename %]
539                     </td>
540                 [% END %]
541
542                     <td>
543                         [% itemloo.barcode %]
544                     </td>
545                     <td>
546                         [% itemloo.homebranchname %]
547                     </td>
548                     <td>
549                         [% itemloo.holdingbranchname %]
550                     </td>
551                     <td>
552                         [% itemloo.itemcallnumber %]
553                     </td>
554                     <td>
555                         [% IF ( itemloo.copynumber ) %][% itemloo.copynumber %][% ELSE %]&nbsp;[% END %]
556                     </td>
557                 [% IF itemdata_enumchron %]
558                     <td>
559                         [% itemloo.enumchron %]
560                     </td>
561                 [% END %]
562                     <td>
563                 [% IF ( itemloo.onloan ) %]
564                     <span title="[% itemloo.date_due %]" class="checkedout">Due [% itemloo.date_due | $KohaDates as_due_date => 1 %]</span>
565                 [% ELSE %]
566                     <span title="0000-00-00">
567                         [% IF ( itemloo.transfertwhen ) %]
568                             In transit from [% itemloo.transfertfrom %],
569                             to [% itemloo.transfertto %], since [% itemloo.transfertwhen %]
570                         [% END %]
571                     </span>
572                 [% END %]
573
574                 [% IF ( itemloo.message ) %]
575                    Unavailable (lost or missing)
576                 [% END %]
577
578                 [% IF ( itemloo.notforloan ) %]
579                    Not for loan ([% itemloo.notforloanvalue %])
580                 [% END %]
581
582                 [% IF ( itemloo.reservedate ) %]
583                     [% IF ( itemloo.nocancel ) %]
584                             Can't be cancelled when item is in transit
585                     [% ELSE %]
586                     [% IF ( itemloo.waitingdate ) %]Waiting[% ELSE %]On hold[% END %]
587                     [% IF ( itemloo.canreservefromotherbranches ) %]for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% itemloo.ReservedForBorrowernumber %]">[% itemloo.ReservedForFirstname %] [% itemloo.ReservedForSurname %]</a>[% END %] [% IF ( itemloo.waitingdate ) %]at[% ELSE %]expected at[% END %] [% itemloo.ExpectedAtLibrary %]
588                     since
589                     [% IF ( itemloo.waitingdate ) %][% itemloo.waitingdate | $KohaDates %][% ELSE %][% IF ( itemloo.reservedate ) %][% itemloo.reservedate %][% END %][% END %]. <a class="info" href="modrequest.pl?CancelBiblioNumber=[% itemloo.biblionumber %]&amp;CancelBorrowerNumber=[% itemloo.ReservedForBorrowernumber %]&amp;CancelItemnumber=[% itemloo.itemnumber %]"  onclick="return confirmDelete(MSG_CONFIRM_DELETE_HOLD);">Cancel hold</a>
590
591                     [% END %]
592                 [% ELSE %]
593                     Not on hold
594                 [% END %]
595
596                 [% IF itemloo.item_level_holds == "" %]
597                     <br/>Item level hold not allowed from OPAC
598                 [% ELSIF itemloo.item_level_holds == "F" %]
599                     <br/>Item level hold forced from OPAC
600                 [% END %]
601                     </td>
602                 </tr>
603             [% END %] <!--UNLESS item hide-->
604             [% END %] <!-- itemloop -->
605             </tbody>
606         </table>
607     [% IF ( bibitemloo.hiddencount ) %]
608         <form>
609         <p class="hiddencount"><a href="request.pl?biblionumber=[% bibitemloo.biblionumber %]&amp;borrowernumber=[% bibitemloo.borrowernumber %]&amp;showallitems=1">Show all items ([% bibitemloo.hiddencount %] hidden)</a></p>
610         </form>
611     [% END %] <!-- hiddencount -->
612     [% END %] <!-- bibitemloop -->
613
614   [% ELSE %]<!-- UNLESS multi_hold -->
615
616     <table id="requesttitles">
617       <tr>
618         <th>Title</th>
619         [% UNLESS ( item_level_itypes ) %]
620           <th>Item type</th>
621         [% END %]
622         <th>Priority</th>
623         <th>Information</th>
624       </tr>
625       [% FOREACH biblioloo IN biblioloop %]
626         [% IF ( biblioloo.warn ) %]
627           <tr class="onissue">
628         [% ELSE %]
629           <tr>
630         [% END %]
631           <td>
632             <ul>
633               <li><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber %]">[% biblioloo.title |html %]</a></li>
634               [% IF ( biblioloo.publicationyear ) %]
635                 <li><span class="label">Publication year:</span> [% biblioloo.publicationyear %]</li>
636               [% END %]
637             </ul>
638             [% UNLESS ( biblioloo.warn ) %]
639               <span class="multi_hold_item" title="[% biblioloo.biblionumber %]"></span>
640             [% ELSE %]
641               <span class="not_holdable" title="[% biblioloo.biblionumber %]"></span>
642             [% END %]
643           </td>
644           [% UNLESS ( item_level_itypes ) %]
645             <td>
646               <img src="[% biblioloo.imageurl %]" alt="[% biblioloo.itypename %]" title="[% biblioloo.itypename %]" />
647             </td>
648           [% END %]
649             <td>[% biblioloo.rank %]</td>
650           <td>
651             [% IF ( biblioloo.alreadyres ) %]
652               <ul>
653             [% ELSE %]
654               [% IF ( biblioloo.none_avail ) %]
655                 <ul>
656               [% END %]
657             [% END %]
658
659           [% IF ( biblioloo.alreadyres ) %]
660               <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>already has a hold</strong> on this item </li>
661           [% END %]
662           [% IF ( biblioloo.none_avail ) %]
663               <li> <strong>No items are available</strong> to be placed on hold</li>
664           [% END %]
665
666             [% IF ( biblioloo.alreadyres ) %]
667               </ul>
668             [% ELSE %]
669               [% IF ( biblioloo.none_avail ) %]
670                 </ul>
671               [% END %]
672             [% END %]
673
674           </td>
675         </tr>
676       [% END %]
677     </table>
678
679   [% END %]<!-- /multi_hold -->
680
681     <fieldset class="action">
682         [% IF ( borrowernumber ) %]
683             [% IF ( override_required ) %]
684                 <input type="submit" class="warning" value="Place hold" />
685             [% ELSIF ( none_available ) %]
686                 <input type="submit" disabled="disabled" value="Place hold" />
687             [% ELSE %]
688                 <input type="submit" value="Place hold" />
689             [% END %]
690         [% END %]
691     </fieldset>
692     </form>
693         </fieldset>
694 [% END %]
695
696 [% UNLESS ( borrowernumber ) %]
697 [% IF ( reserveloop ) %]
698 <form name="T[% time %]" action="modrequest.pl" method="post">
699   [% IF ( multi_hold ) %]
700     <input type = "hidden" name="multi_hold" value="1"/>
701     <input type = "hidden" name="biblionumbers" value="[% biblionumbers %]"/>
702   [% END %]
703
704 <fieldset class="rows left">
705 <legend>Existing holds</legend>
706
707 [% FOREACH biblioloo IN biblioloop %]
708
709     [% IF ( biblioloo.reserveloop ) %]
710     <table>
711       [% IF ( multi_hold ) %]
712           <caption><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber %]">[% biblioloo.title |html %]</a></caption>
713       [% END %]
714       <tr>
715         [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
716             <th>Priority</th>
717                 <th>&nbsp;</th>
718         [% ELSE %]
719             <th>Delete?</th>
720         [% END %]
721         <th>Patron</th>
722         <th>Notes</th>
723         <th>Date</th>
724         <th>Expiration</th>
725         <th>Pickup library</th>
726         <th>Details</th>
727         [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
728             <th><img src="[% interface %]/[% theme %]/img/go-bottom.png" alt="Toggle set to lowest priority" /></th>
729         [% END %]
730         <th>&nbsp;</th>
731     [% IF SuspendHoldsIntranet %]<th>&nbsp;</th><!-- Suspend Holds Column Header -->[% END %]
732       </tr>
733   [% FOREACH reserveloo IN biblioloo.reserveloop %]
734         <tr>
735         <td>
736           <input type="hidden" name="reserve_id" value="[% reserveloo.reserve_id %]" />
737           <input type="hidden" name="borrowernumber" value="[% reserveloo.borrowernumber %]" />
738           <input type="hidden" name="biblionumber" value="[% reserveloo.biblionumber %]" />
739           <select name="rank-request">
740               [% IF ( reserveloo.found ) %]
741                   [% IF ( reserveloo.intransit ) %]
742                       <option value="T" selected="selected">In transit</option>
743                   [% ELSE %]
744                       <option value="W" selected="selected">Waiting</option>
745                   [% END %]
746               [% END %]
747
748               [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
749                   [% FOREACH optionloo IN reserveloo.optionloop %]
750                       [% IF ( optionloo.selected ) %]
751                           <option value="[% optionloo.num %]" selected="selected">[% optionloo.num %]</option>
752                       [% ELSE %]
753                           <option value="[% optionloo.num %]">[% optionloo.num %]</option>
754                       [% END %]
755                   [% END %]
756               [% ELSIF !reserveloo.found %]
757                   <option value="[% reserveloo.priority %]" selected="selected">[% reserveloo.priority %]</option>
758               [% END %]
759               <option value="del">del</option>
760           </select>
761         </td>
762
763      [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
764         <td style="white-space:nowrap;">
765             <a title="Move hold up" href="request.pl?action=move&amp;where=up&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;reserve_id=[% reserveloo.reserve_id %]&amp;date=[% reserveloo.date %]">
766             <img src="[% interface %]/[% theme %]/img/go-up.png" alt="Go up" />
767                 </a>
768
769                 <a title="Move hold to top" href="request.pl?action=move&amp;where=top&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;reserve_id=[% reserveloo.reserve_id %]&amp;date=[% reserveloo.date %]">
770                     <img src="[% interface %]/[% theme %]/img/go-top.png" alt="Go top" />
771                 </a>
772
773                 <a title="Move hold to bottom" href="request.pl?action=move&amp;where=bottom&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;reserve_id=[% reserveloo.reserve_id %]&amp;date=[% reserveloo.date %]">
774                     <img src="[% interface %]/[% theme %]/img/go-bottom.png" alt="Go bottom" />
775                 </a>
776
777                 <a title="Move hold down" href="request.pl?action=move&amp;where=down&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;reserve_id=[% reserveloo.reserve_id %]&amp;date=[% reserveloo.date %]">
778                     <img src="[% interface %]/[% theme %]/img/go-down.png" alt="Go down" />
779                 </a>
780         </td>
781     [% END %]
782
783         <td>
784           <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% reserveloo.borrowernumber %]" >
785           [% IF ( reserveloo.hidename ) %]
786               [% reserveloo.cardnumber (reserveloo.borrowernumber) %]
787           [% ELSE %]
788               [% reserveloo.firstname %] [% reserveloo.surname %]
789           [% END %]
790           </a>
791         </td>
792         <td>[% reserveloo.notes %]</td>
793         <td>[% reserveloo.date %]</td>
794         <td>
795             [% IF reserveloo.waiting_until %]
796                 [% reserveloo.waiting_until | $KohaDates %]
797             [% ELSE %]
798                 [% reserveloo.expirationdate %]
799             [% END %]
800         </td>
801         <td>
802     [% IF ( reserveloo.found ) %]
803         [% IF ( reserveloo.atdestination ) %]
804             [% IF ( reserveloo.found ) %]
805                 Item waiting at <b> [% reserveloo.wbrname %]</b> <input type="hidden" name="pickup" value="[% reserveloo.wbrcode %]" /> since [% reserveloo.waiting_date | $KohaDates %]
806             [% ELSE %]
807                 Waiting to be pulled <input type="hidden" name="pickup" value="[% reserveloo.wbrcode %]" />
808             [% END %]
809           [% ELSE %]
810             Item being transferred to <b> [% reserveloo.wbrname %]</b> <input type="hidden" name="pickup" value="[% reserveloo.wbrcode %]" />
811          [% END %]
812     [% ELSE %]
813           <select name="pickup">
814       [% FOREACH branchloo IN reserveloo.branchloop %]
815         [% IF ( branchloo.selected ) %]
816             <option value="[% branchloo.branchcode %]" selected="selected">
817         [% ELSE %]
818             <option value="[% branchloo.branchcode %]">
819         [% END %]
820               [% branchloo.branchname %]
821             </option>
822       [% END %]
823           </select>
824     [% END %]
825         </td>
826         <td>
827     [% IF ( reserveloo.found ) %]
828           <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% reserveloo.biblionumber %]">
829                 [% IF ( reserveloo.barcodenumber ) %]
830                     [% reserveloo.barcodenumber %]
831                     <input type="hidden" name="itemnumber" value="[% reserveloo.itemnumber %]" />
832                 [% ELSE %]
833                     No barcode
834                 [% END %]
835           </a>
836     [% ELSE %]
837             [% IF ( reserveloo.item_level_hold ) %]
838                 <i>Only item
839                 <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% reserveloo.biblionumber %]">
840                      [% IF ( reserveloo.barcodenumber ) %]
841                          [% reserveloo.barcodenumber %]
842                         <input type="hidden" name="itemnumber" value="[% reserveloo.itemnumber %]" />
843                     [% ELSE %]
844                         No barcode
845                     [% END %]
846                 </a>
847                 </i>
848             [% ELSE %]
849                 [% IF reserveloo.itemtype %]
850                     <i>Next available [% ItemTypes.GetDescription( reserveloo.itemtype ) %] item</i>
851                 [% ELSE %]
852                     <i>Next available</i>
853                 [% END %]
854                  <input type="hidden" name="itemnumber" value="" />
855             [% END %]
856     [% END %]
857         </td>
858
859     [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
860         <td>
861                 <a title="Toggle lowest priority" href="request.pl?action=setLowestPriority&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;reserve_id=[% reserveloo.reserve_id %]&amp;date=[% reserveloo.date %]">
862                         [% IF ( reserveloo.lowestPriority ) %]
863                         <img src="[% interface %]/[% theme %]/img/go-bottom.png" alt="Unset lowest priority" />
864                         [% ELSE %]
865                         <img src="[% interface %]/[% theme %]/img/go-down.png" alt="Set to lowest priority" />
866                         [% END %]
867                 </a>
868         </td>
869     [% END %]
870
871         <td>
872            <a title="Cancel hold" href="request.pl?action=cancel&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;reserve_id=[% reserveloo.reserve_id %]&amp;date=[% reserveloo.date %]">
873                     <img src="[% interface %]/[% theme %]/img/x.png" alt="Cancel" />
874                 </a>
875         </td>
876
877         [% IF SuspendHoldsIntranet %]
878         <td>
879         [% UNLESS ( reserveloo.found ) %]
880             <input type="button" value="[% IF ( reserveloo.suspend ) %]Unsuspend[% ELSE %]Suspend[% END %]" onclick="window.location.href='request.pl?action=toggleSuspend&amp;reserve_id=[% reserveloo.reserve_id %]&amp;borrowernumber=[% reserveloo.borrowernumber %]&amp;biblionumber=[% reserveloo.biblionumber %]&amp;date=[% reserveloo.date %]&amp;suspend_until=' + $('#suspend_until_[% reserveloo.reserve_id %]').val()" />
881
882             [% IF AutoResumeSuspendedHolds %]
883                 <label for="suspend_until_[% reserveloo.reserve_id %]">[% IF ( reserveloo.suspend ) %] on [% ELSE %] until [% END %]</label>
884                 <input name="suspend_until" id="suspend_until_[% reserveloo.reserve_id %]" size="10" value="[% reserveloo.suspend_until | $KohaDates %]" class="datepicker suspend_until_datepicker" />
885                 <a href='#' onclick="document.getElementById('suspend_until_[% reserveloo.reserve_id %]').value='';">Clear date</a>
886             [% ELSE %]
887                 <input type="hidden" name="suspend_until" id="suspend_until_[% reserveloo.reserve_id %]" value=""/>
888             [% END %]
889         [% ELSE %]
890                 <input type="hidden" name="suspend_until" value="" />
891         [% END %]
892         </td>
893         [% END # IF SuspendHoldsIntranet %]
894
895       </tr>
896
897   [% END %] <!-- existing reserveloop -->
898      </table>
899   [% END %]<!-- /reserveloop -->
900 [% END %]<!-- /biblioloop -->
901
902 <fieldset class="action">
903   <input type="submit" name="submit" value="Update hold(s)" />
904 </fieldset>
905 </fieldset>
906 </form>
907 [% END %]
908 [% END %]
909 </div>
910 </div>
911
912 <div class="yui-b">
913 [% UNLESS ( multi_hold ) %]
914   [% INCLUDE 'biblio-view-menu.inc' %]
915 [% END %]
916
917 </div>
918 </div>
919 [% INCLUDE 'intranet-bottom.inc' %]