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