|
Lines 435-443
Link Here
|
| 435 |
</div> |
435 |
</div> |
| 436 |
|
436 |
|
| 437 |
[% UNLESS ( multi_hold ) %] |
437 |
[% UNLESS ( multi_hold ) %] |
| 438 |
<fieldset class="rows"> |
438 |
<form action="placerequest.pl" method="post" name="form" id="hold-request-form"> |
| 439 |
<legend>Hold details</legend> |
439 |
<fieldset class="rows"> |
| 440 |
<form action="placerequest.pl" method="post" name="form" id="hold-request-form"> |
440 |
<legend>Hold details</legend> |
| 441 |
|
441 |
|
| 442 |
<input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" /> |
442 |
<input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" /> |
| 443 |
<input type="hidden" name="type" value="str8" /> |
443 |
<input type="hidden" name="type" value="str8" /> |
|
Lines 461-470
Link Here
|
| 461 |
<span class="label">Estimated priority:</span> |
461 |
<span class="label">Estimated priority:</span> |
| 462 |
<strong>[% fixedRank | html %]</strong> |
462 |
<strong>[% fixedRank | html %]</strong> |
| 463 |
</li> |
463 |
</li> |
| 464 |
<li> |
|
|
| 465 |
<label for="holdnotes">Notes:</label> |
| 466 |
<textarea id="holdnotes" name="notes" cols="30" rows="1"></textarea> |
| 467 |
</li> |
| 468 |
[% IF ( reserve_in_future ) %] |
464 |
[% IF ( reserve_in_future ) %] |
| 469 |
<li> |
465 |
<li> |
| 470 |
<label for="from">Hold starts on date:</label> |
466 |
<label for="from">Hold starts on date:</label> |
|
Lines 482-533
Link Here
|
| 482 |
<input name="non_priority" id="non_priority" type="checkbox" /> |
478 |
<input name="non_priority" id="non_priority" type="checkbox" /> |
| 483 |
<span class="hint">A non priority hold doesn't prevent a current checkout from renewing</span> |
479 |
<span class="hint">A non priority hold doesn't prevent a current checkout from renewing</span> |
| 484 |
</li> |
480 |
</li> |
| 485 |
<fieldset> |
481 |
<li> |
| 486 |
<legend> |
482 |
<label for="holdnotes">Notes:</label> |
| 487 |
<label for="requestany"> |
483 |
<textarea id="holdnotes" name="notes" cols="30" rows="1"></textarea> |
| 488 |
Hold next available item |
484 |
</li> |
| 489 |
[% IF force_hold_level == 'item' %] |
485 |
</ol> |
| 490 |
<input type="checkbox" id="requestany" name="request" disabled="true" /> |
486 |
</fieldset> |
| 491 |
[% ELSIF force_hold_level == 'record' %] |
487 |
|
| 492 |
<input type="checkbox" id="requestany" checked="checked" value="Any" disabled="true"/> |
488 |
<fieldset class="rows"> |
| 493 |
<input type="hidden" name="request" value="Any"/> |
489 |
<legend> |
| 494 |
[% ELSE %] |
490 |
<label for="requestany"> |
| 495 |
<input type="checkbox" id="requestany" name="request" checked="checked" value="Any" /> |
491 |
Hold next available item |
| 496 |
[% END %] |
492 |
[% IF force_hold_level == 'item' %] |
| 497 |
<input type="hidden" name="alreadyreserved" value="[% alreadyreserved | html %]" /> |
493 |
<input type="radio" class="requestany" id="requestany" name="request" disabled="true" /> |
| 498 |
</label> |
494 |
[% ELSIF force_hold_level == 'record' %] |
| 499 |
</legend> |
495 |
<input type="radio" class="requestany" id="requestany" checked="checked" value="Any" disabled="true"/> |
| 500 |
<ol> |
496 |
<input type="hidden" name="request" value="Any"/> |
| 501 |
<li> |
497 |
[% ELSE %] |
| 502 |
<label for="pickup">Pickup at:</label> |
498 |
<input type="radio" class="requestany" id="requestany" name="request" checked="checked" value="Any" /> |
| 503 |
<select name="pickup" id="pickup" |
499 |
[% END %] |
| 504 |
data-biblio-id="[% biblio.biblionumber | html %]" |
500 |
<input type="hidden" name="alreadyreserved" value="[% alreadyreserved | html %]" /> |
| 505 |
data-patron-id="[% patron.borrowernumber | html %]" |
501 |
</label> |
| 506 |
data-pickup-location-source="biblio"> |
502 |
</legend> |
| 507 |
[% PROCESS options_for_libraries libraries => Branches.pickup_locations({ search_params => { biblio => biblionumber, patron => patron }, selected => pickup }) %] |
503 |
<ol> |
| 508 |
</select> |
504 |
<li> |
| 509 |
</li> |
505 |
<label for="pickup">Pickup at:</label> |
| 510 |
[% IF Koha.Preference('AllowHoldItemTypeSelection') %] |
506 |
<select name="pickup" id="pickup" |
| 511 |
<li> |
507 |
data-biblio-id="[% biblio.biblionumber | html %]" |
| 512 |
<label for="itemtype">Request specific item type:</label> |
508 |
data-patron-id="[% patron.borrowernumber | html %]" |
| 513 |
<select name="itemtype" id="itemtype"> |
509 |
data-pickup-location-source="biblio"> |
| 514 |
<option value="">Any item type</option> |
510 |
[% PROCESS options_for_libraries libraries => Branches.pickup_locations({ search_params => { biblio => biblionumber, patron => patron }, selected => pickup }) %] |
| 515 |
[%- FOREACH itemtype IN available_itemtypes %] |
511 |
</select> |
| 516 |
<option value="[% itemtype | html %]">[% ItemTypes.GetDescription( itemtype ) | html %]</option> |
512 |
</li> |
| 517 |
[%- END %] |
513 |
[% IF Koha.Preference('AllowHoldItemTypeSelection') %] |
| 518 |
</select> |
514 |
<li> |
| 519 |
</li> |
515 |
<label for="itemtype">Request specific item type:</label> |
| 520 |
[% END %] |
516 |
<select name="itemtype" id="itemtype"> |
| 521 |
[% IF remaining_holds_for_record > 1 %] |
517 |
<option value="">Any item type</option> |
| 522 |
<li> |
518 |
[%- FOREACH itemtype IN available_itemtypes %] |
| 523 |
<label for="holds_to_place_count">Holds to place (count)</label> |
519 |
<option value="[% itemtype | html %]">[% ItemTypes.GetDescription( itemtype ) | html %]</option> |
| 524 |
<input type="text" inputmode="numeric" pattern="[0-9]*" id="holds_to_place_count" name="holds_to_place_count" maxlength="[% remaining_holds_for_record | html %]" value="1" /> |
520 |
[%- END %] |
| 525 |
</li> |
521 |
</select> |
| 526 |
[% ELSE %] |
522 |
</li> |
| 527 |
<input type="hidden" name="holds_to_place_count" value="1" /> |
523 |
[% END %] |
| 528 |
[% END %] |
524 |
[% IF remaining_holds_for_record > 1 %] |
| 529 |
</ol> |
525 |
<li> |
| 530 |
</fieldset> |
526 |
<label for="holds_to_place_count">Holds to place (count)</label> |
|
|
527 |
<input type="text" inputmode="numeric" pattern="[0-9]*" id="holds_to_place_count" name="holds_to_place_count" maxlength="[% remaining_holds_for_record | html %]" value="1" /> |
| 528 |
</li> |
| 529 |
[% ELSE %] |
| 530 |
<input type="hidden" name="holds_to_place_count" value="1" /> |
| 531 |
[% END %] |
| 531 |
</ol> |
532 |
</ol> |
| 532 |
<fieldset class="action"> |
533 |
<fieldset class="action"> |
| 533 |
[% IF ( patron.borrowernumber ) %] |
534 |
[% IF ( patron.borrowernumber ) %] |
|
Lines 540-545
Link Here
|
| 540 |
[% END %] |
541 |
[% END %] |
| 541 |
[% END %] |
542 |
[% END %] |
| 542 |
</fieldset> |
543 |
</fieldset> |
|
|
544 |
</fieldset> |
| 545 |
|
| 546 |
<hr /> |
| 547 |
|
| 548 |
<fieldset class="rows"> |
| 549 |
<legend> |
| 550 |
<label> |
| 551 |
Place a hold on a specific item |
| 552 |
<input type="radio" name="request" class="requestany" /> |
| 553 |
</label> |
| 554 |
[% IF force_hold_level == 'item' %] |
| 555 |
<span class="error"><em>Required</em></span> |
| 556 |
[% END %] |
| 557 |
</legend> |
| 543 |
|
558 |
|
| 544 |
[% biblio = biblioloop.0 %] |
559 |
[% biblio = biblioloop.0 %] |
| 545 |
|
560 |
|
|
Lines 559-571
Link Here
|
| 559 |
[% END %] |
574 |
[% END %] |
| 560 |
</ol> |
575 |
</ol> |
| 561 |
|
576 |
|
| 562 |
<h2 style="padding: 0 1em;"> |
|
|
| 563 |
Place a hold on a specific item |
| 564 |
[% IF force_hold_level == 'item' %] |
| 565 |
<span class="error"><em>(Required)</em></span> |
| 566 |
[% END %] |
| 567 |
</h2> |
| 568 |
|
| 569 |
<table id="requestspecific"> |
577 |
<table id="requestspecific"> |
| 570 |
<thead> |
578 |
<thead> |
| 571 |
<tr> |
579 |
<tr> |
|
Lines 600-608
Link Here
|
| 600 |
Hold must be record level |
608 |
Hold must be record level |
| 601 |
</span> |
609 |
</span> |
| 602 |
[% ELSIF ( itemloo.available ) %] |
610 |
[% ELSIF ( itemloo.available ) %] |
| 603 |
<input type="radio" name="checkitem" value="[% itemloo.itemnumber | html %]" /> |
611 |
<input type="radio" name="checkitem" class="requestspecific" value="[% itemloo.itemnumber | html %]" /> |
| 604 |
[% ELSIF ( itemloo.override ) %] |
612 |
[% ELSIF ( itemloo.override ) %] |
| 605 |
<input type="radio" name="checkitem" class="needsoverride" value="[% itemloo.itemnumber | html %]" /> |
613 |
<input type="radio" name="checkitem" class="needsoverride requestspecific" value="[% itemloo.itemnumber | html %]" /> |
| 606 |
<i class="fa fa-exclamation-triangle fa-lg" style="color:gold" title="Requires override of hold policy"/></i> |
614 |
<i class="fa fa-exclamation-triangle fa-lg" style="color:gold" title="Requires override of hold policy"/></i> |
| 607 |
[% ELSE %] |
615 |
[% ELSE %] |
| 608 |
<span class="error"> |
616 |
<span class="error"> |
|
Lines 645-651
Link Here
|
| 645 |
</td> |
653 |
</td> |
| 646 |
<td> |
654 |
<td> |
| 647 |
[% IF (itemloo.pickup_locations_count > 0) %] |
655 |
[% IF (itemloo.pickup_locations_count > 0) %] |
| 648 |
<select name="item_pickup_[% itemloo.itemnumber | html %]" class="pickup_locations" style="width:100%;" |
656 |
<select name="item_pickup_[% itemloo.itemnumber | html %]" class="pickup_locations requestspecific" style="width:100%;" |
| 649 |
data-item-id="[% itemloo.itemnumber | html %]" |
657 |
data-item-id="[% itemloo.itemnumber | html %]" |
| 650 |
data-patron-id="[% patron.borrowernumber | html %]" |
658 |
data-patron-id="[% patron.borrowernumber | html %]" |
| 651 |
data-pickup-location-source="item"> |
659 |
data-pickup-location-source="item"> |
|
Lines 751-761
Link Here
|
| 751 |
</table> <!-- /#requestspecific --> |
759 |
</table> <!-- /#requestspecific --> |
| 752 |
|
760 |
|
| 753 |
[% IF hiddencount %] |
761 |
[% IF hiddencount %] |
| 754 |
<form> |
762 |
<p class="hiddencount"> |
| 755 |
<p class="hiddencount"> |
763 |
<a href="request.pl?biblionumber=[% biblio.biblionumber | uri %]&borrowernumber=[% borrowernumber | uri %]&showallitems=1">Show all items ([% biblio.hiddencount | html %] hidden)</a> |
| 756 |
<a href="request.pl?biblionumber=[% biblio.biblionumber | uri %]&borrowernumber=[% borrowernumber | uri %]&showallitems=1">Show all items ([% biblio.hiddencount | html %] hidden)</a> |
764 |
</p> |
| 757 |
</p> |
|
|
| 758 |
</form> |
| 759 |
[% END # /IF hiddencount %] |
765 |
[% END # /IF hiddencount %] |
| 760 |
|
766 |
|
| 761 |
<fieldset class="action"> |
767 |
<fieldset class="action"> |
|
Lines 769-776
Link Here
|
| 769 |
[% END %] |
775 |
[% END %] |
| 770 |
[% END # /IF patron %] |
776 |
[% END # /IF patron %] |
| 771 |
</fieldset> <!-- /.action --> |
777 |
</fieldset> <!-- /.action --> |
| 772 |
</form> <!-- /#hold-request-form --> |
778 |
</fieldset> <!-- /.rows --> |
| 773 |
</fieldset> <!-- /.rows --> |
779 |
</form> <!-- /#hold-request-form --> |
| 774 |
[% ELSE # Multi-hold %] |
780 |
[% ELSE # Multi-hold %] |
| 775 |
<fieldset class="rows"> |
781 |
<fieldset class="rows"> |
| 776 |
<legend>Hold details</legend> |
782 |
<legend>Hold details</legend> |
|
Lines 801-810
Link Here
|
| 801 |
[% END %] |
807 |
[% END %] |
| 802 |
</li> |
808 |
</li> |
| 803 |
|
809 |
|
| 804 |
<li> |
|
|
| 805 |
<label for="holdnotes">Notes:</label> |
| 806 |
<textarea id="holdnotes" name="notes" cols="30" rows="1"></textarea> |
| 807 |
</li> |
| 808 |
<li> |
810 |
<li> |
| 809 |
<label for="pickup">Pickup at:</label> |
811 |
<label for="pickup">Pickup at:</label> |
| 810 |
<select name="pickup" id="pickup_multi" data-patron-id="[% patron.borrowernumber | html %]"> |
812 |
<select name="pickup" id="pickup_multi" data-patron-id="[% patron.borrowernumber | html %]"> |
|
Lines 815-821
Link Here
|
| 815 |
</select> |
817 |
</select> |
| 816 |
</li> |
818 |
</li> |
| 817 |
|
819 |
|
| 818 |
|
|
|
| 819 |
[% IF ( reserve_in_future ) %] |
820 |
[% IF ( reserve_in_future ) %] |
| 820 |
<li> |
821 |
<li> |
| 821 |
<label for="from">Hold starts on date:</label> |
822 |
<label for="from">Hold starts on date:</label> |
|
Lines 834-839
Link Here
|
| 834 |
<input name="non_priority" id="non_priority" type="checkbox" /> |
835 |
<input name="non_priority" id="non_priority" type="checkbox" /> |
| 835 |
<span class="hint">A non priority hold doesn't prevent a current checkout from renewing</span> |
836 |
<span class="hint">A non priority hold doesn't prevent a current checkout from renewing</span> |
| 836 |
</li> |
837 |
</li> |
|
|
838 |
|
| 839 |
<li> |
| 840 |
<label for="holdnotes">Notes:</label> |
| 841 |
<textarea id="holdnotes" name="notes" cols="30" rows="1"></textarea> |
| 842 |
</li> |
| 837 |
</ol> |
843 |
</ol> |
| 838 |
|
844 |
|
| 839 |
|
845 |
|
|
Lines 941-950
Link Here
|
| 941 |
[% END %] |
947 |
[% END %] |
| 942 |
[% END # /IF patron %] |
948 |
[% END # /IF patron %] |
| 943 |
</fieldset> <!-- /.action --> |
949 |
</fieldset> <!-- /.action --> |
| 944 |
</form> <!-- /#hold-request-form --> |
950 |
</fieldset> <!-- /.rows --> |
| 945 |
</fieldset> <!-- /.rows --> |
951 |
</form> <!-- /#hold-request-form --> |
| 946 |
[% END %] |
952 |
[% END # /UNLESS ( multi_hold ) %] |
| 947 |
[% END %] |
953 |
[% END # /UNLESS club OR patron... %] |
| 948 |
|
954 |
|
| 949 |
[% UNLESS ( patron ) %] |
955 |
[% UNLESS ( patron ) %] |
| 950 |
[% UNLESS borrowers %] |
956 |
[% UNLESS borrowers %] |
|
Lines 1250-1264
Link Here
|
| 1250 |
$(this).find("input.focus").focus(); |
1256 |
$(this).find("input.focus").focus(); |
| 1251 |
} |
1257 |
} |
| 1252 |
}); |
1258 |
}); |
| 1253 |
function ToggleHoldsToPlace() { |
1259 |
|
| 1254 |
if ( $("#requestany").prop('checked') ) { |
|
|
| 1255 |
$("#holds_to_place_count,#pickup,#itemtype").prop('disabled', false); |
| 1256 |
} else { |
| 1257 |
$("#holds_to_place_count,#pickup,#itemtype").prop('disabled', true); |
| 1258 |
} |
| 1259 |
} |
| 1260 |
ToggleHoldsToPlace(); |
1260 |
ToggleHoldsToPlace(); |
| 1261 |
$("#requestany").on('change', function(){ |
1261 |
$(".requestany").on('change', function(){ |
| 1262 |
ToggleHoldsToPlace(); |
1262 |
ToggleHoldsToPlace(); |
| 1263 |
}); |
1263 |
}); |
| 1264 |
|
1264 |
|
|
Lines 1277-1289
Link Here
|
| 1277 |
"sDom": '<"top pager"ilf>t', |
1277 |
"sDom": '<"top pager"ilf>t', |
| 1278 |
})); |
1278 |
})); |
| 1279 |
|
1279 |
|
| 1280 |
//Override fieldset styling for dataTables search box |
|
|
| 1281 |
$("div.top.pager").css("margin-left","1em"); |
| 1282 |
$(".dataTables_filter label").css({ |
| 1283 |
"width":"auto", |
| 1284 |
"margin-right":"0em" |
| 1285 |
}); |
| 1286 |
|
| 1287 |
$("#club-request-form").on("submit", function() { |
1280 |
$("#club-request-form").on("submit", function() { |
| 1288 |
let $t = $(this); |
1281 |
let $t = $(this); |
| 1289 |
$('.clubalert, .holdalert').addClass('hide'); |
1282 |
$('.clubalert, .holdalert').addClass('hide'); |
|
Lines 1382-1387
Link Here
|
| 1382 |
}); |
1375 |
}); |
| 1383 |
}); |
1376 |
}); |
| 1384 |
|
1377 |
|
|
|
1378 |
function ToggleHoldsToPlace() { |
| 1379 |
if ( $("#requestany").prop('checked') ) { |
| 1380 |
$("#holds_to_place_count, #pickup, #itemtype").prop('disabled', false); |
| 1381 |
$(".requestspecific").prop("disabled", true ); |
| 1382 |
} else { |
| 1383 |
$("#holds_to_place_count, #pickup, #itemtype").prop('disabled', true); |
| 1384 |
$(".requestspecific").prop("disabled", false ); |
| 1385 |
} |
| 1386 |
} |
| 1387 |
|
| 1385 |
function check( table ) { |
1388 |
function check( table ) { |
| 1386 |
|
1389 |
|
| 1387 |
var msg = ""; |
1390 |
var msg = ""; |
| 1388 |
- |
|
|