Bug 35307: Add a hidden input for expired holds
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / includes / holds_table.inc
1 [% USE Koha %]
2 [% SET hold_cancellation = AuthorisedValues.GetAuthValueDropbox('HOLD_CANCELLATION') %]
3 [% USE AuthorisedValues %]
4 <table class="holds_table">
5     <thead>
6         <tr>
7             <th><input type="checkbox" class="select_hold_all"/></th>
8             <th>Priority</th>
9             [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
10                 <th>&nbsp;</th>
11             [% END %]
12             <th>Patron</th>
13             <th>Notes</th>
14             <th>Date</th>
15             <th>Expiration</th>
16             <th>Pickup library</th>
17             <th>Details</th>
18             [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
19                 <th>
20                     <i class="fa fa-lg fa-rotate-90 fa-fast-forward" title="Toggle set to lowest priority"></i>
21                 </th>
22             [% END %]
23             <th>&nbsp;</th>
24             <th>&nbsp;</th>
25             <th>Print hold/transfer slip</th>
26         </tr>
27     </thead>
28     [%- SET first_priority = 0 -%]
29     [%- SET found_holds = 0 -%]
30     [%- SET last_priority  = holds.last.priority -%]
31
32     [% BLOCK priority_dropdown %]
33         [%- SET loop_priority = 1 -%]
34         [%- WHILE loop_priority <= last_priority -%]
35             [%- IF this_priority == loop_priority -%]
36                 <option value="[% loop_priority | html %]" selected="selected">[% loop_priority | html %]</option>
37             [%- ELSE -%]
38                 <option value="[% loop_priority | html %]">[% loop_priority | html %]</option>
39             [%- END -%]
40             [%- loop_priority = loop_priority + 1- %]
41         [%- END -%]
42     [% END %]
43
44     [% FOREACH hold IN holds %]
45     [%- IF !hold.found && first_priority == 0 -%]
46         [%- first_priority = hold.priority -%]
47         [%- found_holds = loop.index() -%]
48     [%- END -%]
49     [%- IF Koha.Preference('HoldsSplitQueueNumbering') == 'actual' -%]
50         [%- this_priority = hold.priority -%]
51     [%- ELSE -%]
52         [%- this_priority = loop.count() - found_holds -%]
53     [%- END -%]
54         [% IF hold.suspend %]
55             <tr class="suspend">
56         [% ELSE %]
57             <tr>
58         [% END %]
59             <td><input type="checkbox" class="select_hold" data-id="[% hold.reserve_id | html %]"/></td>
60             <td>
61                 <input type="hidden" name="reserve_id" value="[% hold.reserve_id | html %]" />
62                 <input type="hidden" name="borrowernumber" value="[% hold.borrowernumber | html %]" />
63                 <input type="hidden" name="biblionumber" value="[% hold.biblionumber | html %]" />
64                 [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
65                     [% IF Koha.Preference('HoldsSplitQueue') == "nothing" && !hold.found %]
66                         <select name="rank-request" class="rank-request" data-hold-id="[% hold.reserve_id | html %]">
67                         [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %]
68                             [% PROCESS priority_dropdown %]
69                         [% ELSE %]
70                             <option value="[% hold.priority | html %]" selected="selected">[% this_priority | html %]</option>
71                         [% END %]
72                             <option value="del">del</option>
73                         </select>
74                     [% ELSE %]
75                         <input type="hidden" name="rank-request" class="rank-request" value="[% hold.priority | html %]" data-hold-id="[% hold.reserve_id | html %]">
76                         <select name="rank-request" class="rank-request" disabled="disabled" data-hold-id="[% hold.reserve_id | html %]">
77                         [% IF ( hold.found ) %]
78                             [% IF ( hold.intransit ) %]
79                                 <option value="T" selected="selected">In transit</option>
80                             [% ELSIF (hold.inprocessing) %]
81                                 <option value="P" selected="selected">In processing</option>
82                             [% ELSE %]
83                                 <option value="W" selected="selected">Waiting</option>
84                             [% END %]
85                         [% ELSE %]
86                             <option value="[% hold.priority | html %]" selected="selected">[% this_priority | html %]</option>
87                         [% END %]
88                         </select>
89                     [% END %]
90                 [% ELSE %]
91                     <input type="hidden" name="rank-request" class="rank-request" value="[% hold.priority | html %]" data-hold-id="[% hold.reserve_id | html %]">
92                     [% hold.priority | html %]
93                 [% END %]
94             </td>
95             [%- IF ( CAN_user_reserveforothers_modify_holds_priority ) -%]
96             [%- UNLESS hold.found -%]
97                     [%- SET prev_priority  = loop.prev.priority -%]
98                     [%- SET next_priority  = loop.next.priority -%]
99                     <td style="white-space:nowrap;">
100                         <a class="hold-arrow" title="Move hold up" href="request.pl?action=move&amp;where=up&amp;first_priority=[% first_priority | html %]&amp;last_priority=[% last_priority | html %]&amp;prev_priority=[% prev_priority | html %]&amp;next_priority=[% next_priority | html %]&amp;borrowernumber=[% hold.borrowernumber | html %]&amp;biblionumber=[% hold.biblionumber | html %]&amp;reserve_id=[% hold.reserve_id | html %]&amp;date=[% hold.date | html %]">
101                             <i class="fa fa-lg icon-move-hold-up" aria-hidden="true"></i>
102                         </a>
103
104                         <a class="hold-arrow" title="Move hold to top" href="request.pl?action=move&amp;where=top&amp;first_priority=[% first_priority | html %]&amp;last_priority=[% last_priority | html %]&amp;prev_priority=[% prev_priority | html %]&amp;next_priority=[% next_priority | html %]&amp;borrowernumber=[% hold.borrowernumber | html %]&amp;biblionumber=[% hold.biblionumber | html %]&amp;reserve_id=[% hold.reserve_id | html %]&amp;date=[% hold.date | html %]">
105                             <i class="fa fa-lg icon-move-hold-top" aria-hidden="true"></i>
106                         </a>
107
108                         <a class="hold-arrow" title="Move hold to bottom" href="request.pl?action=move&amp;where=bottom&amp;first_priority=[% first_priority | html %]&amp;last_priority=[% last_priority | html %]&amp;prev_priority=[% prev_priority | html %]&amp;next_priority=[% next_priority | html %]&amp;borrowernumber=[% hold.borrowernumber | html %]&amp;biblionumber=[% hold.biblionumber | html %]&amp;reserve_id=[% hold.reserve_id | html %]&amp;date=[% hold.date | html %]">
109                             <i class="fa fa-lg icon-move-hold-bottom" aria-hidden="true"></i>
110                         </a>
111
112                         <a class="hold-arrow" title="Move hold down" href="request.pl?action=move&amp;where=down&amp;first_priority=[% first_priority | html %]&amp;last_priority=[% last_priority | html %]&amp;prev_priority=[% prev_priority | html %]&amp;next_priority=[% next_priority | html %]&amp;borrowernumber=[% hold.borrowernumber | html %]&amp;biblionumber=[% hold.biblionumber | html %]&amp;reserve_id=[% hold.reserve_id | html %]&amp;date=[% hold.date | html %]">
113                             <i class="fa fa-lg icon-move-hold-down" aria-hidden="true"></i>
114                         </a>
115                     </td>
116         [%- ELSE -%]
117             <td></td>
118         [%- END -%]
119             [%- END -%]
120             <td>
121                 [% INCLUDE 'patron-title.inc' patron=hold.patron hide_patron_infos_if_needed=1 %]
122             </td>
123             <td>[% hold.notes | html | html_line_break %]</td>
124             <td>
125                 [% IF Koha.Preference('AllowHoldDateInFuture') %]
126                     <input type="text" class="flatpickr" value="[% hold.date | html %]" required="required" size="10" name="reservedate" />
127                 [% ELSE %]
128                     [% hold.date | $KohaDates %]
129                 [% END %]
130             </td>
131             <td>
132                 [% UNLESS hold.expired %]
133                     <input type="text" class="flatpickr" data-flatpickr-futuredate="true" value="[% hold.expirationdate | html %]" size="10" name="expirationdate" />
134                 [% ELSE %]
135                     <span class="expiredon"><label>Expired:</label> [% hold.expirationdate | $KohaDates %]</span>
136                     <input type="hidden" value="[% hold.expirationdate | html %]" name="expirationdate" />
137                 [% END %]
138             </td>
139             <td>
140                 [%- IF ( hold.found ) -%]
141                     <input type="hidden" name="pickup" value="[% hold.wbrcode | html %]" />
142                     [%- IF ( hold.atdestination ) -%]
143                             Item waiting at <strong> [% hold.wbrname | html %]</strong>[% IF hold.desk_name %], [% hold.desk_name | html %],[% END %] since [% hold.waiting_date | $KohaDates %]
144                     [%- ELSIF (hold.intransit) -%]
145                         Item being transferred to <strong> [% hold.wbrname | html %]</strong>
146                     [%- ELSIF (hold.inprocessing) -%]
147                         Item being processed at <strong> [% hold.wbrname | html %]</strong>
148                     [%- ELSE -%]
149                         Hold expected at <strong>[% hold.wbrname | html %]</strong>, please checkin to verify status
150                     [%- END -%]
151                 [%- ELSE -%]
152                     [%- IF Koha.Preference('IndependentBranches') && Branches.all().size == 1 -%]
153                         [% Branches.GetName(hold.branchcode) | html %] <input type="hidden" name="pickup" value="[% hold.branchcode | html %]" />
154                     [%- ELSE -%]
155                         <select class="pickup_location_dropdown"
156                                 data-selected="[% hold.branchcode | html %]"
157                                 data-hold-id="[% hold.reserve_id | html %]"
158                                 data-pickup-location-source="hold"
159                                 name="pickup">
160                             <option selected="selected" value="[% hold.branchcode | html %]">[% Branches.GetName(hold.branchcode) | html %]</option>
161                             <option value="" disabled="disabled" class="loading">Loading...</option>
162                         </select>
163                         <img class="loading_[% hold.reserve_id | html %]" src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" style="display:none;"/>
164                     [%- END -%]
165                 [%- END -%]
166             </td>
167             <td>
168                 [%- IF ( hold.found ) -%]
169                     <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% hold.biblionumber | uri %]&amp;itemnumber=[% hold.itemnumber | uri %]#item[% hold.itemnumber | uri %]">
170                         [%- IF ( hold.barcodenumber ) -%]
171                             [%- hold.barcodenumber | html -%]
172                             <input type="hidden" name="itemnumber" value="[% hold.itemnumber | html %]" />
173                         [%- ELSE -%]
174                             <span>No barcode</span>
175                         [%- END -%]
176                     </a>
177                 [%- ELSE -%]
178                     [%- IF ( hold.item_level_hold ) -%]
179                         <em>
180                             <span>Only item</span>
181                             <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% hold.biblionumber | uri %]&amp;itemnumber=[% hold.itemnumber | uri %]#item[% hold.itemnumber | uri %]">
182                                 [%- IF ( hold.barcodenumber ) -%]
183                                     [%- hold.barcodenumber | html -%]
184                                     <input type="hidden" name="itemnumber" value="[% hold.itemnumber | html %]" />
185                                 [%- ELSE -%]
186                                     <span>No barcode</span>
187                                 [%- END -%]
188                             </a>
189                         </em>
190                     [%- ELSE -%]
191                         [%- IF hold.itemtype -%]
192                             <em>Next available [% ItemTypes.GetDescription( hold.itemtype ) | html %] item</em>
193                         [%- ELSIF hold.object.item_group -%]
194                             <em>Next available item from group <strong>[% hold.object.item_group.description | html %]</strong></em>
195                         [%- ELSE -%]
196                             <em>Next available</em>
197                         [%- END -%]
198
199                         <input type="hidden" name="itemnumber" value="" />
200                     [%- END -%]
201                 [%- END -%]
202                 [%- IF hold.non_priority -%]
203                     <br><i>Non priority hold</i>
204                 [%- END -%]
205             </td>
206             [%- IF ( CAN_user_reserveforothers_modify_holds_priority ) -%]
207             [%- UNLESS hold.found -%]
208                     <td>
209                             [% IF ( hold.lowestPriority ) %]
210                                 <a class="hold-arrow" title="Remove lowest priority" href="request.pl?action=setLowestPriority&amp;borrowernumber=[% hold.borrowernumber | html %]&amp;biblionumber=[% hold.biblionumber | html %]&amp;reserve_id=[% hold.reserve_id | html %]&amp;date=[% hold.date | html %]">
211                                     <i class="fa fa-lg fa-rotate-90 icon-unset-lowest" aria-hidden="true"></i>
212                             [% ELSE %]
213                                 <a class="hold-arrow" title="Set lowest priority" href="request.pl?action=setLowestPriority&amp;borrowernumber=[% hold.borrowernumber | html %]&amp;biblionumber=[% hold.biblionumber | html %]&amp;reserve_id=[% hold.reserve_id | html %]&amp;date=[% hold.date | html %]">
214                                     <i class="fa fa-lg fa-rotate-90 icon-set-lowest" aria-hidden="true"></i>
215                             [% END %]
216                         </a>
217                     </td>
218         [%- ELSE -%]
219             <td></td>
220         [%- END -%]
221             [%- END -%]
222             <td>
223                 <a class="cancel-hold" title="Cancel hold" data-borrowernumber="[% hold.borrowernumber | html %]" data-biblionumber="[% hold.biblionumber | html %]" data-id="[% hold.reserve_id | html %]" href="request.pl?action=cancel&amp;borrowernumber=[% hold.borrowernumber | html %]&amp;biblionumber=[% hold.biblionumber | html %]&amp;reserve_id=[% hold.reserve_id | html %]&amp;date=[% hold.date | html %]">
224                     <i class="fa fa-trash" aria-label="Cancel hold"></i>
225                 </a>
226             </td>
227             <td>
228                 [% IF Koha.Preference('SuspendHoldsIntranet') %]
229                     [% UNLESS ( hold.found ) %]
230                         <button class="btn btn-default btn-xs toggle-suspend" data-reserve-id="[% hold.reserve_id | html %]" data-biblionumber="[% hold.biblionumber | html %]">
231                             [% IF ( hold.suspend ) %]
232                                 <i class="fa fa-play" aria-hidden="true"></i> Unsuspend
233                             [% ELSE %]
234                                 <i class="fa fa-pause" aria-hidden="true"></i> Suspend
235                             [% END %]
236                         </button>
237
238                         [% IF Koha.Preference('AutoResumeSuspendedHolds') %]
239                             <label for="suspend_until_[% hold.reserve_id | html %]">[% IF ( hold.suspend ) %] on [% ELSE %] until [% END %]</label>
240                             <input type="text" name="suspend_until_[% hold.reserve_id | html %]" id="suspend_until_[% hold.reserve_id | html %]" size="10" value="[% hold.suspend_until | html %]" class="flatpickr" data-flatpickr-futuredate="true" />
241                         [%- ELSE -%]
242                             <input type="hidden" name="suspend_until_[% hold.reserve_id | html %]" id="suspend_until_[% hold.reserve_id | html %]" value=""/>
243                         [%- END -%]
244                     [%- END -%]
245                 [%- END # IF SuspendHoldsIntranet -%]
246                 [%- IF ( hold.found ) -%]
247                     <input type="button" id="revert_hold_[% hold.reserve_id | html %]" value="[% IF hold.intransit %]Revert transit status[% ELSE %]Revert waiting status[% END %]" onclick="window.location.href='request.pl?action=move&amp;where=down&amp;first_priority=[% first_priority | uri %]&amp;last_priority=[% last_priority | uri %]&amp;prev_priority=0&amp;next_priority=1&amp;borrowernumber=[% hold.borrowernumber | uri %]&amp;biblionumber=[% hold.biblionumber | uri %]&amp;itemnumber=[% hold.itemnumber | uri %]&amp;reserve_id=[% hold.reserve_id | uri %]&amp;date=[% hold.date | uri %]'">
248                 [%- END -%]
249             </td>
250             [% IF ( hold.intransit || hold.atdestination ) %]
251                 <td><input class="printholdslip" type="button" name="printholdslip" value="Print slip" data-reserve_id="[% hold.reserve_id | html %]"></td>
252             [% ELSE %]
253                 <td></td>
254             [% END %]
255         </tr>
256     [% END %]
257 </table>