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