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