|
Lines 13-22
Link Here
|
| 13 |
[% USE TablesSettings %] |
13 |
[% USE TablesSettings %] |
| 14 |
[% PROCESS 'i18n.inc' %] |
14 |
[% PROCESS 'i18n.inc' %] |
| 15 |
[% SET footerjs = 1 %] |
15 |
[% SET footerjs = 1 %] |
| 16 |
[% formulaire = BLOCK %] |
|
|
| 17 |
[% INCLUDE 'circ-search.inc' %] |
| 18 |
[% END %] |
| 19 |
[% INCLUDE 'doc-head-open.inc' %] |
16 |
[% INCLUDE 'doc-head-open.inc' %] |
|
|
17 |
[% SET libraries = Branches.all %] |
| 18 |
[% SET categories = Categories.all.unblessed %] |
| 19 |
[% SET columns = ['name', 'cardnumber', 'dateofbirth', 'category', 'branch', 'address', 'phone'] %] |
| 20 |
[% PROCESS "patron-search.inc" %] |
| 20 |
[% UNLESS ( multi_hold ) %] |
21 |
[% UNLESS ( multi_hold ) %] |
| 21 |
<title>Place a hold on [% INCLUDE 'biblio-title-head.inc' %] › Holds › Circulation › Koha</title> |
22 |
<title>Place a hold on [% INCLUDE 'biblio-title-head.inc' %] › Holds › Circulation › Koha</title> |
| 22 |
[% ELSE %] |
23 |
[% ELSE %] |
|
Lines 92-98
Link Here
|
| 92 |
|
93 |
|
| 93 |
<body id="circ_request" class="catalog"> |
94 |
<body id="circ_request" class="catalog"> |
| 94 |
|
95 |
|
| 95 |
[% INCLUDE 'header.inc' form=formulaire %] |
96 |
[% INCLUDE 'header.inc' %] |
|
|
97 |
[% INCLUDE 'circ-search.inc' %] |
| 96 |
|
98 |
|
| 97 |
[% UNLESS ( multi_hold ) %] |
99 |
[% UNLESS ( multi_hold ) %] |
| 98 |
<nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb"> |
100 |
<nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb"> |
|
Lines 112-123
Link Here
|
| 112 |
</a> |
114 |
</a> |
| 113 |
</li> |
115 |
</li> |
| 114 |
</ol> |
116 |
</ol> |
| 115 |
<ol> |
|
|
| 116 |
[% IF Koha.Preference('showLastPatron') %][% INCLUDE 'last-borrower.inc' %][% END %] |
| 117 |
</ol> |
| 118 |
<ol> |
| 119 |
<a class="toplinks" href="/cgi-bin/koha/help.pl" id="helper"><i class="fa fa-question-circle"></i> <span>Help</span></a> |
| 120 |
</ol> |
| 121 |
</nav> |
117 |
</nav> |
| 122 |
[% ELSE %] |
118 |
[% ELSE %] |
| 123 |
<nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb"> |
119 |
<nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb"> |
|
Lines 158-163
Link Here
|
| 158 |
[% END %] |
154 |
[% END %] |
| 159 |
|
155 |
|
| 160 |
<main> |
156 |
<main> |
|
|
157 |
<h1>Holds</h1> |
| 161 |
|
158 |
|
| 162 |
[% IF ( nobiblio ) %] |
159 |
[% IF ( nobiblio ) %] |
| 163 |
<div class="dialog alert"> |
160 |
<div class="dialog alert"> |
|
Lines 190-196
Link Here
|
| 190 |
[% END %] |
187 |
[% END %] |
| 191 |
|
188 |
|
| 192 |
[% UNLESS ( multi_hold ) %] |
189 |
[% UNLESS ( multi_hold ) %] |
| 193 |
<h2>Place a hold on [% INCLUDE 'biblio-title.inc' link = 1 %]</h2> |
190 |
<h2>Place a hold on [% INCLUDE 'biblio-title.inc' link = 1 %] [% IF biblio.author %] by [% biblio.author | html %][% END %]</h2> |
| 194 |
[% ELSE %] |
191 |
[% ELSE %] |
| 195 |
<h2> |
192 |
<h2> |
| 196 |
[% IF ( patron ) %] |
193 |
[% IF ( patron ) %] |
|
Lines 219-253
Link Here
|
| 219 |
<p>No club with this name, please, try another</p> |
216 |
<p>No club with this name, please, try another</p> |
| 220 |
</div> |
217 |
</div> |
| 221 |
[% END %] |
218 |
[% END %] |
| 222 |
<fieldset class="brief"> |
219 |
<fieldset> |
| 223 |
[% UNLESS multi_hold %] |
220 |
[% UNLESS multi_hold %] |
| 224 |
[% IF clubcount %] |
221 |
[% IF clubcount %] |
| 225 |
<h3>Search patrons or clubs</h3> |
222 |
<h2>Search patrons or clubs</h2> |
| 226 |
[% ELSE %] |
223 |
[% ELSE %] |
| 227 |
<label>Search patrons</label> |
224 |
<h2>Search patrons</h2> |
| 228 |
[% END %] |
225 |
[% END %] |
| 229 |
[% END %] |
226 |
[% END %] |
| 230 |
<div id="circ_holds_select" class="toptabs"> |
227 |
<div id="circ_holds_select" class="toptabs"> |
| 231 |
<ul> |
228 |
<ul class="nav nav-tabs" role="tablist"> |
| 232 |
<li><a href="#holds_patronsearch_pane">Patrons</a></li> |
229 |
<li role="presentation" class="active"><a href="#holds_patronsearch_pane" aria-controls="holds_patronsearch_pane" role="tab" data-toggle="tab">Patrons</a></li> |
| 233 |
[% IF clubcount %] |
230 |
[% IF clubcount %] |
| 234 |
<li><a href="#holds_clubsearch_pane">Clubs</a></li> |
231 |
<li role="presentation"><a href="#holds_clubsearch_pane" aria-controls="holds_clubsearch_pane" role="tab" data-toggle="tab">Clubs</a></li> |
| 235 |
[% END %] |
232 |
[% END %] |
| 236 |
</ul> |
233 |
</ul> |
| 237 |
<div class="tab-content"> |
234 |
<div class="tab-content"> |
| 238 |
<div id="holds_patronsearch_pane" role="tabpanel" class="tab-pane active"> |
235 |
<div id="holds_patronsearch_pane" role="tabpanel" class="tab-pane active"> |
| 239 |
[% PROCESS patron_search_filters_simple %] |
236 |
[% PROCESS patron_search_filters_simple %] |
| 240 |
|
237 |
|
| 241 |
[% IF clubs %] |
238 |
[% PROCESS patron_search_table table_id => 'table_borrowers', open_on_row_click => 1 %] |
| 242 |
[% INCLUDE 'clubs-table.inc' destination = "holds" %] |
|
|
| 243 |
[% END %] |
| 244 |
</div> |
239 |
</div> |
| 245 |
[% IF clubcount %] |
240 |
[% IF clubcount %] |
| 246 |
<div id="holds_clubsearch_pane" role="tabpanel" class="tab-pane"> |
241 |
<div id="holds_clubsearch_pane" role="tabpanel" class="tab-pane"> |
| 247 |
<form id="holds_clubsearch" action="request.pl" method="post"> |
242 |
<form id="holds_clubsearch" action="request.pl" method="post"> |
| 248 |
<div class="hint">Enter club ID or partial name:</div> |
243 |
<div class="hint">Enter club ID or partial name:</div> |
| 249 |
<input type="text" size="40" id="club" class="focus" name="findclub" autocomplete="off" /> |
244 |
<input type="text" size="40" id="club" class="focus" name="findclub" autocomplete="off" /> |
| 250 |
<input type="submit" class="principal" value="Search" /> |
245 |
<input type="submit" value="Search" /> |
| 251 |
[% FOREACH biblionumber IN biblionumbers %] |
246 |
[% FOREACH biblionumber IN biblionumbers %] |
| 252 |
<input type="hidden" name="biblionumber" value="[% biblionumber | html %]"/> |
247 |
<input type="hidden" name="biblionumber" value="[% biblionumber | html %]"/> |
| 253 |
[% END %] |
248 |
[% END %] |
|
Lines 265-283
Link Here
|
| 265 |
<div class="dialog alert hide clubalert"> |
260 |
<div class="dialog alert hide clubalert"> |
| 266 |
</div> |
261 |
</div> |
| 267 |
<fieldset class="rows"> |
262 |
<fieldset class="rows"> |
| 268 |
<h3>Hold details</h3> |
263 |
<legend>Hold details</legend> |
| 269 |
<form action="/api/v1/clubs/[% club.id | html %]/holds" method="post" name="form" id="club-request-form"> |
264 |
<form action="/api/v1/clubs/[% club.id | html %]/holds" method="post" name="form" id="club-request-form"> |
| 270 |
|
265 |
|
| 271 |
[% IF ( multi_hold ) %] |
266 |
[% IF ( multi_hold ) %] |
| 272 |
<input type="hidden" name="biblionumbers" id="multi_hold_bibs" value="[% biblionumbers | html %]"/> |
|
|
| 273 |
<input type="hidden" name="bad_bibs" id="bad_bibs" value=""/> |
| 274 |
<input type="hidden" name="request" value="any"/> |
267 |
<input type="hidden" name="request" value="any"/> |
| 275 |
[% FOREACH biblioloo IN biblioloop %] |
268 |
[% FOREACH biblioloo IN biblioloop %] |
| 276 |
<input type="hidden" name="title_[% biblioloo.biblionumber | html %]" value="[% biblioloo.title | html %]"/> |
269 |
[% UNLESS biblioloo.none_avail %] |
| 277 |
<input type="hidden" name="rank_[% biblioloo.biblionumber | html %]" value="[% biblioloo.rank | html %]"/> |
270 |
<input type="hidden" name="holdable_bibs" id="holdable_bibs" value="[% biblioloo.biblionumber | html %]"/> |
|
|
271 |
<input type="hidden" name="title_[% biblioloo.biblionumber | html %]" value="[% biblioloo.title | html %]"/> |
| 272 |
<input type="hidden" name="rank_[% biblioloo.biblionumber | html %]" value="[% biblioloo.rank | html %]"/> |
| 273 |
[% END %] |
| 278 |
[% END %] |
274 |
[% END %] |
| 279 |
[% ELSE %] |
275 |
[% ELSE %] |
| 280 |
<input type="hidden" name="biblionumber" value="[% biblionumber | html %]" /> |
276 |
<input type="hidden" name="holdable_bibs" id="holdable_bibs" value="[% biblio.biblionumber | html %]"/> |
| 281 |
<input type="hidden" name="title" value="[% biblio.title | html %]" /> |
277 |
<input type="hidden" name="title" value="[% biblio.title | html %]" /> |
| 282 |
<input type="hidden" name="rank-request" value="[% fixedRank | html %]" /> |
278 |
<input type="hidden" name="rank-request" value="[% fixedRank | html %]" /> |
| 283 |
[% END # /IF multi_hold %] |
279 |
[% END # /IF multi_hold %] |
|
Lines 340-353
Link Here
|
| 340 |
[% END %] |
336 |
[% END %] |
| 341 |
[% UNLESS ( multi_hold ) %] |
337 |
[% UNLESS ( multi_hold ) %] |
| 342 |
<fieldset class="action"> |
338 |
<fieldset class="action"> |
| 343 |
<input type="submit" class="principal" value="Place hold" /> |
339 |
<input type="submit" value="Place hold" /> |
| 344 |
</fieldset> |
340 |
</fieldset> |
| 345 |
[% ELSE %] |
341 |
[% ELSE %] |
| 346 |
<table id="requesttitles"> |
342 |
<table id="requesttitles"> |
| 347 |
<tr> |
343 |
<tr> |
| 348 |
<th> </th> |
344 |
<th> </th> |
| 349 |
<th>Title</th> |
345 |
<th>Title</th> |
| 350 |
[% UNLESS ( item_level_itypes ) %] |
346 |
[% UNLESS Koha.Preference('item-level_itypes') %] |
| 351 |
<th>Item type</th> |
347 |
<th>Item type</th> |
| 352 |
[% END %] |
348 |
[% END %] |
| 353 |
<th>Priority</th> |
349 |
<th>Priority</th> |
|
Lines 368-373
Link Here
|
| 368 |
<ul> |
364 |
<ul> |
| 369 |
<li> |
365 |
<li> |
| 370 |
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber | uri %]">[% biblioloo.title | html %]</a> |
366 |
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber | uri %]">[% biblioloo.title | html %]</a> |
|
|
367 |
[% IF biblioloo.author %] by [% biblioloo.author | html %][% END %] |
| 371 |
</li> |
368 |
</li> |
| 372 |
[% IF ( biblioloo.publicationyear ) %] |
369 |
[% IF ( biblioloo.publicationyear ) %] |
| 373 |
<li> |
370 |
<li> |
|
Lines 379-387
Link Here
|
| 379 |
<span class="not_holdable" title="[% biblioloo.biblionumber | html %]"></span> |
376 |
<span class="not_holdable" title="[% biblioloo.biblionumber | html %]"></span> |
| 380 |
[% END %] |
377 |
[% END %] |
| 381 |
</td> |
378 |
</td> |
| 382 |
[% UNLESS ( item_level_itypes ) %] |
379 |
[% UNLESS Koha.Preference('item-level_itypes') %] |
| 383 |
<td> |
380 |
<td> |
| 384 |
<img src="[% biblioloo.imageurl | html %]" alt="[% biblioloo.itypename | html %]" title="[% biblioloo.itypename | html %]" /> |
381 |
<img src="[% biblioloo.itemtype.image_location| html %]" alt="[% biblioloo.itemtype.translated_description | html %]" title="[% biblioloo.itemtype.translated_description | html %]" /> |
| 385 |
</td> |
382 |
</td> |
| 386 |
[% END %] |
383 |
[% END %] |
| 387 |
<td>[% biblioloo.rank | html %]</td> |
384 |
<td>[% biblioloo.rank | html %]</td> |
|
Lines 430-436
Link Here
|
| 430 |
</div> |
427 |
</div> |
| 431 |
[% END %] |
428 |
[% END %] |
| 432 |
|
429 |
|
| 433 |
[% IF ( no_reserves_allowed || exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || alreadypossession || ageRestricted ) %] |
430 |
[% IF ( no_reserves_allowed || exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || alreadypossession || ageRestricted || recall ) %] |
| 434 |
<div class="dialog alert"> |
431 |
<div class="dialog alert"> |
| 435 |
|
432 |
|
| 436 |
[% UNLESS ( multi_hold ) %] |
433 |
[% UNLESS ( multi_hold ) %] |
|
Lines 468-473
Link Here
|
| 468 |
<li><strong>Too many holds for <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber | uri %]"> [% biblioloo.title | html %]</a>:</strong> [% INCLUDE 'patron-title.inc' patron => patron no_title => 1 no_cardnumber => 1 hide_patron_infos_if_needed => 1 %] can only place a maximum of [% max_holds_for_record | html %] hold(s) on this record.</li> |
465 |
<li><strong>Too many holds for <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber | uri %]"> [% biblioloo.title | html %]</a>:</strong> [% INCLUDE 'patron-title.inc' patron => patron no_title => 1 no_cardnumber => 1 hide_patron_infos_if_needed => 1 %] can only place a maximum of [% max_holds_for_record | html %] hold(s) on this record.</li> |
| 469 |
[% END %] |
466 |
[% END %] |
| 470 |
[% END %] |
467 |
[% END %] |
|
|
468 |
[% ELSIF ( none_available ) %] |
| 469 |
<li><strong>No items available: </strong>One or more records have no items that can be held</li> |
| 471 |
[% END # /IF exceeded_maxreserves %] |
470 |
[% END # /IF exceeded_maxreserves %] |
| 472 |
[% END # /UNLESS multi_hold %] |
471 |
[% END # /UNLESS multi_hold %] |
| 473 |
</div> |
472 |
</div> |
|
Lines 506-528
Link Here
|
| 506 |
</div> |
505 |
</div> |
| 507 |
|
506 |
|
| 508 |
<fieldset class="rows"> |
507 |
<fieldset class="rows"> |
| 509 |
<h3>Hold details</h3> |
508 |
<legend>Hold details</legend> |
| 510 |
<form action="placerequest.pl" method="post" name="form" id="hold-request-form"> |
509 |
<form action="placerequest.pl" method="post" name="form" id="hold-request-form"> |
| 511 |
|
510 |
|
| 512 |
<input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" /> |
511 |
<input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" /> |
| 513 |
<input type="hidden" name="type" value="str8" /> |
512 |
[% FOREACH biblionumber IN biblionumbers %] |
| 514 |
|
513 |
<input type="hidden" name="biblionumber" value="[% biblionumber | html %]"/> |
|
|
514 |
[% END %] |
| 515 |
[% IF ( multi_hold ) %] |
515 |
[% IF ( multi_hold ) %] |
| 516 |
<input type="hidden" name="biblionumbers" id="multi_hold_bibs" value="[% biblionumbers | html %]"/> |
|
|
| 517 |
<input type="hidden" name="multi_holds" id="multi_holds" value="1" /> |
516 |
<input type="hidden" name="multi_holds" id="multi_holds" value="1" /> |
| 518 |
<input type="hidden" name="bad_bibs" id="bad_bibs" value=""/> |
|
|
| 519 |
<input type="hidden" name="request" value="any"/> |
517 |
<input type="hidden" name="request" value="any"/> |
| 520 |
[% FOREACH biblioloo IN biblioloop %] |
518 |
[% FOREACH biblioloo IN biblioloop %] |
| 521 |
<input type="hidden" name="title_[% biblioloo.biblionumber | html %]" value="[% biblioloo.title | html %]"/> |
519 |
[% UNLESS biblioloo.none_avail %] |
| 522 |
<input type="hidden" name="rank_[% biblioloo.biblionumber | html %]" value="[% biblioloo.rank | html %]"/> |
520 |
<input type="hidden" name="holdable_bibs" id="holdable_bibs" value="[% biblioloo.biblionumber | html %]"/> |
|
|
521 |
<input type="hidden" name="title_[% biblioloo.biblionumber | html %]" value="[% biblioloo.title | html %]"/> |
| 522 |
<input type="hidden" name="rank_[% biblioloo.biblionumber | html %]" value="[% biblioloo.rank | html %]"/> |
| 523 |
[% END %] |
| 523 |
[% END %] |
524 |
[% END %] |
| 524 |
[% ELSE %] |
525 |
[% ELSE %] |
| 525 |
<input type="hidden" name="biblionumber" value="[% biblionumber | html %]" /> |
526 |
<input type="hidden" name="holdable_bibs" id="holdable_bibs" value="[% biblio.biblionumber | html %]"/> |
| 526 |
<input type="hidden" name="title" value="[% biblio.title | html %]" /> |
527 |
<input type="hidden" name="title" value="[% biblio.title | html %]" /> |
| 527 |
<input type="hidden" name="rank-request" value="[% fixedRank | html %]" /> |
528 |
<input type="hidden" name="rank-request" value="[% fixedRank | html %]" /> |
| 528 |
[% END # /IF multi_hold %] |
529 |
[% END # /IF multi_hold %] |
|
Lines 603-609
Link Here
|
| 603 |
[% ELSE %] |
604 |
[% ELSE %] |
| 604 |
<input type="checkbox" id="requestany" name="request" checked="checked" value="Any" /> |
605 |
<input type="checkbox" id="requestany" name="request" checked="checked" value="Any" /> |
| 605 |
[% END %] |
606 |
[% END %] |
| 606 |
<input type="hidden" name="biblioitem" value="[% biblioitemnumber | html %]" /> |
|
|
| 607 |
<input type="hidden" name="alreadyreserved" value="[% alreadyreserved | html %]" /> |
607 |
<input type="hidden" name="alreadyreserved" value="[% alreadyreserved | html %]" /> |
| 608 |
</li> |
608 |
</li> |
| 609 |
|
609 |
|
|
Lines 625-755
Link Here
|
| 625 |
</ol> |
625 |
</ol> |
| 626 |
|
626 |
|
| 627 |
[% UNLESS ( multi_hold ) %] |
627 |
[% UNLESS ( multi_hold ) %] |
| 628 |
|
628 |
<fieldset class="action"> |
| 629 |
|
629 |
[% IF ( patron.borrowernumber ) %] |
| 630 |
[% FOREACH bibitemloo IN bibitemloop %] |
630 |
[% IF ( override_required ) %] |
| 631 |
<ol> |
631 |
<button type="submit" class="btn btn-default warning"><i class="fa fa-exclamation-triangle "></i> Place hold</button> |
| 632 |
[% UNLESS ( item_level_itypes ) %] |
632 |
[% ELSIF ( none_available ) %] |
| 633 |
<li> |
633 |
<button type="submit" disabled="disabled" class="btn btn-default btn-disabled">Place hold</button> |
| 634 |
<span class="label">Item type:</span> |
634 |
[% ELSE %] |
| 635 |
[% bibitemloo.description | html %] |
635 |
<button type="submit" class="btn btn-default">Place hold</button> |
| 636 |
</li> |
|
|
| 637 |
[% END %] |
636 |
[% END %] |
|
|
637 |
[% END %] |
| 638 |
</fieldset> |
| 638 |
|
639 |
|
| 639 |
[% IF ( bibitemloo.publicationyear ) %] |
640 |
[% biblio = biblioloop.0 %] |
| 640 |
<li> |
|
|
| 641 |
<span class="label">Publication year:</span> |
| 642 |
[% bibitemloo.publicationyear | html %] |
| 643 |
</li> |
| 644 |
[% END %] |
| 645 |
</ol> |
| 646 |
|
641 |
|
| 647 |
<h2 style="padding: 0 1em;"> |
642 |
<ol> |
| 648 |
Place a hold on a specific item |
643 |
[% UNLESS Koha.Preference('item-level_itypes') %] |
| 649 |
[% IF bibitemloo.force_hold_level == 'item' %] |
644 |
<li> |
| 650 |
<span class="error"><em>(Required)</em></span> |
645 |
<span class="label">Item typeX:</span> |
| 651 |
[% END %] |
646 |
[% biblio.itemtype.translated_description | html %] |
| 652 |
</h2> |
647 |
</li> |
|
|
648 |
[% END %] |
| 653 |
|
649 |
|
| 654 |
<table id="requestspecific"> |
650 |
[% IF ( biblio.biblioitem.publicationyear ) %] |
| 655 |
<thead> |
651 |
<li> |
| 656 |
<tr> |
652 |
<span class="label">Publication year:</span> |
| 657 |
<th>Hold</th> |
653 |
[% biblio.biblioitem.publicationyear | html %] |
| 658 |
[% IF ( item_level_itypes ) %] |
654 |
</li> |
| 659 |
<th>Item type</th> |
655 |
[% END %] |
| 660 |
[% END %] |
656 |
</ol> |
| 661 |
<th>Barcode</th> |
657 |
|
| 662 |
<th>Home library</th> |
658 |
<h2 style="padding: 0 1em;"> |
| 663 |
<th>Last location</th> |
659 |
Place a hold on a specific item |
| 664 |
[% IF itemdata_ccode %] |
660 |
[% IF force_hold_level == 'item' %] |
| 665 |
<th>Collection</th> |
661 |
<span class="error"><em>(Required)</em></span> |
| 666 |
[% END %] |
662 |
[% END %] |
| 667 |
<th>Call number</th> |
663 |
</h2> |
| 668 |
<th>Copy number</th> |
664 |
|
| 669 |
[% IF itemdata_enumchron %] |
665 |
<table id="requestspecific"> |
| 670 |
<th>Vol no.</th> |
666 |
<thead> |
| 671 |
[% END %] |
667 |
<tr> |
| 672 |
<th>Information</th> |
668 |
<th>Hold</th> |
| 673 |
<th>Allowed pickup locations</th> |
669 |
<th>Allowed pickup locations</th> |
| 674 |
</tr> |
670 |
[% IF Koha.Preference('item-level_itypes') %] |
| 675 |
</thead> |
671 |
<th>Item type</th> |
| 676 |
<tbody> |
672 |
[% END %] |
| 677 |
[% SET selected = 0 %] |
673 |
<th>Barcode</th> |
| 678 |
[% FOREACH itemloo IN bibitemloo.itemloop %] |
674 |
<th>Home library</th> |
| 679 |
[% UNLESS ( itemloo.hide ) %] |
675 |
<th>Last location</th> |
| 680 |
<tr class="[% itemloo.backgroundcolor | html %]"> |
676 |
[% IF itemdata_ccode %] |
| 681 |
<td> |
677 |
<th>Collection</th> |
| 682 |
[% IF itemloo.force_hold_level == 'record' # Patron has placed a record level hold previously for this record %] |
678 |
[% END %] |
| 683 |
<span class="error"> |
679 |
<th>Call number</th> |
| 684 |
<i class="fa fa-times fa-lg" title="Cannot be put on hold"></i> |
680 |
<th>Copy number</th> |
| 685 |
Hold must be record level |
681 |
[% IF itemdata_enumchron %] |
| 686 |
</span> |
682 |
<th>Vol no.</th> |
| 687 |
[% ELSIF ( itemloo.available ) %] |
683 |
[% END %] |
| 688 |
<input type="radio" name="checkitem" value="[% itemloo.itemnumber | html %]" /> |
684 |
<th>Information</th> |
| 689 |
[% ELSIF ( itemloo.override ) %] |
685 |
</tr> |
| 690 |
<input type="radio" name="checkitem" class="needsoverride" value="[% itemloo.itemnumber | html %]" /> |
686 |
</thead> |
| 691 |
<i class="fa fa-exclamation-triangle fa-lg" style="color:gold" title="Requires override of hold policy"/></i> |
687 |
<tbody> |
| 692 |
[% ELSE %] |
688 |
[% SET selected = 0 %] |
| 693 |
<span class="error"> |
689 |
[% FOREACH itemloo IN biblio.itemloop %] |
| 694 |
<i class="fa fa-times fa-lg" title="Cannot be put on hold"></i> |
690 |
[% UNLESS ( itemloo.hide ) %] |
| 695 |
[% IF itemloo.not_holdable %] |
691 |
<tr class="[% itemloo.backgroundcolor | html %]"> |
| 696 |
[% IF itemloo.not_holdable == 'damaged' %] |
692 |
<td> |
| 697 |
Item damaged |
693 |
[% IF force_hold_level == 'record' # Patron has placed a record level hold previously for this record %] |
| 698 |
[% ELSIF itemloo.not_holdable == 'ageRestricted' %] |
694 |
<span class="error"> |
| 699 |
Age restricted |
695 |
<i class="fa fa-times fa-lg" title="Cannot be put on hold"></i> |
| 700 |
[% ELSIF itemloo.not_holdable == 'tooManyHoldsForThisRecord' %] |
696 |
Hold must be record level |
| 701 |
Exceeded max holds per record |
697 |
</span> |
| 702 |
[% ELSIF itemloo.not_holdable == 'tooManyReservesToday' %] |
698 |
[% ELSIF ( itemloo.available ) %] |
| 703 |
Daily hold limit reached for patron |
699 |
<input type="radio" name="checkitem" value="[% itemloo.itemnumber | html %]" /> |
| 704 |
[% ELSIF itemloo.not_holdable == 'tooManyReserves' %] |
700 |
[% ELSIF ( itemloo.override ) %] |
| 705 |
Too many holds |
701 |
<input type="radio" name="checkitem" class="needsoverride" value="[% itemloo.itemnumber | html %]" /> |
| 706 |
[% ELSIF itemloo.not_holdable == 'notReservable' %] |
702 |
<i class="fa fa-exclamation-triangle fa-lg" style="color:gold" title="Requires override of hold policy"/></i> |
| 707 |
Not holdable |
703 |
[% ELSE %] |
| 708 |
[% ELSIF itemloo.not_holdable == 'cannotReserveFromOtherBranches' %] |
704 |
<span class="error"> |
| 709 |
Patron is from different library |
705 |
<i class="fa fa-times fa-lg" title="Cannot be put on hold"></i> |
| 710 |
[% ELSIF itemloo.not_holdable == 'branchNotInHoldGroup' %] |
706 |
[% IF itemloo.not_holdable %] |
| 711 |
Cannot place hold from patron's library |
707 |
[% IF itemloo.not_holdable == 'damaged' %] |
| 712 |
[% ELSIF itemloo.not_holdable == 'itemAlreadyOnHold' %] |
708 |
<span>Item damaged</span> |
| 713 |
Patron already has hold for this item |
709 |
[% ELSIF itemloo.not_holdable == 'ageRestricted' %] |
| 714 |
[% ELSIF itemloo.not_holdable == 'cannotBeTransferred' %] |
710 |
<span>Age restricted</span> |
| 715 |
Cannot be transferred to pickup library |
711 |
[% ELSIF itemloo.not_holdable == 'tooManyHoldsForThisRecord' %] |
| 716 |
[% ELSIF itemloo.not_holdable == 'pickupNotInHoldGroup' %] |
712 |
<span>Exceeded max holds per record</span> |
| 717 |
Only pickup locations within the same hold group are allowed |
713 |
[% ELSIF itemloo.not_holdable == 'tooManyReservesToday' %] |
| 718 |
[% ELSIF itemloo.not_holdable == 'noReservesAllowed' %] |
714 |
<span>Daily hold limit reached for patron</span> |
| 719 |
No reserves are allowed on this item |
715 |
[% ELSIF itemloo.not_holdable == 'tooManyReserves' %] |
| 720 |
[% ELSIF itemloo.not_holdable == 'libraryNotPickupLocation' %] |
716 |
<span>Too many holds</span> |
| 721 |
Library is not a pickup location |
717 |
[% ELSIF itemloo.not_holdable == 'notReservable' %] |
| 722 |
[% ELSIF itemloo.not_holdable == 'no_valid_pickup_location' %] |
718 |
<span>Not holdable</span> |
| 723 |
No valid pickup location |
719 |
[% ELSIF itemloo.not_holdable == 'cannotReserveFromOtherBranches' %] |
| 724 |
[% ELSE %] |
720 |
<span>Patron is from different library</span> |
| 725 |
[% itemloo.not_holdable | html %] |
721 |
[% ELSIF itemloo.not_holdable == 'branchNotInHoldGroup' %] |
| 726 |
[% END %] |
722 |
<span>Cannot place hold from patron's library</span> |
|
|
723 |
[% ELSIF itemloo.not_holdable == 'itemAlreadyOnHold' %] |
| 724 |
<span>Patron already has hold for this item</span> |
| 725 |
[% ELSIF itemloo.not_holdable == 'cannotBeTransferred' %] |
| 726 |
<span>Cannot be transferred to pickup library</span> |
| 727 |
[% ELSIF itemloo.not_holdable == 'pickupNotInHoldGroup' %] |
| 728 |
<span>Only pickup locations within the same hold group are allowed</span> |
| 729 |
[% ELSIF itemloo.not_holdable == 'noReservesAllowed' %] |
| 730 |
<span>No holds are allowed on this item</span> |
| 731 |
[% ELSIF itemloo.not_holdable == 'libraryNotPickupLocation' %] |
| 732 |
<span>Library is not a pickup location</span> |
| 733 |
[% ELSIF itemloo.not_holdable == 'no_valid_pickup_location' %] |
| 734 |
<span>No valid pickup location</span> |
| 735 |
[% ELSIF itemloo.not_holdable == 'notforloan' %] |
| 736 |
<span>Not for loan</span> |
| 737 |
[% ELSE %] |
| 738 |
<span>[% itemloo.not_holdable | html %]</span> |
| 727 |
[% END %] |
739 |
[% END %] |
| 728 |
</span> |
|
|
| 729 |
[% END # /IF itemloo.force_hold_level %] |
| 730 |
</td> |
| 731 |
[% IF ( item_level_itypes ) %] |
| 732 |
<td> |
| 733 |
[% UNLESS ( noItemTypeImages ) %] |
| 734 |
[% IF ( itemloo.imageurl ) %]<img src="[% itemloo.imageurl | html %]" alt="" /> <br /> [% END %] |
| 735 |
[% END %] |
740 |
[% END %] |
| 736 |
[% itemloo.itypename | html %] |
741 |
</span> |
| 737 |
</td> |
742 |
[% END # /IF force_hold_level %] |
|
|
743 |
</td> |
| 744 |
<td> |
| 745 |
[% IF (itemloo.pickup_locations_count > 0) %] |
| 746 |
<select name="item_pickup_[% itemloo.itemnumber | html %]" class="pickup_locations" style="width:100%;" |
| 747 |
data-item-id="[% itemloo.itemnumber | html %]" |
| 748 |
data-patron-id="[% patron.borrowernumber | html %]" |
| 749 |
data-pickup-location-source="item"> |
| 750 |
[% IF (itemloo.default_pickup_location) %] |
| 751 |
<option value="[% itemloo.default_pickup_location.branchcode | html %]" selected="selected">[% itemloo.default_pickup_location.branchname | html %]</option> |
| 738 |
[% END %] |
752 |
[% END %] |
|
|
753 |
</select> |
| 754 |
[% END %] |
| 755 |
</td> |
| 756 |
[% IF Koha.Preference('item-level_itypes') %] |
| 739 |
<td> |
757 |
<td> |
| 740 |
[% itemloo.barcode | html %] |
758 |
[% UNLESS ( noItemTypeImages ) %] |
|
|
759 |
[% IF ( itemloo.itemtype.image_location) %]<img src="[% itemloo.itemtype.image_location | html %]" alt="" /> <br /> [% END %] |
| 760 |
[% END %] |
| 761 |
[% itemloo.itemtype.translated_description | html %] |
| 741 |
</td> |
762 |
</td> |
|
|
763 |
[% END %] |
| 764 |
<td> |
| 765 |
[% itemloo.barcode | html %] |
| 766 |
</td> |
| 767 |
<td> |
| 768 |
[% Branches.GetName( itemloo.homebranch ) | html %] |
| 769 |
</td> |
| 770 |
<td> |
| 771 |
[% Branches.GetName( itemloo.holdingbranch ) | html %] |
| 772 |
</td> |
| 773 |
[% IF itemdata_ccode %] |
| 742 |
<td> |
774 |
<td> |
| 743 |
[% Branches.GetName( itemloo.homebranch ) | html %] |
775 |
[% IF ( itemloo.ccode ) %][% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.ccode', authorised_value => itemloo.ccode ) | html %][% END %] |
| 744 |
</td> |
776 |
</td> |
|
|
777 |
[% END %] |
| 778 |
<td> |
| 779 |
[% itemloo.itemcallnumber | html %] |
| 780 |
</td> |
| 781 |
<td> |
| 782 |
[% IF ( itemloo.copynumber ) %][% itemloo.copynumber | html %][% ELSE %] [% END %] |
| 783 |
</td> |
| 784 |
[% IF itemdata_enumchron %] |
| 745 |
<td> |
785 |
<td> |
| 746 |
[% Branches.GetName( itemloo.holdingbranch ) | html %] |
786 |
[% itemloo.enumchron | html %] |
| 747 |
</td> |
787 |
</td> |
| 748 |
[% IF itemdata_ccode %] |
788 |
[% END %] |
| 749 |
<td> |
789 |
[% IF ( itemloo.onloan ) %] |
| 750 |
[% IF ( itemloo.ccode ) %][% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.ccode', authorised_value => itemloo.ccode ) | html %][% END %] |
790 |
<td data-order="[% itemloo.date_due | html %]"> |
| 751 |
</td> |
791 |
<span class="checkedout">Due [% itemloo.date_due | $KohaDates as_due_date => 1 %]</span> |
| 752 |
[% END %] |
792 |
[% ELSE %] |
| 753 |
<td> |
793 |
<td> |
| 754 |
[% IF ( itemloo.transfertwhen ) %] |
794 |
[% IF ( itemloo.transfertwhen ) %] |
| 755 |
<span>In transit from [% Branches.GetName( itemloo.transfertfrom ) | html %], |
795 |
<span>In transit from [% Branches.GetName( itemloo.transfertfrom ) | html %], |
|
Lines 770-855
Link Here
|
| 770 |
[% IF ( itemloo.waitingdate ) %] |
810 |
[% IF ( itemloo.waitingdate ) %] |
| 771 |
[% itemloo.waitingdate | $KohaDates %] |
811 |
[% itemloo.waitingdate | $KohaDates %] |
| 772 |
[% ELSE %] |
812 |
[% ELSE %] |
| 773 |
[% IF ( itemloo.waitingdate ) %]Waiting[% ELSE %]On hold[% END %] |
813 |
[% IF ( itemloo.reservedate ) %] |
| 774 |
[% IF ( itemloo.canreservefromotherbranches ) %] |
814 |
[% itemloo.reservedate | html %] |
| 775 |
for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% itemloo.ReservedFor.borrowernumber | uri %]">[% itemloo.ReservedFor.firstname | html %] [% itemloo.ReservedFor.surname | html %]</a> |
|
|
| 776 |
[% END %] |
815 |
[% END %] |
| 777 |
[% IF ( itemloo.waitingdate ) %]at[% ELSE %]expected at[% END %] |
816 |
[% END %]. |
| 778 |
[% Branches.GetName( itemloo.ExpectedAtLibrary ) | html %] since |
817 |
<a class="info cancel-hold" href="modrequest.pl?CancelBiblioNumber=[% itemloo.biblionumber | html %]&CancelBorrowerNumber=[% itemloo.ReservedFor.borrowernumber | html %]&CancelItemnumber=[% itemloo.itemnumber | html %]">Cancel hold</a> |
| 779 |
[% IF ( itemloo.waitingdate ) %] |
818 |
[% END # /IF itemloo.nocancel %] |
| 780 |
[% itemloo.waitingdate | $KohaDates %] |
819 |
[% ELSE %] |
| 781 |
[% ELSE %] |
820 |
Not on hold |
| 782 |
[% IF ( itemloo.reservedate ) %] |
821 |
[% END # /IF itemloo.reservedate %] |
| 783 |
[% itemloo.reservedate | html %] |
|
|
| 784 |
[% END %] |
| 785 |
[% END %]. |
| 786 |
<a class="info cancel-hold" href="modrequest.pl?CancelBiblioNumber=[% itemloo.biblionumber | html %]&CancelBorrowerNumber=[% itemloo.ReservedFor.borrowernumber | html %]&CancelItemnumber=[% itemloo.itemnumber | html %]">Cancel hold</a> |
| 787 |
[% END # /IF itemloo.nocancel %] |
| 788 |
[% ELSE %] |
| 789 |
Not on hold |
| 790 |
[% END # /IF itemloo.reservedate %] |
| 791 |
|
822 |
|
| 792 |
[% IF itemloo.item_level_holds == "N" %] |
823 |
[% IF itemloo.item_level_holds == "N" %] |
| 793 |
<br/>Item level hold not allowed from OPAC |
824 |
<br/>Item level hold not allowed from OPAC |
| 794 |
[% ELSIF itemloo.item_level_holds == "F" %] |
825 |
[% ELSIF itemloo.item_level_holds == "F" %] |
| 795 |
<br/>Item level hold forced from OPAC |
826 |
<br/>Item level hold forced from OPAC |
| 796 |
[% END %] |
827 |
[% END %] |
| 797 |
|
828 |
|
| 798 |
[% IF ( itemloo.itemlost ) %] |
829 |
[% IF ( itemloo.itemlost ) %] |
| 799 |
<span class="lost">[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.itemlost', authorised_value => itemloo.itemlost ) | html %]</span> |
830 |
<span class="lost">[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.itemlost', authorised_value => itemloo.itemlost ) | html %]</span> |
| 800 |
[% END %] |
831 |
[% END %] |
| 801 |
|
832 |
|
| 802 |
[% IF ( itemloo.damaged ) %] |
833 |
[% IF ( itemloo.damaged ) %] |
| 803 |
<span class="dmg">[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.damaged', authorised_value => itemloo.damaged ) | html %]</span> |
834 |
<span class="dmg">[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.damaged', authorised_value => itemloo.damaged ) | html %]</span> |
| 804 |
[% END %] |
835 |
[% END %] |
| 805 |
|
836 |
|
| 806 |
[% IF ( itemloo.withdrawn ) %] |
837 |
[% IF ( itemloo.withdrawn ) %] |
| 807 |
<span class="wdn">[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.withdrawn', authorised_value => itemloo.withdrawn ) | html %]</span> |
838 |
<span class="wdn">[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.withdrawn', authorised_value => itemloo.withdrawn ) | html %]</span> |
| 808 |
[% END %] |
839 |
[% END %] |
| 809 |
|
840 |
|
| 810 |
[% IF ( itemloo.notforloan ) %] |
841 |
[% IF ( itemloo.notforloan ) %] |
| 811 |
<span class="nfl">Not for loan ([% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.notforloan', authorised_value => itemloo.notforloan ) | html %])</span> |
842 |
<span class="nfl">Not for loan ([% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.notforloan', authorised_value => itemloo.notforloan ) | html %])</span> |
| 812 |
[% END %] |
843 |
[% ELSIF ( itemloo.notforloanitype ) %] |
| 813 |
</td> |
844 |
<span class="nfl">Not for loan (Itemtype not for loan)</span> |
| 814 |
<td> |
|
|
| 815 |
[% IF (itemloo.pickup_locations_count > 0) %] |
| 816 |
<select name="item_pickup_[% itemloo.itemnumber | html %]" class="pickup_locations" style="width:100%;" |
| 817 |
data-item-id="[% itemloo.itemnumber | html %]" |
| 818 |
data-patron-id="[% patron.borrowernumber | html %]" |
| 819 |
data-pickup-location-source="item"> |
| 820 |
[% IF (itemloo.default_pickup_location) %] |
| 821 |
<option value="[% itemloo.default_pickup_location.branchcode | html %]" selected="selected">[% itemloo.default_pickup_location.branchname | html %]</option> |
| 822 |
[% END %] |
| 823 |
</select> |
| 824 |
[% END %] |
845 |
[% END %] |
| 825 |
</td> |
846 |
</td> |
| 826 |
</tr> |
847 |
</tr> |
| 827 |
[% END # / UNLESS itemloo.hide %] |
848 |
[% END # / UNLESS itemloo.hide %] |
| 828 |
[% END # /FOREACH itemloo %] |
849 |
[% END # /FOREACH itemloo %] |
| 829 |
</tbody> |
850 |
</tbody> |
| 830 |
</table> <!-- /#requestspecific --> |
851 |
</table> <!-- /#requestspecific --> |
| 831 |
|
852 |
|
| 832 |
[% IF ( bibitemloo.hiddencount ) %] |
853 |
[% IF hiddencount %] |
| 833 |
<form> |
854 |
<form> |
| 834 |
<p class="hiddencount"> |
855 |
<p class="hiddencount"> |
| 835 |
<a href="request.pl?biblionumber=[% bibitemloo.biblionumber | uri %]&borrowernumber=[% bibitemloo.borrowernumber | uri %]&showallitems=1">Show all items ([% bibitemloo.hiddencount | html %] hidden)</a> |
856 |
<a href="request.pl?biblionumber=[% biblio.biblionumber | uri %]&borrowernumber=[% borrowernumber | uri %]&showallitems=1">Show all items ([% biblio.hiddencount | html %] hidden)</a> |
| 836 |
</p> |
857 |
</p> |
| 837 |
</form> |
858 |
</form> |
| 838 |
[% END # /IF bibitemloo.hiddencount %] |
859 |
[% END # /IF hiddencount %] |
| 839 |
[% END # /FOREACH bibitemloo %] |
|
|
| 840 |
|
860 |
|
| 841 |
[% ELSE # /UNLESS multi_hold %] |
861 |
[% ELSE # /UNLESS multi_hold %] |
| 842 |
|
862 |
|
| 843 |
<table id="requesttitles"> |
863 |
<table id="requesttitles"> |
| 844 |
<tr> |
864 |
<tr> |
| 845 |
<th> </th> |
865 |
<th> </th> |
|
|
866 |
<th>Pickup location</th> |
| 846 |
<th>Title</th> |
867 |
<th>Title</th> |
| 847 |
[% UNLESS ( item_level_itypes ) %] |
868 |
[% UNLESS Koha.Preference('item-level_itypes') %] |
| 848 |
<th>Item type</th> |
869 |
<th>Item type</th> |
| 849 |
[% END %] |
870 |
[% END %] |
| 850 |
<th>Priority</th> |
871 |
<th>Priority</th> |
| 851 |
<th>Information</th> |
872 |
<th>Information</th> |
| 852 |
<th>Pickup location</th> |
|
|
| 853 |
</tr> |
873 |
</tr> |
| 854 |
[% FOREACH biblioloo IN biblioloop %] |
874 |
[% FOREACH biblioloo IN biblioloop %] |
| 855 |
[% IF ( biblioloo.warn ) %] |
875 |
[% IF ( biblioloo.warn ) %] |
|
Lines 859-871
Link Here
|
| 859 |
[% END %] |
879 |
[% END %] |
| 860 |
<td> |
880 |
<td> |
| 861 |
[% UNLESS ( biblioloo.warn ) %] |
881 |
[% UNLESS ( biblioloo.warn ) %] |
| 862 |
<input class="multi_hold_item_checkbox" type="checkbox" checked="checked" title="[% biblioloo.biblionumber | html %]"/> |
882 |
<input class="multi_hold_item_checkbox" type="checkbox" checked="checked" title="[% biblioloo.biblionumber | html %]"/> |
| 863 |
</td> |
|
|
| 864 |
[% END %] |
883 |
[% END %] |
|
|
884 |
</td> |
| 885 |
<td> |
| 886 |
[% UNLESS ( biblioloo.none_avail || biblioloo.noitems ) %] |
| 887 |
<select name="pickup_[% biblioloo.biblionumber | html %]" |
| 888 |
class="multi_pickup_select" |
| 889 |
data-biblio-id="[% biblioloo.biblionumber | html %]" |
| 890 |
data-patron-id="[% patron.borrowernumber | html %]" |
| 891 |
data-pickup-locations='[% biblioloo.pickup_locations_codes.json | $raw %]'> |
| 892 |
<option value=""></option> |
| 893 |
[% FOREACH pickup_location IN biblioloo.pickup_locations %] |
| 894 |
<option value="[% pickup_location.branchcode | html %]">[% pickup_location.branchname | html %]</option> |
| 895 |
[% END %] |
| 896 |
</select> |
| 897 |
[% END %] |
| 898 |
</td> |
| 865 |
<td> |
899 |
<td> |
| 866 |
<ul> |
900 |
<ul> |
| 867 |
<li> |
901 |
<li> |
| 868 |
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber | uri %]">[% biblioloo.title | html %]</a> |
902 |
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblioloo.biblionumber | uri %]">[% biblioloo.title | html %]</a> |
|
|
903 |
[% IF biblioloo.author %] by [% biblioloo.author | html %][% END %] |
| 869 |
</li> |
904 |
</li> |
| 870 |
[% IF ( biblioloo.publicationyear ) %] |
905 |
[% IF ( biblioloo.publicationyear ) %] |
| 871 |
<li> |
906 |
<li> |
|
Lines 877-885
Link Here
|
| 877 |
<span class="not_holdable" title="[% biblioloo.biblionumber | html %]"></span> |
912 |
<span class="not_holdable" title="[% biblioloo.biblionumber | html %]"></span> |
| 878 |
[% END %] |
913 |
[% END %] |
| 879 |
</td> |
914 |
</td> |
| 880 |
[% UNLESS ( item_level_itypes ) %] |
915 |
[% UNLESS Koha.Preference('item-level_itypes') %] |
| 881 |
<td> |
916 |
<td> |
| 882 |
<img src="[% biblioloo.imageurl | html %]" alt="[% biblioloo.itypename | html %]" title="[% biblioloo.itypename | html %]" /> |
917 |
<img src="[% biblioloo.itemtype.image_location | html %]" alt="[% biblioloo.itemtype.translated_description | html %]" title="[% biblioloo.itemtype.translated_description | html %]" /> |
| 883 |
</td> |
918 |
</td> |
| 884 |
[% END %] |
919 |
[% END %] |
| 885 |
<td>[% biblioloo.rank | html %]</td> |
920 |
<td>[% biblioloo.rank | html %]</td> |
|
Lines 912-931
Link Here
|
| 912 |
[% END %] |
947 |
[% END %] |
| 913 |
[% END %] |
948 |
[% END %] |
| 914 |
</td> |
949 |
</td> |
| 915 |
<td> |
|
|
| 916 |
[% UNLESS ( biblioloo.none_avail || biblioloo.noitems ) %] |
| 917 |
<select name="pickup_[% biblioloo.biblionumber | html %]" |
| 918 |
class="multi_pickup_select" |
| 919 |
data-biblio-id="[% biblioloo.biblionumber | html %]" |
| 920 |
data-patron-id="[% patron.borrowernumber | html %]" |
| 921 |
data-pickup-locations='[% biblioloo.pickup_locations_codes.json | $raw %]'> |
| 922 |
<option value=""></option> |
| 923 |
[% FOREACH pickup_location IN biblioloo.pickup_locations %] |
| 924 |
<option value="[% pickup_location.branchcode | html %]">[% pickup_location.branchname | html %]</option> |
| 925 |
[% END %] |
| 926 |
</select> |
| 927 |
[% END %] |
| 928 |
</td> |
| 929 |
</tr> |
950 |
</tr> |
| 930 |
[% END # /FOREACH biblioloo %] |
951 |
[% END # /FOREACH biblioloo %] |
| 931 |
</table> <!-- /#requesttitles --> |
952 |
</table> <!-- /#requesttitles --> |
|
Lines 950-956
Link Here
|
| 950 |
[% ELSIF ( none_available ) %] |
971 |
[% ELSIF ( none_available ) %] |
| 951 |
<button type="submit" class="btn btn-default btn-disabled" disabled="disabled">Place hold</button> |
972 |
<button type="submit" class="btn btn-default btn-disabled" disabled="disabled">Place hold</button> |
| 952 |
[% ELSE %] |
973 |
[% ELSE %] |
| 953 |
<button type="submit" class="btn btn-default" id="lientype">Place hold</button> |
974 |
<button type="submit" class="btn btn-default">Place hold</button> |
| 954 |
[% END %] |
975 |
[% END %] |
| 955 |
[% END %] |
976 |
[% END %] |
| 956 |
[% END # /IF patron %] |
977 |
[% END # /IF patron %] |
|
Lines 977-983
Link Here
|
| 977 |
[% IF ( reserveloop ) %] |
998 |
[% IF ( reserveloop ) %] |
| 978 |
<form id="existing_holds" name="T[% time | html %]" action="modrequest.pl" method="post" style="display:block"> |
999 |
<form id="existing_holds" name="T[% time | html %]" action="modrequest.pl" method="post" style="display:block"> |
| 979 |
[% IF ( multi_hold ) %] |
1000 |
[% IF ( multi_hold ) %] |
| 980 |
<input type = "hidden" name="biblionumbers" value="[% biblionumbers | html %]"/> |
1001 |
[% FOREACH biblionumber IN biblionumbers %] |
|
|
1002 |
<input type="hidden" name="biblionumber" value="[% biblionumber | html %]"/> |
| 1003 |
[% END %] |
| 981 |
[% END %] |
1004 |
[% END %] |
| 982 |
|
1005 |
|
| 983 |
[% IF enqueued %] |
1006 |
[% IF enqueued %] |
|
Lines 992-998
Link Here
|
| 992 |
<input type="submit" name="submit" value="Update hold(s)" /> <button class="cancel_selected_holds" data-bulk="true"></button> |
1015 |
<input type="submit" name="submit" value="Update hold(s)" /> <button class="cancel_selected_holds" data-bulk="true"></button> |
| 993 |
<fieldset id="cancellation-reason-fieldset" class="action"> |
1016 |
<fieldset id="cancellation-reason-fieldset" class="action"> |
| 994 |
[% SET hold_cancellation = AuthorisedValues.GetAuthValueDropbox('HOLD_CANCELLATION') %] |
1017 |
[% SET hold_cancellation = AuthorisedValues.GetAuthValueDropbox('HOLD_CANCELLATION') %] |
| 995 |
[% IF hold_cancellation %] |
1018 |
[% IF hold_cancellation.count %] |
| 996 |
<label for="cancellation-reason">Cancellation reason: </label> |
1019 |
<label for="cancellation-reason">Cancellation reason: </label> |
| 997 |
<select class="cancellation-reason" name="cancellation-reason" id="cancellation-reason"> |
1020 |
<select class="cancellation-reason" name="cancellation-reason" id="cancellation-reason"> |
| 998 |
<option value="">No reason given</option> |
1021 |
<option value="">No reason given</option> |
|
Lines 1115-1121
Link Here
|
| 1115 |
[% IF i %] |
1138 |
[% IF i %] |
| 1116 |
[% ItemTypes.GetDescription( i ) | html %] |
1139 |
[% ItemTypes.GetDescription( i ) | html %] |
| 1117 |
[% ELSE %] |
1140 |
[% ELSE %] |
| 1118 |
Any item type |
1141 |
<span>Any item type</span> |
| 1119 |
[% END %] |
1142 |
[% END %] |
| 1120 |
</h5> |
1143 |
</h5> |
| 1121 |
|
1144 |
|
|
Lines 1178-1184
Link Here
|
| 1178 |
|
1201 |
|
| 1179 |
<fieldset class="action"> |
1202 |
<fieldset class="action"> |
| 1180 |
[% SET hold_cancellation = AuthorisedValues.GetAuthValueDropbox('HOLD_CANCELLATION') %] |
1203 |
[% SET hold_cancellation = AuthorisedValues.GetAuthValueDropbox('HOLD_CANCELLATION') %] |
| 1181 |
[% IF hold_cancellation %] |
1204 |
[% IF hold_cancellation.count %] |
| 1182 |
<label for="cancellation-reason">Cancellation reason: </label> |
1205 |
<label for="cancellation-reason">Cancellation reason: </label> |
| 1183 |
<select class="cancellation-reason" name="modal-cancellation-reason" id="modal-cancellation-reason"> |
1206 |
<select class="cancellation-reason" name="modal-cancellation-reason" id="modal-cancellation-reason"> |
| 1184 |
<option value="">No reason given</option> |
1207 |
<option value="">No reason given</option> |
|
Lines 1200-1217
Link Here
|
| 1200 |
|
1223 |
|
| 1201 |
[% MACRO jsinclude BLOCK %] |
1224 |
[% MACRO jsinclude BLOCK %] |
| 1202 |
[% INCLUDE 'datatables.inc' %] |
1225 |
[% INCLUDE 'datatables.inc' %] |
|
|
1226 |
[% INCLUDE 'calendar.inc' %] |
| 1203 |
[% INCLUDE 'columns_settings.inc' %] |
1227 |
[% INCLUDE 'columns_settings.inc' %] |
| 1204 |
[% Asset.js("lib/hc-sticky.js") | $raw %] |
1228 |
[% Asset.js("lib/hc-sticky.js") | $raw %] |
| 1205 |
[% Asset.js("js/circ-patron-search-results.js") | $raw %] |
|
|
| 1206 |
[% INCLUDE 'select2.inc' %] |
1229 |
[% INCLUDE 'select2.inc' %] |
| 1207 |
[% Asset.js("js/holds.js") | $raw%] |
1230 |
[% Asset.js("js/holds.js") | $raw%] |
| 1208 |
[% INCLUDE 'calendar.inc' %] |
1231 |
|
|
|
1232 |
[% SET url_biblio_params = "biblionumber=" _ biblionumbers.join("&biblionumber=") %] |
| 1233 |
[% IF multi_hold %] |
| 1234 |
[% SET url_biblio_params = url_biblio_params _ "&multi_hold=1" %] |
| 1235 |
[% END %] |
| 1236 |
|
| 1209 |
<script> |
1237 |
<script> |
| 1210 |
var Sticky; |
1238 |
var Sticky; |
| 1211 |
var biblionumber = "[% biblionumber | $raw %]"; |
1239 |
var biblionumbers = [[% biblionumbers.join(', ') | $raw %]]; |
| 1212 |
var borrowernumber = "[% patron.borrowernumber | $raw %]"; |
1240 |
var borrowernumber = "[% patron.borrowernumber | $raw %]"; |
| 1213 |
var patron_homebranch = "[% To.json( Branches.GetName( patron.branchcode ) ) | $raw %]"; |
1241 |
var patron_homebranch = "[% To.json( Branches.GetName( patron.branchcode ) ) | $raw %]"; |
| 1214 |
var override_items = {[% FOREACH bibitemloo IN bibitemloop %][% FOREACH itemloo IN bibitemloo.itemloop %][% IF ( itemloo.override ) %] |
1242 |
var override_items = {[% FOREACH biblio IN biblioloop %][% FOREACH itemloo IN biblio.itemloop %][% IF ( itemloo.override ) %] |
| 1215 |
[% itemloo.itemnumber | html %]: { |
1243 |
[% itemloo.itemnumber | html %]: { |
| 1216 |
homebranch: "[% To.json( Branches.GetName( itemloo.homebranch ) ) | $raw %]", |
1244 |
homebranch: "[% To.json( Branches.GetName( itemloo.homebranch ) ) | $raw %]", |
| 1217 |
holdallowed: "[% itemloo.holdallowed | html %]" |
1245 |
holdallowed: "[% itemloo.holdallowed | html %]" |
|
Lines 1233-1239
Link Here
|
| 1233 |
} |
1261 |
} |
| 1234 |
|
1262 |
|
| 1235 |
var MSG_CANCEL_SELECTED = _("Cancel selected (%s)"); |
1263 |
var MSG_CANCEL_SELECTED = _("Cancel selected (%s)"); |
| 1236 |
columns_settings_borrowers_table = [% TablesSettings.GetColumns( 'circ', 'circulation', 'table_borrowers', 'json' ) | $raw %]; |
|
|
| 1237 |
$.fn.select2.defaults.set("width", "100%" ); |
1264 |
$.fn.select2.defaults.set("width", "100%" ); |
| 1238 |
$.fn.select2.defaults.set("dropdownAutoWidth", true ); |
1265 |
$.fn.select2.defaults.set("dropdownAutoWidth", true ); |
| 1239 |
|
1266 |
|
|
Lines 1247-1262
Link Here
|
| 1247 |
} |
1274 |
} |
| 1248 |
}); |
1275 |
}); |
| 1249 |
|
1276 |
|
| 1250 |
[% SET active = clubs ? 1 : 0 %] |
1277 |
if( $("#circ_holds_select").length > 0 ){ |
| 1251 |
$('#circ_holds_select').tabs({ |
1278 |
[% SET active = clubs ? 1 : 0 %] |
| 1252 |
active: [% active | $raw %], |
1279 |
/* Set active tab based on whether a club search was submitted */ |
| 1253 |
activate: function(){ |
1280 |
var tabs = $("#circ_holds_select li:eq(" + [% active | $raw %] + ") a").tab("show"); |
| 1254 |
$(this).find("input.focus").focus(); |
1281 |
$( tabs[0].hash ).find("input.focus").focus(); |
| 1255 |
}, |
1282 |
|
| 1256 |
create: function(){ |
1283 |
/* Change active focus when tabs change */ |
| 1257 |
$(this).find("input.focus").focus(); |
1284 |
$("#circ_holds_select a[data-toggle='tab']").on("shown.bs.tab", function (e) { |
| 1258 |
} |
1285 |
active_tab = e.target.hash; |
| 1259 |
}); |
1286 |
$( active_tab ).find("input.focus").focus(); |
|
|
1287 |
}); |
| 1288 |
} |
| 1289 |
|
| 1290 |
|
| 1260 |
function ToggleHoldsToPlace() { |
1291 |
function ToggleHoldsToPlace() { |
| 1261 |
if ( $("#requestany").prop('checked') ) { |
1292 |
if ( $("#requestany").prop('checked') ) { |
| 1262 |
$("#holds_to_place_count").prop('disabled', false); |
1293 |
$("#holds_to_place_count").prop('disabled', false); |
|
Lines 1274-1280
Link Here
|
| 1274 |
var pickup = $("#pickup").val(); |
1305 |
var pickup = $("#pickup").val(); |
| 1275 |
var url = "?pickup=" + pickup; |
1306 |
var url = "?pickup=" + pickup; |
| 1276 |
url += "&borrowernumber=" + borrowernumber; |
1307 |
url += "&borrowernumber=" + borrowernumber; |
| 1277 |
url += "&biblionumber=" + biblionumber; |
1308 |
url += "&biblionumber=" + biblionumbers[0]; |
| 1278 |
window.location.replace(url); |
1309 |
window.location.replace(url); |
| 1279 |
}); |
1310 |
}); |
| 1280 |
[% END %] |
1311 |
[% END %] |
|
Lines 1294-1301
Link Here
|
| 1294 |
$("#club-request-form").on("submit", function() { |
1325 |
$("#club-request-form").on("submit", function() { |
| 1295 |
let $t = $(this); |
1326 |
let $t = $(this); |
| 1296 |
$('.clubalert, .holdalert').addClass('hide'); |
1327 |
$('.clubalert, .holdalert').addClass('hide'); |
| 1297 |
let biblionumbers = [biblionumber]; |
|
|
| 1298 |
let biblionumbers_text; |
| 1299 |
const data = { |
1328 |
const data = { |
| 1300 |
pickup_library_id: $('select[name="pickup"]').val() |
1329 |
pickup_library_id: $('select[name="pickup"]').val() |
| 1301 |
}; |
1330 |
}; |
|
Lines 1311-1322
Link Here
|
| 1311 |
if($('input[name="default_patron_home"]:checked').length) { |
1340 |
if($('input[name="default_patron_home"]:checked').length) { |
| 1312 |
data.default_patron_home = 1; |
1341 |
data.default_patron_home = 1; |
| 1313 |
} |
1342 |
} |
| 1314 |
if($('input[name="biblionumbers"]').length) { |
|
|
| 1315 |
biblionumbers_text = $('input[name="biblionumbers"]').val(); |
| 1316 |
biblionumbers = biblionumbers_text.replace(/\/$/, '').split('/') |
| 1317 |
} |
| 1318 |
|
1343 |
|
| 1319 |
const count = $('input[name="holds_to_place_count"]').length?$('input[name="holds_to_place_count"]').val():1; |
1344 |
const count = $('input[name="holds_to_place_count"]').length?$('input[name="holds_to_place_count"]').val():1; |
|
|
1345 |
var newloc = 'request.pl?'; |
| 1346 |
biblionumbers.forEach(function (biblionumber) { |
| 1347 |
newloc += '&biblionumber=' + biblionumber; |
| 1348 |
}); |
| 1349 |
|
| 1320 |
biblionumbers.forEach(function(biblionumber) { |
1350 |
biblionumbers.forEach(function(biblionumber) { |
| 1321 |
data.biblio_id = biblionumber; |
1351 |
data.biblio_id = biblionumber; |
| 1322 |
let options = { |
1352 |
let options = { |
|
Lines 1328-1338
Link Here
|
| 1328 |
for(let i = 0; i < count; i++) { |
1358 |
for(let i = 0; i < count; i++) { |
| 1329 |
$.ajax(options) |
1359 |
$.ajax(options) |
| 1330 |
.then(function(result) { |
1360 |
.then(function(result) { |
| 1331 |
let url = 'request.pl?biblionumber='+biblionumber; |
1361 |
document.location = newloc; |
| 1332 |
if(biblionumbers_text) { |
|
|
| 1333 |
url = 'request.pl?biblionumbers='+biblionumbers_text; |
| 1334 |
} |
| 1335 |
document.location = url; |
| 1336 |
}) |
1362 |
}) |
| 1337 |
.fail(function(err) { |
1363 |
.fail(function(err) { |
| 1338 |
var message = err.responseJSON.error; |
1364 |
var message = err.responseJSON.error; |
|
Lines 1427-1433
Link Here
|
| 1427 |
|
1453 |
|
| 1428 |
function checkMultiHold() { |
1454 |
function checkMultiHold() { |
| 1429 |
|
1455 |
|
| 1430 |
var biblionumbers = ""; |
|
|
| 1431 |
var selected_bibs = $(".multi_hold_item_checkbox:checked"); |
1456 |
var selected_bibs = $(".multi_hold_item_checkbox:checked"); |
| 1432 |
if ( selected_bibs.length > 0 ) { |
1457 |
if ( selected_bibs.length > 0 ) { |
| 1433 |
// there are biblios selected in the form! |
1458 |
// there are biblios selected in the form! |
|
Lines 1440-1446
Link Here
|
| 1440 |
} |
1465 |
} |
| 1441 |
else { |
1466 |
else { |
| 1442 |
var bibnum = $(this).attr("title"); |
1467 |
var bibnum = $(this).attr("title"); |
| 1443 |
biblionumbers += bibnum + "/"; |
|
|
| 1444 |
} |
1468 |
} |
| 1445 |
}); |
1469 |
}); |
| 1446 |
if ( pickup_not_set > 0 ) { |
1470 |
if ( pickup_not_set > 0 ) { |
|
Lines 1453-1474
Link Here
|
| 1453 |
return false; |
1477 |
return false; |
| 1454 |
} |
1478 |
} |
| 1455 |
|
1479 |
|
| 1456 |
var badSpans = $(".not_holdable"); |
|
|
| 1457 |
var badBibs = ""; |
| 1458 |
$(badSpans).each(function() { |
| 1459 |
var bibnum = $(this).attr("title"); |
| 1460 |
badBibs += bibnum + "/"; |
| 1461 |
}); |
| 1462 |
|
| 1463 |
$("#multi_hold_bibs").val(biblionumbers); |
| 1464 |
$("#bad_bibs").val(badBibs); |
| 1465 |
|
| 1466 |
$('#hold-request-form').preventDoubleFormSubmit(); |
1480 |
$('#hold-request-form').preventDoubleFormSubmit(); |
| 1467 |
|
1481 |
|
| 1468 |
return true; |
1482 |
return true; |
| 1469 |
} |
1483 |
} |
| 1470 |
|
1484 |
|
| 1471 |
$(document).ready(function() { |
1485 |
$(document).ready(function() { |
|
|
1486 |
|
| 1472 |
$("#always_show_holds").change(function(){ |
1487 |
$("#always_show_holds").change(function(){ |
| 1473 |
if( $(this).prop('checked') ){ |
1488 |
if( $(this).prop('checked') ){ |
| 1474 |
document.cookie = 'always_show_holds=DO'; |
1489 |
document.cookie = 'always_show_holds=DO'; |
|
Lines 1556-1566
Link Here
|
| 1556 |
$("#cancelModalConfirmBtn").on("click",function(e) { |
1571 |
$("#cancelModalConfirmBtn").on("click",function(e) { |
| 1557 |
let link; |
1572 |
let link; |
| 1558 |
if(cancel_link.data('bulk')) { |
1573 |
if(cancel_link.data('bulk')) { |
| 1559 |
[% IF biblionumbers %] |
1574 |
[% SET data_url = 'biblionumber=' _ biblionumbers.join('&biblionumber=') %] |
| 1560 |
link = `request.pl?biblionumbers=[% biblionumbers | url %]&action=cancelBulk&ids=${$('.holds_table .select_hold:checked').toArray().map(el => $(el).data('id')).join(',')}`; |
1575 |
link = `request.pl?[% data_url | url %]&action=cancelBulk&ids=${$('.holds_table .select_hold:checked').toArray().map(el => $(el).data('id')).join(',')}`; |
| 1561 |
[% ELSE %] |
|
|
| 1562 |
link = `request.pl?biblionumber=[% biblionumber | url %]&action=cancelBulk&ids=${$('.holds_table .select_hold:checked').toArray().map(el => $(el).data('id')).join(',')}`; |
| 1563 |
[% END %] |
| 1564 |
} else { |
1576 |
} else { |
| 1565 |
let borrowernumber = cancel_link.data('borrowernumber'); |
1577 |
let borrowernumber = cancel_link.data('borrowernumber'); |
| 1566 |
let biblionumber = cancel_link.data('biblionumber'); |
1578 |
let biblionumber = cancel_link.data('biblionumber'); |
|
Lines 1577-1589
Link Here
|
| 1577 |
|
1589 |
|
| 1578 |
[% UNLESS ( patron || patron.borrowernumber || borrowers || noitems || nobiblio ) %] |
1590 |
[% UNLESS ( patron || patron.borrowernumber || borrowers || noitems || nobiblio ) %] |
| 1579 |
[% IF ( PatronAutoComplete ) %] |
1591 |
[% IF ( PatronAutoComplete ) %] |
| 1580 |
$( "#patron" ).autocomplete({ |
1592 |
$( "#search_patron_filter" ).autocomplete({ |
| 1581 |
source: "/cgi-bin/koha/circ/ysearch.pl", |
1593 |
source: "/cgi-bin/koha/circ/ysearch.pl", |
| 1582 |
minLength: 3, |
1594 |
minLength: 3, |
| 1583 |
select: function( event, ui ) { |
1595 |
select: function( event, ui ) { |
| 1584 |
$( "#patron" ).val( ui.item.cardnumber ); |
1596 |
document.location.href = '/cgi-bin/koha/reserve/request.pl?[% url_biblio_params | url %]&borrowernumber=' + ui.item.borrowernumber; |
| 1585 |
$( "#holds_patronsearch" ).submit(); |
|
|
| 1586 |
return false; |
| 1587 |
} |
1597 |
} |
| 1588 |
}) |
1598 |
}) |
| 1589 |
.data( "ui-autocomplete" )._renderItem = function( ul, item ) { |
1599 |
.data( "ui-autocomplete" )._renderItem = function( ul, item ) { |
|
Lines 1611-1616
Link Here
|
| 1611 |
}; |
1621 |
}; |
| 1612 |
[% END %] |
1622 |
[% END %] |
| 1613 |
[% END %] |
1623 |
[% END %] |
|
|
1624 |
|
| 1614 |
Sticky = $("#toolbar"); |
1625 |
Sticky = $("#toolbar"); |
| 1615 |
Sticky.hcSticky({ |
1626 |
Sticky.hcSticky({ |
| 1616 |
stickTo: "#existing_holds", |
1627 |
stickTo: "#existing_holds", |
|
Lines 1661-1668
Link Here
|
| 1661 |
} |
1672 |
} |
| 1662 |
return false; |
1673 |
return false; |
| 1663 |
}); |
1674 |
}); |
|
|
1675 |
}); |
| 1676 |
</script> |
| 1677 |
|
| 1678 |
<script> |
| 1679 |
table_settings = [% TablesSettings.GetColumns( 'circ', 'circulation', 'table_borrowers', 'json' ) | $raw %]; |
| 1680 |
</script> |
| 1664 |
|
1681 |
|
|
|
1682 |
[% PROCESS patron_search_js table_id => 'table_borrowers', categories => categories, libraries => libraries, extended_attribute_types => attribute_type_codes, columns => columns, open_on_row_click => 1, on_click_url => '/cgi-bin/koha/reserve/request.pl?' _ url_biblio_params, redirect_if_one_result => 1, redirect_url => '/cgi-bin/koha/reserve/request.pl?' _ url_biblio_params, redirect_if_attribute_equal => 'cardnumber' %] |
| 1683 |
<script> |
| 1684 |
$(document).ready(function() { |
| 1685 |
$("#holds_patronsearch").on("submit", filter); |
| 1665 |
}); |
1686 |
}); |
|
|
1687 |
$('.printholdslip').click(function(){ |
| 1688 |
var reserve_id = $(this).attr('data-reserve_id'); |
| 1689 |
window.open("/cgi-bin/koha/circ/hold-transfer-slip.pl?reserve_id=" + reserve_id); |
| 1690 |
return false; |
| 1691 |
}) |
| 1666 |
</script> |
1692 |
</script> |
| 1667 |
[% END %] |
1693 |
[% END %] |
| 1668 |
|
1694 |
|