Lines 5-10
Link Here
|
5 |
[% USE Price %] |
5 |
[% USE Price %] |
6 |
[% USE ItemTypes %] |
6 |
[% USE ItemTypes %] |
7 |
[% USE AuthorisedValues %] |
7 |
[% USE AuthorisedValues %] |
|
|
8 |
[% USE TablesSettings %] |
8 |
[% SET reserve_input_type = 'radio' %] |
9 |
[% SET reserve_input_type = 'radio' %] |
9 |
[% IF ( Koha.Preference('DisplayMultiItemHolds') ) %] |
10 |
[% IF ( Koha.Preference('DisplayMultiItemHolds') ) %] |
10 |
[% SET reserve_input_type = 'checkbox' %] |
11 |
[% SET reserve_input_type = 'checkbox' %] |
Lines 27-507
Link Here
|
27 |
[% END #/ WRAPPER breadcrumbs %] |
28 |
[% END #/ WRAPPER breadcrumbs %] |
28 |
|
29 |
|
29 |
<div class="container-fluid"> |
30 |
<div class="container-fluid"> |
30 |
<div id="holds" class="maincontent"> |
31 |
<div class="row"> |
31 |
<h1>Placing a hold</h1> |
32 |
<div class="col-md-12 offset-md-0 col-lg-10 offset-lg-1"> |
32 |
[% IF ( message ) %] |
33 |
<div id="holds" class="maincontent"> |
33 |
<div id="holdmessages" class="alert alert-warning"> |
34 |
<h1>Placing a hold</h1> |
34 |
<h2>Sorry, you cannot place holds.</h2> |
35 |
[% IF ( message ) %] |
35 |
<ul> |
36 |
<div id="holdmessages" class="alert alert-warning"> |
36 |
[% IF ( GNA ) %] |
37 |
<h2>Sorry, you cannot place holds.</h2> |
37 |
<li id="gna"> |
38 |
<ul> |
38 |
According to our records, we don't have up-to-date contact information. Please contact the library. |
39 |
[% IF ( GNA ) %] |
39 |
<a href="/cgi-bin/koha/opac-memberentry.pl">[% IF ( Koha.Preference('OPACPatronDetails') ) %]<span>Update your contact information</span>[% ELSE %]<span>Go to your contact information</span>[% END %]</a> |
40 |
<li id="gna"> |
40 |
[% IF ( Koha.Preference('OPACPatronDetails') ) %]<em>(Please note: there may be a delay in restoring your account if you submit online.)</em>[% END %] |
41 |
According to our records, we don't have up-to-date contact information. Please contact the library. |
41 |
</li> |
42 |
<a href="/cgi-bin/koha/opac-memberentry.pl" |
42 |
[% END %] |
43 |
>[% IF ( Koha.Preference('OPACPatronDetails') ) %]<span>Update your contact information</span>[% ELSE %]<span>Go to your contact information</span>[% END %]</a |
|
|
44 |
> |
45 |
[% IF ( Koha.Preference('OPACPatronDetails') ) %]<em>(Please note: there may be a delay in restoring your account if you submit online.)</em>[% END %] |
46 |
</li> |
47 |
[% END %] |
43 |
|
48 |
|
44 |
[% IF ( lost ) %] |
49 |
[% IF ( lost ) %] |
45 |
<li id="lost"> |
50 |
<li id="lost"> |
46 |
Your library card has been marked as lost or stolen.<br /> |
51 |
Your library card has been marked as lost or stolen.<br /> |
47 |
<em>If this is an error, please take your library card to the circulation desk at your local library and the error will be corrected.</em> |
52 |
<em>If this is an error, please take your library card to the circulation desk at your local library and the error will be corrected.</em> |
48 |
</li> |
53 |
</li> |
49 |
[% END %] |
54 |
[% END %] |
50 |
|
55 |
|
51 |
[% IF ( debarred ) %] |
56 |
[% IF ( debarred ) %] |
52 |
[% INCLUDE "patron-restrictions.inc" %] |
57 |
[% INCLUDE "patron-restrictions.inc" %] |
53 |
[% END %] |
58 |
[% END %] |
54 |
|
59 |
|
55 |
[% IF ( too_much_oweing ) %] |
60 |
[% IF ( too_much_oweing ) %] |
56 |
<li id="too_much_oweing"> You have unpaid fines. Amount: [% too_much_oweing | $Price %]. </li> |
61 |
<li id="too_much_oweing"> You have unpaid fines. Amount: [% too_much_oweing | $Price %]. </li> |
57 |
[% END %] |
62 |
[% END %] |
58 |
|
63 |
|
59 |
[% IF ( too_many_reserves ) %] |
64 |
[% IF ( too_many_reserves ) %] |
60 |
<li id="too_many_reserves"> Sorry, you cannot place more than [% too_many_reserves | html %] holds. </li> |
65 |
<li id="too_many_reserves"> Sorry, you cannot place more than [% too_many_reserves | html %] holds. </li> |
61 |
[% END %] |
66 |
[% END %] |
62 |
|
67 |
|
63 |
[% IF ( bad_biblionumber ) %] |
68 |
[% IF ( bad_biblionumber ) %] |
64 |
<li id="bad_biblionumber"> ERROR: No record found for record ID [% bad_biblionumber | html %]. </li> |
69 |
<li id="bad_biblionumber"> ERROR: No record found for record ID [% bad_biblionumber | html %]. </li> |
65 |
[% END %] |
70 |
[% END %] |
66 |
|
71 |
|
67 |
[% IF ( no_items_selected ) %] |
72 |
[% IF ( no_items_selected ) %] |
68 |
<li id="no_items_selected"> You must select at least one item. </li> |
73 |
<li id="no_items_selected"> You must select at least one item. </li> |
69 |
[% END %] |
74 |
[% END %] |
70 |
|
75 |
|
71 |
[% IF ( no_branch_selected ) %] |
76 |
[% IF ( no_branch_selected ) %] |
72 |
<li id="no_branch_selected"> You must select a library for pickup. </li> |
77 |
<li id="no_branch_selected"> You must select a library for pickup. </li> |
73 |
[% END %] |
78 |
[% END %] |
74 |
|
79 |
|
75 |
[% IF ( no_biblionumber ) %] |
80 |
[% IF ( no_biblionumber ) %] |
76 |
<li id="no_biblionumber"> ERROR: No record ID specified. </li> |
81 |
<li id="no_biblionumber"> ERROR: No record ID specified. </li> |
77 |
[% END %] |
82 |
[% END %] |
78 |
|
83 |
|
79 |
[% IF ( bad_data ) %] |
84 |
[% IF ( bad_data ) %] |
80 |
<li id="bad_data"> ERROR: Internal error: incomplete hold request. </li> |
85 |
<li id="bad_data"> ERROR: Internal error: incomplete hold request. </li> |
81 |
[% END %] |
86 |
[% END %] |
82 |
|
87 |
|
83 |
[% IF ( expired_patron ) %] |
88 |
[% IF ( expired_patron ) %] |
84 |
<li id="expired_patron"> Your library card has expired. Please contact your librarian if you wish to renew your card. </li> |
89 |
<li id="expired_patron"> Your library card has expired. Please contact your librarian if you wish to renew your card. </li> |
85 |
[% END %] |
90 |
[% END %] |
86 |
|
91 |
|
87 |
[% IF ( no_pickup_locations ) %] |
92 |
[% IF ( no_pickup_locations ) %] |
88 |
<li id="no_pickup_locations"> None of the libraries are available for pickup location. </li> |
93 |
<li id="no_pickup_locations"> None of the libraries are available for pickup location. </li> |
89 |
[% END %] |
94 |
[% END %] |
90 |
</ul> |
95 |
</ul> |
91 |
</div> |
96 |
</div> |
92 |
<!-- /.message --> |
97 |
<!-- /.message --> |
93 |
[% ELSE # /IF message %] |
98 |
[% ELSE # /IF message %] |
94 |
|
99 |
|
95 |
[% IF ( none_available && multi_hold ) %] |
100 |
[% IF ( none_available && multi_hold ) %] |
96 |
<div id="none_available" class="alert"> Sorry, none of these titles can be placed on hold. </div> |
101 |
<div id="none_available" class="alert"> Sorry, none of these titles can be placed on hold. </div> |
97 |
[% END %] |
102 |
[% END %] |
98 |
[% END # / IF message %] |
103 |
[% END # / IF message %] |
99 |
|
104 |
|
100 |
[% UNLESS ( message ) %] |
105 |
[% UNLESS ( message ) %] |
101 |
[% UNLESS ( none_available ) %] |
106 |
[% UNLESS ( none_available ) %] |
102 |
<h2>Confirm holds for:[% INCLUDE 'patron-title.inc' patron = logged_in_user %] ([% logged_in_user.cardnumber | html %])</h2> |
107 |
<h2>Confirm holds for:[% INCLUDE 'patron-title.inc' patron = logged_in_user %] ([% logged_in_user.cardnumber | html %])</h2> |
103 |
[% END # / UNLESS none_available %] |
108 |
[% END # / UNLESS none_available %] |
104 |
|
109 |
|
105 |
[% IF ( new_reserves_allowed ) %] |
110 |
[% IF ( new_reserves_allowed ) %] |
106 |
<div id="new_reserves_allowed" class="alert"> <strong>Sorry,</strong> you can only place [% new_reserves_allowed | html %] more holds. Please uncheck the checkboxes for the items you wish to not place holds on. </div> |
111 |
<div id="new_reserves_allowed" class="alert"> |
107 |
[% END %] |
112 |
<strong>Sorry,</strong> you can only place [% new_reserves_allowed | html %] more holds. Please uncheck the checkboxes for the items you wish to not place holds on. |
|
|
113 |
</div> |
114 |
[% END %] |
108 |
|
115 |
|
109 |
<form action="/cgi-bin/koha/opac-reserve.pl" method="post" id="hold-request-form"> |
116 |
<form action="/cgi-bin/koha/opac-reserve.pl" method="post" id="hold-request-form"> |
110 |
[% INCLUDE 'csrf-token.inc' %] |
117 |
[% INCLUDE 'csrf-token.inc' %] |
111 |
<legend class="sr-only">Hold requests</legend> |
118 |
<legend class="sr-only">Hold requests</legend> |
112 |
<input type="hidden" name="op" value="cud-place_reserve" /> |
119 |
<input type="hidden" name="op" value="cud-place_reserve" /> |
113 |
<!-- These values are set dynamically by js --> |
120 |
<!-- These values are set dynamically by js --> |
114 |
<input type="hidden" name="biblionumbers" id="biblionumbers" /> |
121 |
<input type="hidden" name="biblionumbers" id="biblionumbers" /> |
115 |
<input type="hidden" name="selecteditems" id="selections" /> |
122 |
<input type="hidden" name="selecteditems" id="selections" /> |
116 |
<div id="bigloop"> |
123 |
<div id="bigloop"> |
117 |
[% FOREACH bibitemloo IN bibitemloop %] |
124 |
[% FOREACH bibitemloo IN bibitemloop %] |
118 |
<div class="holdrow"> |
125 |
<div class="holdrow"> |
119 |
[% IF bibitemloo.forced_hold_level %] |
126 |
[% IF bibitemloo.forced_hold_level %] |
120 |
<div class="alert alert-info forced_hold_level"> |
127 |
<div class="alert alert-info forced_hold_level"> |
121 |
[% IF bibitemloo.forced_hold_level == 'item' %] |
128 |
[% IF bibitemloo.forced_hold_level == 'item' %] |
122 |
<span>You already have at least one item level hold on this title. All further holds must be item level.</span> |
129 |
<span>You already have at least one item level hold on this title. All further holds must be item level.</span> |
123 |
[% ELSE %] |
130 |
[% ELSE %] |
124 |
<span>You already have at least one record level hold on this title. All further holds must be record level.</span> |
131 |
<span>You already have at least one record level hold on this title. All further holds must be record level.</span> |
|
|
132 |
[% END %] |
133 |
</div> |
125 |
[% END %] |
134 |
[% END %] |
126 |
</div> |
|
|
127 |
[% END %] |
128 |
|
135 |
|
129 |
[% IF ( bibitemloo.reserve_charge ) %] |
136 |
[% IF ( bibitemloo.reserve_charge ) %] |
130 |
<div class="alert" id="reserve_fee"> |
137 |
<div class="alert" id="reserve_fee"> |
131 |
[% IF Koha.Preference('HoldFeeMode') == 'any_time_is_collected' %] |
138 |
[% IF Koha.Preference('HoldFeeMode') == 'any_time_is_collected' %] |
132 |
<span>You will be charged a hold fee of [% bibitemloo.reserve_charge | $Price %] when you collect this item</span> |
139 |
<span>You will be charged a hold fee of [% bibitemloo.reserve_charge | $Price %] when you collect this item</span> |
133 |
[% ELSE %] |
140 |
[% ELSE %] |
134 |
<span>You will be charged a hold fee of [% bibitemloo.reserve_charge | $Price %] for placing this hold</span> |
141 |
<span>You will be charged a hold fee of [% bibitemloo.reserve_charge | $Price %] for placing this hold</span> |
|
|
142 |
[% END %] |
143 |
</div> |
135 |
[% END %] |
144 |
[% END %] |
136 |
</div> |
|
|
137 |
[% END %] |
138 |
|
145 |
|
139 |
<p> |
146 |
<p> |
140 |
[% IF ( bibitemloo.holdable ) %] |
147 |
[% IF ( bibitemloo.holdable ) %] |
141 |
<input class="reserve_mode" name="reserve_mode" type="hidden" value="single" /> |
148 |
<input class="reserve_mode" name="reserve_mode" type="hidden" value="single" /> |
142 |
<input class="single_bib" name="single_bib" type="hidden" value="[% bibitemloo.biblionumber | html %]" /> |
149 |
<input class="single_bib" name="single_bib" type="hidden" value="[% bibitemloo.biblionumber | html %]" /> |
143 |
<span class="confirmjs_hold" title="[% bibitemloo.biblionumber | html %]" style="padding:.3em"></span> |
150 |
<span class="confirmjs_hold" title="[% bibitemloo.biblionumber | html %]" style="padding:.3em"></span> |
144 |
<span class="confirm_nonjs"> |
151 |
<span class="confirm_nonjs"> |
145 |
<input |
152 |
<input |
146 |
type="radio" |
153 |
type="radio" |
147 |
class="confirmbox checkitem [% bibitemloo.biblionumber | html %]" |
154 |
class="confirmbox checkitem [% bibitemloo.biblionumber | html %]" |
148 |
name="[% bibitemloo.biblionumber | html %]" |
155 |
name="[% bibitemloo.biblionumber | html %]" |
149 |
checked="checked" |
156 |
checked="checked" |
150 |
id="single_[% bibitemloo.biblionumber | html %]" |
157 |
id="single_[% bibitemloo.biblionumber | html %]" |
151 |
value="any" |
158 |
value="any" |
152 |
/> |
159 |
/> |
153 |
<label class="confirm_label" for="single_[% bibitemloo.biblionumber | html %]">Place a hold on </label> |
160 |
<label class="confirm_label" for="single_[% bibitemloo.biblionumber | html %]">Place a hold on </label> |
154 |
</span> |
161 |
</span> |
155 |
[% END # / bibitemloo.holdable %] |
162 |
[% END # / bibitemloo.holdable %] |
156 |
|
|
|
157 |
[% INCLUDE 'biblio-title.inc' biblio=bibitemloo link=> 1 %] |
158 |
|
159 |
[% IF ( bibitemloo.author ) %], by [% bibitemloo.author | html %][% END %] |
160 |
</p> |
161 |
|
162 |
[% UNLESS ( bibitemloo.holdable ) %] |
163 |
[% IF ( bibitemloo.ageRestricted ) %] |
164 |
<div class="alert alert-warning">Sorry, you are too young to place a hold for this item.</div> |
165 |
[% END %] |
166 |
[% IF ( bibitemloo.already_reserved ) %] |
167 |
<div class="alert alert-warning">You have already requested this title.</div> |
168 |
[% ELSIF ( bibitemloo.recall ) %] |
169 |
<div class="alert alert-warning">You have already placed a recall on this title.</div> |
170 |
[% ELSE %] |
171 |
[% IF bibitemloo.alreadypossession %] |
172 |
<div class="alert alert-warning">This title cannot be requested because it's already in your possession.</div> |
173 |
[% ELSIF bibitemloo.tooManyReserves %] |
174 |
<div class="alert alert-warning">This title cannot be requested because you reached the maximum number of holds.</div> |
175 |
[% ELSIF bibitemloo.tooManyHoldsForThisRecord %] |
176 |
<div class="alert alert-warning">This title cannot be requested because you exceeded max holds per record.</div> |
177 |
[% ELSIF bibitemloo.tooManyReservesToday %] |
178 |
<div class="alert alert-warning">This title cannot be requested because you reached the daily hold limit.</div> |
179 |
[% ELSIF bibitemloo.itemAlreadyOnHold %] |
180 |
<div class="alert alert-warning">This title cannot be requested because you already have hold for this item.</div> |
181 |
[% ELSE %] |
182 |
[% UNLESS ( bibitemloo.bib_available ) %] |
183 |
<div class="alert">There are no items that can be placed on hold.</div> |
184 |
[% ELSE %] |
185 |
<div class="alert">This title cannot be requested.</div> |
186 |
[% END %] |
187 |
[% END # / UNLESS bibitemloo.already_patron_possession %] |
188 |
[% END # / IF bibitemloo.already_reserved %] |
189 |
[% END # / UNLESS bibitemloo.holdable %] |
190 |
|
191 |
[% IF ( bibitemloo.holdable ) %] |
192 |
<fieldset class="rows"> |
193 |
<ul> |
194 |
<!-- HOLDABLE --> |
195 |
[% UNLESS ( item_level_itypes ) %] |
196 |
<li class="itype"> |
197 |
<span class="label">Item type: </span> |
198 |
[% IF ( bibitemloo.imageurl ) %]<img class="itemtype-image" src="[% bibitemloo.imageurl | html %]" alt="" />[% END %] |
199 |
<span class="itypetext">[% bibitemloo.translated_description | html %]</span> |
200 |
</li> |
201 |
[% END %] |
202 |
|
163 |
|
203 |
[% SET OPACShowHoldQueueDetails = Koha.Preference('OPACShowHoldQueueDetails') %] |
164 |
[% INCLUDE 'biblio-title.inc' biblio=bibitemloo link=> 1 %] |
204 |
[% IF OPACShowHoldQueueDetails == 'holds_priority' || OPACShowHoldQueueDetails == 'priority' %] |
|
|
205 |
<li class="priority"> |
206 |
<span class="label">Your priority: </span> |
207 |
[% bibitemloo.rank | html %] |
208 |
</li> |
209 |
[% END %] |
210 |
|
165 |
|
211 |
[% IF OPACShowHoldQueueDetails == 'holds_priority' || OPACShowHoldQueueDetails == 'holds' %] |
166 |
[% IF ( bibitemloo.author ) %], by [% bibitemloo.author | html %][% END %] |
212 |
<li class="holds-count"> |
167 |
</p> |
213 |
<span class="label">Number of holds: </span> |
|
|
214 |
[% bibitemloo.reservecount | html %] |
215 |
</li> |
216 |
[% END %] |
217 |
|
168 |
|
218 |
[% UNLESS ( singleBranchMode ) %] |
169 |
[% UNLESS ( bibitemloo.holdable ) %] |
219 |
[% IF ( bibitemloo.holdable && Koha.Preference('OPACAllowUserToChooseBranch')) %] |
170 |
[% IF ( bibitemloo.ageRestricted ) %] |
220 |
<li class="branch"> |
171 |
<div class="alert alert-warning">Sorry, you are too young to place a hold for this item.</div> |
221 |
<label for="branch_[% bibitemloo.biblionumber | html %]">Pick up location:</label> |
172 |
[% END %] |
222 |
[% UNLESS ( bibitemloo.holdable ) %] |
173 |
[% IF ( bibitemloo.already_reserved ) %] |
223 |
<select name="branch" id="branch_[% bibitemloo.biblionumber | html %]" disabled="disabled"> |
174 |
<div class="alert alert-warning">You have already requested this title.</div> |
224 |
[% PROCESS options_for_libraries libraries => Branches.pickup_locations({ search_params => { biblio => bibitemloo.biblionumber, patron => logged_in_user }, selected => branch }) %] |
175 |
[% ELSIF ( bibitemloo.recall ) %] |
225 |
</select> |
176 |
<div class="alert alert-warning">You have already placed a recall on this title.</div> |
226 |
[% ELSE %] |
177 |
[% ELSE %] |
227 |
[% SET at_least_one_library_not_available_for_pickup = 0 %] |
178 |
[% IF bibitemloo.alreadypossession %] |
228 |
<select name="branch" id="branch_[% bibitemloo.biblionumber | html %]"> |
179 |
<div class="alert alert-warning">This title cannot be requested because it's already in your possession.</div> |
229 |
[% FOREACH library IN Branches.pickup_locations({ search_params => { biblio => bibitemloo.biblionumber, patron => logged_in_user }, selected => branch }) %] |
180 |
[% ELSIF bibitemloo.tooManyReserves %] |
230 |
[% SET pickup_available_at = bibitemloo.not_available_at.grep('^' _ library.branchcode _ '$').size ? 0 : 1 %] |
181 |
<div class="alert alert-warning">This title cannot be requested because you reached the maximum number of holds.</div> |
231 |
[% IF library.selected AND pickup_available_at %] |
182 |
[% ELSIF bibitemloo.tooManyHoldsForThisRecord %] |
232 |
<option value="[% library.branchcode | html %]" selected="selected">[% library.branchname | html %]</option> |
183 |
<div class="alert alert-warning">This title cannot be requested because you exceeded max holds per record.</div> |
233 |
[% ELSIF pickup_available_at %] |
184 |
[% ELSIF bibitemloo.tooManyReservesToday %] |
234 |
<option value="[% library.branchcode | html %]">[% library.branchname | html %]</option> |
185 |
<div class="alert alert-warning">This title cannot be requested because you reached the daily hold limit.</div> |
235 |
[% ELSE %] |
186 |
[% ELSIF bibitemloo.itemAlreadyOnHold %] |
236 |
[% SET at_least_one_library_not_available_for_pickup = 1 %] |
187 |
<div class="alert alert-warning">This title cannot be requested because you already have hold for this item.</div> |
237 |
<option value="[% library.branchcode | html %]" disabled="disabled" title="At least one item is available at this library">[% library.branchname | html %]</option> |
188 |
[% ELSE %] |
238 |
[% END %] |
189 |
[% UNLESS ( bibitemloo.bib_available ) %] |
239 |
[% END %] |
190 |
<div class="alert">There are no items that can be placed on hold.</div> |
240 |
</select> |
191 |
[% ELSE %] |
241 |
[% IF at_least_one_library_not_available_for_pickup %] |
192 |
<div class="alert">This title cannot be requested.</div> |
242 |
<div class="at_least_one_library_not_available_note"> |
193 |
[% END %] |
243 |
Note: Library policy does not allow hold/pickup of an item available locally. Please come to the library to retrieve these items |
194 |
[% END # / UNLESS bibitemloo.already_patron_possession %] |
244 |
</div> |
195 |
[% END # / IF bibitemloo.already_reserved %] |
245 |
[% END %] |
196 |
[% END # / UNLESS bibitemloo.holdable %] |
246 |
[% END # / UNLESS bibitemloo.holdable %] |
197 |
|
247 |
</li> |
198 |
[% IF ( bibitemloo.holdable ) %] |
248 |
[% END # / IF bibitemloo.holdable && Koha.Preference('OPACAllowUserToChooseBranch') %] |
199 |
<fieldset class="rows"> |
249 |
[% END # / UNLESS singleBranchMode %] |
200 |
<ul> |
250 |
</ul> |
201 |
<!-- HOLDABLE --> |
251 |
|
202 |
[% UNLESS ( item_level_itypes ) %] |
252 |
<a class="toggle-hold-options" id="toggle-hold-options-[% bibitemloo.biblionumber | html %]" style="display:none;" href="#">Show more options</a> |
203 |
<li class="itype"> |
253 |
|
204 |
<span class="label">Item type: </span> |
254 |
<div id="hold-options-[% bibitemloo.biblionumber | html %]" class="hold-options"> |
205 |
[% IF ( bibitemloo.imageurl ) %]<img class="itemtype-image" src="[% bibitemloo.imageurl | html %]" alt="" />[% END %] |
255 |
<ul> |
206 |
<span class="itypetext">[% bibitemloo.translated_description | html %]</span> |
256 |
[% IF ( reserve_in_future ) %] |
207 |
</li> |
257 |
<li> |
208 |
[% END %] |
258 |
<label for="from[% bibitemloo.biblionumber | html %]">Hold starts on date:</label> |
|
|
259 |
<input |
260 |
type="text" |
261 |
name="reserve_date_[% bibitemloo.biblionumber | html %]" |
262 |
id="from[% bibitemloo.biblionumber | html %]" |
263 |
data-start_for="to[% bibitemloo.biblionumber | html %]" |
264 |
data-flatpickr-futureinclusive="true" |
265 |
size="10" |
266 |
class="flatpickr holddatefrom" |
267 |
value="[% KohaDates.datetime_from_string | $KohaDates dateformat => 'iso' %]" |
268 |
/> |
269 |
<span class="date-format from" data-biblionumber="[% bibitemloo.biblionumber | html %]">[% INCLUDE 'date-format.inc' %]</span> |
270 |
<div class="required_label" style="display:none;">Required</div> |
271 |
</li> |
272 |
[% END %] |
273 |
|
209 |
|
274 |
<li> |
210 |
[% SET OPACShowHoldQueueDetails = Koha.Preference('OPACShowHoldQueueDetails') %] |
275 |
<label for="to[% bibitemloo.biblionumber | html %]">Hold not needed after:</label> |
211 |
[% IF OPACShowHoldQueueDetails == 'holds_priority' || OPACShowHoldQueueDetails == 'priority' %] |
276 |
<input |
212 |
<li class="priority"> |
277 |
type="text" |
213 |
<span class="label">Your priority: </span> |
278 |
name="expiration_date_[% bibitemloo.biblionumber | html %]" |
214 |
[% bibitemloo.rank | html %] |
279 |
id="to[% bibitemloo.biblionumber | html %]" |
215 |
</li> |
280 |
size="10" |
216 |
[% END %] |
281 |
data-flatpickr-future="true" |
|
|
282 |
class="flatpickr futuredate" |
283 |
/> |
284 |
<span class="date-format to" data-biblionumber="[% bibitemloo.biblionumber | html %]">[% INCLUDE 'date-format.inc' %]</span> |
285 |
<div class="required_label" style="display:none;">Required</div> |
286 |
</li> |
287 |
|
288 |
[% IF Koha.Preference('AllowHoldItemTypeSelection') %] |
289 |
<li> |
290 |
<label for="itemtype">Request specific item type:</label> |
291 |
<select name="itemtype" id="itemtype"> |
292 |
<option value="">Any item type</option> |
293 |
[% FOREACH i IN bibitemloo.allowed_item_types %] |
294 |
<option value="[% i | html %]">[% ItemTypes.GetDescription( i ) | html %]</option> |
295 |
[%- END %] |
296 |
</select> |
297 |
</li> |
298 |
[% END %] |
299 |
|
217 |
|
300 |
[% UNLESS bibitemloo.forced_hold_level && ( bibitemloo.forced_hold_level == 'item' || bibitemloo.forced_hold_level == 'record' ) %] |
218 |
[% IF OPACShowHoldQueueDetails == 'holds_priority' || OPACShowHoldQueueDetails == 'holds' %] |
301 |
[% IF Koha.Preference('EnableItemGroupHolds') && bibitemloo.object.item_groups.count %] |
219 |
<li class="holds-count"> |
302 |
<li> |
220 |
<span class="label">Number of holds: </span> |
303 |
<label for="itemtype">Request specific item group:</label> |
221 |
[% bibitemloo.reservecount | html %] |
304 |
<select name="item_group_id_[% bibitemloo.biblionumber | html %]" id="item_group_id_[% bibitemloo.biblionumber | html %]"> |
|
|
305 |
<option value="">Any item group</option> |
306 |
[% FOREACH g IN bibitemloo.object.item_groups.search({}, { order_by => ['display_order'] }) %] |
307 |
[% IF g.items.count %] |
308 |
<option value="[% g.id | html %]">[% g.description | html %]</option> |
309 |
[% END %] |
310 |
[% END %] |
311 |
</select> |
312 |
</li> |
222 |
</li> |
313 |
[% END %] |
223 |
[% END %] |
314 |
[% END %] |
|
|
315 |
|
224 |
|
316 |
[% IF ( OpacHoldNotes ) %] |
225 |
[% UNLESS ( singleBranchMode ) %] |
317 |
<li> |
226 |
[% IF ( bibitemloo.holdable && Koha.Preference('OPACAllowUserToChooseBranch')) %] |
318 |
<div class="notesrow" id="notesrow_[% bibitemloo.biblionumber | html %]"> |
227 |
<li class="branch"> |
319 |
<label for="holdnotes_[% bibitemloo.biblionumber | html %]">Hold notes:</label> |
228 |
<label for="branch_[% bibitemloo.biblionumber | html %]">Pick up location:</label> |
320 |
<textarea id="holdnotes_[% bibitemloo.biblionumber | html %]" rows="2" cols="30" name="notes_[% bibitemloo.biblionumber | html %]">[% bibitemloo.holdnotes | html %]</textarea> |
229 |
[% UNLESS ( bibitemloo.holdable ) %] |
321 |
</div> |
230 |
<select name="branch" id="branch_[% bibitemloo.biblionumber | html %]" disabled="disabled"> |
322 |
</li> |
231 |
[% PROCESS options_for_libraries libraries => Branches.pickup_locations({ search_params => { biblio => bibitemloo.biblionumber, patron => logged_in_user }, selected => branch }) %] |
323 |
[% END # / IF OpacHoldNotes %] |
232 |
</select> |
324 |
|
|
|
325 |
[% IF bibitemloo.itemholdable %] |
326 |
<!-- ITEM HOLDS --> |
327 |
<li class="lradio place_on_type" style="display:none;"> |
328 |
[% UNLESS bibitemloo.forced_hold_level == 'item' || bibitemloo.forced_hold_level == 'item_group' || bibitemloo.force_hold %] |
329 |
<label class="radio inline" for="reqany_[% bibitemloo.biblionumber | html %]">Next available item</label> |
330 |
<input type="radio" name="reqtype_[% bibitemloo.biblionumber | html %]" id="reqany_[% bibitemloo.biblionumber | html %]" class="selectany" value="Any" checked="checked" /> |
331 |
[% END %] |
332 |
<label class="radio inline" for="reqspecific_[% bibitemloo.biblionumber | html %]">A specific item</label> |
333 |
<input type="radio" name="reqtype_[% bibitemloo.biblionumber | html %]" id="reqspecific_[% bibitemloo.biblionumber | html %]" class="selectspecific" value="Specific" /> |
334 |
</li> |
335 |
[% END # / IF bibitemloo.itemholdable %] |
336 |
</ul> |
337 |
|
338 |
[% IF bibitemloo.itemholdable %] |
339 |
<div id="copiesrow_[% bibitemloo.biblionumber | html %]" class="copiesrow"> |
340 |
<table class="table table-bordered table-striped itemstable"> |
341 |
<caption>Select a specific item:</caption> |
342 |
<thead> |
343 |
<tr> |
344 |
<th>Copy number</th> |
345 |
[% IF ( item_level_itypes ) %] |
346 |
<th>Item type</th> |
347 |
[% END %] |
348 |
<th>Barcode</th> |
349 |
[% UNLESS ( singleBranchMode ) %] |
350 |
<th>Home library</th> |
351 |
<th>Last location</th> |
352 |
[% END %] |
353 |
[% IF ( itemdata_ccode ) %] |
354 |
<th>Collection</th> |
355 |
[% END %] |
356 |
<th>Call number</th> |
357 |
[% IF ( itemdata_enumchron ) %] |
358 |
<th>Vol info</th> |
359 |
[% END %] |
360 |
<th>Notes</th> |
361 |
<th>Information</th> |
362 |
</tr> |
363 |
</thead> |
364 |
<tbody> |
365 |
[% SET unholdable_items = 0 %] |
366 |
[% FOREACH itemLoo IN bibitemloo.itemLoop %] |
367 |
[% SET row_class = "holdable" %] |
368 |
[% SET row_style = "" %] |
369 |
[% IF ( itemLoo.available ) %] |
370 |
[% IF ( itemLoo.checkout ) %] |
371 |
[% row_class = "holdable onloan" %] |
372 |
[% ELSE %] |
373 |
[% row_class = "holdable" %] |
374 |
[% END %] |
375 |
[% ELSE %] |
233 |
[% ELSE %] |
376 |
[% SET unholdable_items = 1 %] |
234 |
[% SET at_least_one_library_not_available_for_pickup = 0 %] |
377 |
[% row_style = "display:none" %] |
235 |
<select name="branch" id="branch_[% bibitemloo.biblionumber | html %]"> |
378 |
[% IF ( itemLoo.checkout ) %] |
236 |
[% FOREACH library IN Branches.pickup_locations({ search_params => { biblio => bibitemloo.biblionumber, patron => logged_in_user }, selected => branch }) %] |
379 |
[% row_class = "unholdable onloan" %] |
237 |
[% SET pickup_available_at = bibitemloo.not_available_at.grep('^' _ library.branchcode _ '$').size ? 0 : 1 %] |
380 |
[% ELSE %] |
238 |
[% IF library.selected AND pickup_available_at %] |
381 |
[% row_class = "unholdable" %] |
239 |
<option value="[% library.branchcode | html %]" selected="selected">[% library.branchname | html %]</option> |
|
|
240 |
[% ELSIF pickup_available_at %] |
241 |
<option value="[% library.branchcode | html %]">[% library.branchname | html %]</option> |
242 |
[% ELSE %] |
243 |
[% SET at_least_one_library_not_available_for_pickup = 1 %] |
244 |
<option value="[% library.branchcode | html %]" disabled="disabled" title="At least one item is available at this library" |
245 |
>[% library.branchname | html %]</option |
246 |
> |
247 |
[% END %] |
248 |
[% END %] |
249 |
</select> |
250 |
[% IF at_least_one_library_not_available_for_pickup %] |
251 |
<div class="at_least_one_library_not_available_note"> |
252 |
Note: Library policy does not allow hold/pickup of an item available locally. Please come to the library to retrieve these items |
253 |
</div> |
382 |
[% END %] |
254 |
[% END %] |
|
|
255 |
[% END # / UNLESS bibitemloo.holdable %] |
256 |
</li> |
257 |
[% END # / IF bibitemloo.holdable && Koha.Preference('OPACAllowUserToChooseBranch') %] |
258 |
[% END # / UNLESS singleBranchMode %] |
259 |
</ul> |
260 |
|
261 |
<a class="toggle-hold-options" id="toggle-hold-options-[% bibitemloo.biblionumber | html %]" style="display:none;" href="#">Show more options</a> |
262 |
|
263 |
<div id="hold-options-[% bibitemloo.biblionumber | html %]" class="hold-options"> |
264 |
<ul> |
265 |
[% IF ( reserve_in_future ) %] |
266 |
<li> |
267 |
<label for="from[% bibitemloo.biblionumber | html %]">Hold starts on date:</label> |
268 |
<input |
269 |
type="text" |
270 |
name="reserve_date_[% bibitemloo.biblionumber | html %]" |
271 |
id="from[% bibitemloo.biblionumber | html %]" |
272 |
data-start_for="to[% bibitemloo.biblionumber | html %]" |
273 |
data-flatpickr-futureinclusive="true" |
274 |
size="10" |
275 |
class="flatpickr holddatefrom" |
276 |
value="[% KohaDates.datetime_from_string | $KohaDates dateformat => 'iso' %]" |
277 |
/> |
278 |
<span class="date-format from" data-biblionumber="[% bibitemloo.biblionumber | html %]">[% INCLUDE 'date-format.inc' %]</span> |
279 |
<div class="required_label" style="display:none;">Required</div> |
280 |
</li> |
281 |
[% END %] |
282 |
|
283 |
<li> |
284 |
<label for="to[% bibitemloo.biblionumber | html %]">Hold not needed after:</label> |
285 |
<input |
286 |
type="text" |
287 |
name="expiration_date_[% bibitemloo.biblionumber | html %]" |
288 |
id="to[% bibitemloo.biblionumber | html %]" |
289 |
size="10" |
290 |
data-flatpickr-future="true" |
291 |
class="flatpickr futuredate" |
292 |
/> |
293 |
<span class="date-format to" data-biblionumber="[% bibitemloo.biblionumber | html %]">[% INCLUDE 'date-format.inc' %]</span> |
294 |
<div class="required_label" style="display:none;">Required</div> |
295 |
</li> |
296 |
|
297 |
[% IF Koha.Preference('AllowHoldItemTypeSelection') %] |
298 |
<li> |
299 |
<label for="itemtype">Request specific item type:</label> |
300 |
<select name="itemtype" id="itemtype"> |
301 |
<option value="">Any item type</option> |
302 |
[% FOREACH i IN bibitemloo.allowed_item_types %] |
303 |
<option value="[% i | html %]">[% ItemTypes.GetDescription( i ) | html %]</option> |
304 |
[%- END %] |
305 |
</select> |
306 |
</li> |
307 |
[% END %] |
308 |
|
309 |
[% UNLESS bibitemloo.forced_hold_level && ( bibitemloo.forced_hold_level == 'item' || bibitemloo.forced_hold_level == 'record' ) %] |
310 |
[% IF Koha.Preference('EnableItemGroupHolds') && bibitemloo.object.item_groups.count %] |
311 |
<li> |
312 |
<label for="itemtype">Request specific item group:</label> |
313 |
<select name="item_group_id_[% bibitemloo.biblionumber | html %]" id="item_group_id_[% bibitemloo.biblionumber | html %]"> |
314 |
<option value="">Any item group</option> |
315 |
[% FOREACH g IN bibitemloo.object.item_groups.search({}, { order_by => ['display_order'] }) %] |
316 |
[% IF g.items.count %] |
317 |
<option value="[% g.id | html %]">[% g.description | html %]</option> |
318 |
[% END %] |
319 |
[% END %] |
320 |
</select> |
321 |
</li> |
322 |
[% END %] |
323 |
[% END %] |
324 |
|
325 |
[% IF ( OpacHoldNotes ) %] |
326 |
<li> |
327 |
<div class="notesrow" id="notesrow_[% bibitemloo.biblionumber | html %]"> |
328 |
<label for="holdnotes_[% bibitemloo.biblionumber | html %]">Hold notes:</label> |
329 |
<textarea id="holdnotes_[% bibitemloo.biblionumber | html %]" rows="2" cols="30" name="notes_[% bibitemloo.biblionumber | html %]"> |
330 |
[% bibitemloo.holdnotes | html %]</textarea |
331 |
> |
332 |
</div> |
333 |
</li> |
334 |
[% END # / IF OpacHoldNotes %] |
335 |
|
336 |
[% IF bibitemloo.itemholdable %] |
337 |
<!-- ITEM HOLDS --> |
338 |
<li class="lradio place_on_type" style="display:none;"> |
339 |
[% UNLESS bibitemloo.forced_hold_level == 'item' || bibitemloo.forced_hold_level == 'item_group' || bibitemloo.force_hold %] |
340 |
<label class="radio inline" for="reqany_[% bibitemloo.biblionumber | html %]">Next available item</label> |
341 |
<input type="radio" name="reqtype_[% bibitemloo.biblionumber | html %]" id="reqany_[% bibitemloo.biblionumber | html %]" class="selectany" value="Any" checked="checked" /> |
383 |
[% END %] |
342 |
[% END %] |
384 |
<tr class="[% row_class | html %]" style="[% row_style | html %]"> |
343 |
<label class="radio inline" for="reqspecific_[% bibitemloo.biblionumber | html %]">A specific item</label> |
385 |
[% IF ( itemLoo.available ) %] |
344 |
<input type="radio" name="reqtype_[% bibitemloo.biblionumber | html %]" id="reqspecific_[% bibitemloo.biblionumber | html %]" class="selectspecific" value="Specific" /> |
386 |
<td class="copynumber" data-order="[% itemLoo.copynumber | html %]"> |
345 |
</li> |
387 |
<input |
346 |
[% END # / IF bibitemloo.itemholdable %] |
388 |
type="[% reserve_input_type | html %]" |
347 |
</ul> |
389 |
class="checkitem checkitem_[% bibitemloo.biblionumber | html %]" |
348 |
|
390 |
name="checkitem_[% bibitemloo.biblionumber | html %]" |
349 |
[% IF bibitemloo.itemholdable %] |
391 |
value="[% itemLoo.itemnumber | html %]" |
350 |
<div id="copiesrow_[% bibitemloo.biblionumber | html %]" class="copiesrow"> |
392 |
/> |
351 |
<table class="table table-bordered table-striped itemstable"> |
393 |
[% IF ( itemLoo.copynumber ) %] |
352 |
<caption>Select a specific item:</caption> |
394 |
[% itemLoo.copynumber | html %] |
353 |
<thead> |
|
|
354 |
<tr> |
355 |
<th data-colname="selection" class="no-sort">Choose</th> |
356 |
[% IF ( itemdata_copynumber ) %] |
357 |
<th data-colname="copy_number">Copy number</th> |
358 |
[% END %] |
359 |
[% IF ( item_level_itypes ) %] |
360 |
<th data-colname="itemtype">Item type</th> |
361 |
[% END %] |
362 |
<th data-colname="barcode">Barcode</th> |
363 |
[% UNLESS ( singleBranchMode ) %] |
364 |
<th data-colname="current_library">Current library</th> |
365 |
<th data-colname="home_library">Home library</th> |
366 |
[% END %] |
367 |
[% IF ( itemdata_ccode ) %] |
368 |
<th data-colname="collection">Collection</th> |
369 |
[% END %] |
370 |
<th data-colname="call_number">Call number</th> |
371 |
[% IF ( itemdata_enumchron ) %] |
372 |
<th data-colname="enumchron">Vol info</th> |
373 |
[% END %] |
374 |
<th data-colname="notes">Notes</th> |
375 |
<th data-colname="information">Information</th> |
376 |
<th data-colname=""></th> |
377 |
</tr> |
378 |
</thead> |
379 |
<tbody> |
380 |
[% SET unholdable_items = 0 %] |
381 |
[% FOREACH itemLoo IN bibitemloo.itemLoop %] |
382 |
[% SET row_class = "holdable" %] |
383 |
[% SET row_style = "" %] |
384 |
[% IF ( itemLoo.available ) %] |
385 |
[% IF ( itemLoo.checkout ) %] |
386 |
[% row_class = "holdable onloan" %] |
387 |
[% ELSE %] |
388 |
[% row_class = "holdable" %] |
389 |
[% END %] |
390 |
[% ELSE %] |
391 |
[% SET unholdable_items = 1 %] |
392 |
[% row_style = "display:none" %] |
393 |
[% IF ( itemLoo.checkout ) %] |
394 |
[% row_class = "unholdable onloan" %] |
395 |
[% ELSE %] |
396 |
[% row_class = "unholdable" %] |
395 |
[% END %] |
397 |
[% END %] |
396 |
</td> |
398 |
[% END %] |
397 |
[%# copynumber %] |
399 |
<tr class="[% row_class | html %]" style="[% row_style | html %]"> |
398 |
[% ELSE %] |
400 |
[% IF ( itemLoo.available ) %] |
399 |
<td class="copynumber"> |
401 |
<td class="checkbox"> |
400 |
<input |
402 |
<input |
401 |
disabled="disabled" |
403 |
type="[% reserve_input_type | html %]" |
402 |
type="radio" |
404 |
class="checkitem checkitem_[% bibitemloo.biblionumber | html %]" |
403 |
aria-label="Cannot be put on hold" |
405 |
name="checkitem_[% bibitemloo.biblionumber | html %]" |
404 |
class="checkitem" |
406 |
value="[% itemLoo.itemnumber | html %]" |
405 |
name="checkitem" |
407 |
/> |
406 |
value="[% itemLoo.itemnumber | html %]" |
408 |
</td> |
407 |
style="display:none;" |
409 |
[% ELSE %] |
408 |
/> |
410 |
<td class="checkbox"> |
409 |
<i class="fa fa-times danger" aria-hidden="true" title="Cannot be put on hold"></i> |
411 |
<input disabled="disabled" type="radio" class="checkitem" name="checkitem" value="[% itemLoo.itemnumber | html %]" style="display:none;" /> |
410 |
[% IF ( itemLoo.copynumber ) %] |
412 |
<i class="fa fa-times danger" aria-hidden="true"></i> |
411 |
[% itemLoo.copynumber | html %] |
413 |
<span class="fa-sr-only">Cannot be put on hold</span> |
|
|
414 |
</td> |
412 |
[% END %] |
415 |
[% END %] |
413 |
</td> |
|
|
414 |
[%# copynumber %] |
415 |
[% END %] |
416 |
|
416 |
|
417 |
[% IF ( item_level_itypes ) %] |
417 |
[% IF ( itemdata_copynumber ) %] |
418 |
<td class="itype"> |
418 |
<td class="copynumber" data-order="[% itemLoo.copynumber | html %]"> |
419 |
[% UNLESS ( Koha.Preference('OpacNoItemTypeImages') ) %] |
419 |
[% IF ( itemLoo.copynumber ) %] |
420 |
[% IF ( itemLoo.imageurl ) %] |
420 |
[% itemLoo.copynumber | html %] |
421 |
<img class="itemtype-image" src="[% itemLoo.imageurl | html %]" alt="" /> |
421 |
[% END %] |
422 |
[% END %] |
422 |
</td> |
423 |
[% END %] |
423 |
[% END %] |
424 |
<span class="itypetext">[% itemLoo.translated_description | html %]</span> |
|
|
425 |
</td> |
426 |
[% END %] |
427 |
|
424 |
|
428 |
<td class="barcode">[% itemLoo.barcode | html %]</td> |
425 |
[% IF ( item_level_itypes ) %] |
429 |
[% UNLESS ( singleBranchMode ) %] |
426 |
<td class="itype"> |
430 |
<td class="homebranch">[% Branches.GetName( itemLoo.homebranch) | html %]</td> |
427 |
[% UNLESS ( Koha.Preference('OpacNoItemTypeImages') ) %] |
431 |
<td class="holdingbranch">[% Branches.GetName( itemLoo.holdingbranch ) | html %]</td> |
428 |
[% IF ( itemLoo.imageurl ) %] |
432 |
[% END %] |
429 |
<img class="itemtype-image" src="[% itemLoo.imageurl | html %]" alt="" /> |
433 |
[% IF ( itemdata_ccode ) %] |
430 |
[% END %] |
434 |
<td class="ccode"> |
431 |
[% END %] |
435 |
[% IF ( itemLoo.ccode ) %][% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.ccode', authorised_value => itemLoo.ccode, opac => 1 ) | html %][% END %]</td |
432 |
<span class="itypetext">[% itemLoo.translated_description | html %]</span> |
436 |
> |
433 |
</td> |
437 |
[% END %] |
434 |
[% END %] |
438 |
<td class="call_no">[% itemLoo.itemcallnumber | html %]</td> |
|
|
439 |
[% IF ( itemdata_enumchron ) %] |
440 |
<td class="vol_info">[% itemLoo.enumchron | html %]</td> |
441 |
[% END %] |
442 |
<td class="itemnotes"> [% itemLoo.itemnotes | html %] </td> |
443 |
<td class="information"> |
444 |
[% IF ( itemLoo.checkout.date_due) %] |
445 |
<span class="checkedout">Due [% itemLoo.checkout.date_due| $KohaDates as_due_date => 1 %]</span> |
446 |
[% ELSIF ( itemLoo.transfertwhen ) %] |
447 |
<span class="intransit" |
448 |
>In transit from [% Branches.GetName( itemLoo.transfertfrom ) | html %] to [% Branches.GetName( itemLoo.transfertto ) | html %] since |
449 |
[% itemLoo.transfertwhen | $KohaDates %]</span |
450 |
> |
451 |
[% END %] |
452 |
|
435 |
|
453 |
[% IF ( itemLoo.itemlost == 1 || itemLoo.itemlost == 2 ) %] |
436 |
<td class="barcode">[% itemLoo.barcode | html %]</td> |
454 |
[%# FIXME Why only for 1 or 2? Shouldn't we test for withdrawn as well? %] |
437 |
[% UNLESS ( singleBranchMode ) %] |
455 |
<span class="lost">Unavailable (lost or missing)</span> |
438 |
<td class="homebranch">[% Branches.GetName( itemLoo.homebranch) | html %]</td> |
456 |
[% END %] |
439 |
<td class="holdingbranch">[% Branches.GetName( itemLoo.holdingbranch ) | html %]</td> |
|
|
440 |
[% END %] |
441 |
[% IF ( itemdata_ccode ) %] |
442 |
<td class="ccode"> |
443 |
[% IF ( itemLoo.ccode ) %][% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.ccode', authorised_value => itemLoo.ccode, opac => 1 ) | html %][% END %]</td |
444 |
> |
445 |
[% END %] |
446 |
<td class="call_no">[% itemLoo.itemcallnumber | html %]</td> |
447 |
[% IF ( itemdata_enumchron ) %] |
448 |
<td class="vol_info">[% itemLoo.enumchron | html %]</td> |
449 |
[% END %] |
450 |
<td class="itemnotes"> [% itemLoo.itemnotes | html %] </td> |
451 |
<td class="information"> |
452 |
[% IF ( itemLoo.checkout.date_due) %] |
453 |
<span class="checkedout">Due [% itemLoo.checkout.date_due| $KohaDates as_due_date => 1 %]</span> |
454 |
[% ELSIF ( itemLoo.transfertwhen ) %] |
455 |
<span class="intransit" |
456 |
>In transit from [% Branches.GetName( itemLoo.transfertfrom ) | html %] to [% Branches.GetName( itemLoo.transfertto ) | html %] since |
457 |
[% itemLoo.transfertwhen | $KohaDates %]</span |
458 |
> |
459 |
[% END %] |
457 |
|
460 |
|
458 |
[% IF ( itemLoo.notforloan ) %] |
461 |
[% IF ( itemLoo.itemlost == 1 || itemLoo.itemlost == 2 ) %] |
459 |
<span class="notforloan" |
462 |
[%# FIXME Why only for 1 or 2? Shouldn't we test for withdrawn as well? %] |
460 |
>Not for loan ([% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.notforloan', authorised_value => itemLoo.notforloan ) %])</span |
463 |
<span class="lost">Unavailable (lost or missing)</span> |
461 |
> |
464 |
[% END %] |
462 |
[% END %] |
|
|
463 |
|
465 |
|
464 |
[% IF ( itemLoo.first_hold ) %] |
466 |
[% IF ( itemLoo.notforloan ) %] |
465 |
<span class="waiting"> |
467 |
<span class="notforloan" |
466 |
[% IF ( itemLoo.waitingdate ) %] |
468 |
>Not for loan ([% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.notforloan', authorised_value => itemLoo.notforloan ) %])</span |
467 |
<span>Waiting for patron at [% Branches.GetName( itemLoo.ExpectedAtLibrary ) | html %] since [% itemLoo.waitingdate | $KohaDates %]</span> |
469 |
> |
468 |
[% ELSIF ( itemLoo.reservedate ) %] |
|
|
469 |
<span>On hold for patron expected at [% Branches.GetName( itemLoo.ExpectedAtLibrary ) | html %] since [% itemLoo.reservedate | $KohaDates %]</span> |
470 |
[% ELSE %] |
471 |
<span>On hold for patron expected at [% Branches.GetName( itemLoo.ExpectedAtLibrary ) | html %]</span> |
472 |
[% END %] |
470 |
[% END %] |
473 |
</span> |
471 |
|
474 |
[% ELSE %] |
472 |
[% IF ( itemLoo.first_hold ) %] |
475 |
<span class="notonhold">Not on hold</span> |
473 |
<span class="waiting"> |
476 |
[% END # / IF ( itemLoo.first_hold ) %] |
474 |
[% IF ( itemLoo.waitingdate ) %] |
477 |
</td> |
475 |
<span>Waiting for patron at [% Branches.GetName( itemLoo.ExpectedAtLibrary ) | html %] since [% itemLoo.waitingdate | $KohaDates %]</span> |
478 |
</tr> |
476 |
[% ELSIF ( itemLoo.reservedate ) %] |
479 |
[% END # / FOREACH itemLoo IN bibitemloo.itemLoop %] |
477 |
<span>On hold for patron expected at [% Branches.GetName( itemLoo.ExpectedAtLibrary ) | html %] since [% itemLoo.reservedate | $KohaDates %]</span> |
480 |
</tbody> |
478 |
[% ELSE %] |
481 |
</table> |
479 |
<span>On hold for patron expected at [% Branches.GetName( itemLoo.ExpectedAtLibrary ) | html %]</span> |
482 |
<!-- / #copiesrow_[% bibitemloo.biblionumber | html %] --> |
480 |
[% END %] |
483 |
[% IF unholdable_items %] |
481 |
</span> |
484 |
<button id="show_unholdable" class="btn btn-primary toggle_unholdable unholdable">Show unholdable items</button> |
482 |
[% ELSE %] |
485 |
<button id="hide_unholdable" class="btn btn-primary toggle_unholdable unholdable" style="display:none;">Hide unholdable items</button> |
483 |
<span class="notonhold">Not on hold</span> |
486 |
[% END %] |
484 |
[% END # / IF ( itemLoo.first_hold ) %] |
|
|
485 |
</td> |
486 |
<td></td> |
487 |
</tr> |
488 |
[% END # / FOREACH itemLoo IN bibitemloo.itemLoop %] |
489 |
</tbody> |
490 |
</table> |
491 |
<!-- / #copiesrow_[% bibitemloo.biblionumber | html %] --> |
492 |
[% IF unholdable_items %] |
493 |
<button id="show_unholdable" class="btn btn-primary toggle_unholdable unholdable">Show unholdable items</button> |
494 |
<button id="hide_unholdable" class="btn btn-primary toggle_unholdable unholdable" style="display:none;">Hide unholdable items</button> |
495 |
[% END %] |
496 |
</div> |
497 |
<!-- /.copiesrow --> |
498 |
[% END # / IF ( bibitemloo.itemholdable ) %] |
487 |
</div> |
499 |
</div> |
488 |
[% END # / IF ( bibitemloo.itemholdable ) %] |
500 |
<!-- / #hold-options-[% bibitemloo.biblionumber | html %] --> |
489 |
</div> |
501 |
</fieldset> |
490 |
<!-- / #hold-options-[% bibitemloo.biblionumber | html %] --> |
502 |
[% END # / IF ( bibitemloo.holdable ) %] |
491 |
</fieldset> |
503 |
</div> |
492 |
[% END # / IF ( bibitemloo.holdable ) %] |
504 |
<!-- / .holdrow --> |
493 |
</div> |
505 |
[% END # / FOREACH bibitemloo IN bibitemloop %] </div |
494 |
<!-- / .holdrow --> |
506 |
><!-- #bigloop --> |
495 |
[% END # / FOREACH bibitemloo IN bibitemloop %] </div |
507 |
|
496 |
><!-- #bigloop --> |
508 |
[% UNLESS ( none_available ) %] |
497 |
|
509 |
<input type="submit" value="Confirm hold" class="btn btn-primary placehold" /> |
498 |
[% UNLESS ( none_available ) %] |
510 |
[% END %] |
499 |
<input type="submit" value="Confirm hold" class="btn btn-primary placehold" /> |
511 |
</form> |
500 |
[% END %] |
512 |
[% END # / UNLESS message %] |
501 |
</form> |
513 |
</div> |
502 |
[% END # / UNLESS message %] |
514 |
<!-- / #holds --> |
|
|
515 |
</div> |
503 |
</div> |
516 |
</div> |
504 |
<!-- / #holds --> |
|
|
505 |
</div> |
517 |
</div> |
506 |
<!-- / .container --> |
518 |
<!-- / .container --> |
507 |
</main> |
519 |
</main> |
Lines 731-745
Link Here
|
731 |
|
743 |
|
732 |
return true; |
744 |
return true; |
733 |
}); |
745 |
}); |
734 |
$(".itemstable").each(function(){ |
746 |
|
735 |
$(this).DataTable({ |
747 |
var table_settings = [% TablesSettings.GetTableSettings( 'opac', 'opac_holds', 'opac_holds_items', 'json' ) | $raw %]; |
736 |
dom: "t", |
748 |
|
737 |
initComplete: function() { |
749 |
$(".itemstable").kohaTable({ |
738 |
this.find("input:radio").first().prop("checked", true ); |
750 |
bKohaColumnsUseNames: true, |
739 |
}, |
751 |
order: [[ 1, "asc" ]], |
740 |
paging: false |
752 |
responsive: { |
741 |
}); |
753 |
details: { "type": 'column',"target": -1 } |
742 |
}); |
754 |
}, |
|
|
755 |
columnDefs: [ |
756 |
{ "className": 'dtr-control', "orderable": false, "targets": -1 } |
757 |
], |
758 |
initComplete: function(settings, json) { |
759 |
/* Select the first radio button in the table as a default */ |
760 |
$( "#" + settings.sInstance ).find("input:radio").first().prop("checked", true ); |
761 |
}, |
762 |
paging: false |
763 |
}, table_settings |
764 |
); |
743 |
}); |
765 |
}); |
744 |
</script> |
766 |
</script> |
745 |
[% END %] |
767 |
[% END %] |