@@ -, +, @@
choice - bootstrap
---
.../opac-tmpl/bootstrap/en/modules/opac-reserve.tt | 163 +++++++++++++-------
1 file changed, 107 insertions(+), 56 deletions(-)
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt
+++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt
@@ -228,27 +228,44 @@
[% END # / IF OpacHoldNotes %]
- [% IF ( OPACItemHolds ) %]
+ [% IF OPACItemHolds == '1' or OPACItemHolds == 'force' %]
-
+
- [% UNLESS ( bibitemloo.holdable ) %]
-
+ [% IF OPACItemHolds == "1" %]
+
[% ELSE %]
-
+
[% END %]
-
- [% UNLESS ( bibitemloo.holdable ) %]
-
+ [% IF OPACItemHolds == "force" %]
+
[% ELSE %]
-
+
[% END %]
[% END # / IF OPACItemHolds %]
- [% IF ( OPACItemHolds ) %]
+ [% IF OPACItemHolds == '1' || OPACItemHolds == 'force' %]
Select a specific copy:
@@ -274,7 +291,8 @@
[% IF ( itemLoo.available ) %]
[% ELSE %]
-
+
[% END %]
@@ -380,6 +398,13 @@
$(this).closest("td").find("input").val("");
e.preventDefault();
});
+
+ // Select the first item available
+ function select_first_available(id){
+ var radios = $("input:radio[name='checkitem_" + id + "']");
+ $(radios).first().attr("checked", "checked");
+ }
+
$(document).ready(function() {
$("#hold-request-form").preventDoubleFormSubmit();
var copiesRowId = null;
@@ -388,10 +413,30 @@
$(".checkitem").parent().click(function(e){
if(e.target.tagName.toLowerCase() == 'td'){
$(this).find("input.checkitem").each( function() {
- $(this).attr('checked', !$(this).attr('checked'));
+ $(this).attr('checked', 'checked');
});
}
});
+
+ [% FOREACH bibitemloo IN bibitemloop %]
+ [% IF bibitemloo.holdable %]
+ [% IF OPACItemHolds == 'force' %]
+ $("#copiesrow_[% bibitemloo.biblionumber %]").show();
+ [% END %]
+ [% END %]
+ [% END %]
+
+
+ // click on a first td check the confirmjs checkbox
+ $("td.hold").click(function(e){
+ if(e.target.tagName.toLowerCase() == 'td'){
+ $(this).find("input.confirmjs").each( function() {
+ $(this).attr('checked', !$(this).attr('checked'));
+ $(this).change();
+ });
+ }
+ });
+
// Hides all 'specific copy' table rows on load.
$(".copiesrow").hide();
@@ -404,9 +449,7 @@
}
});
- $("#place_on_hdr").show();
- $(".place_on_type").show();
- $("#place_on_hdr,.place_on_type,.toggle-hold-options").show();
+ $(".toggle-hold-options").show();
$(".hold-options").hide();
$(".holddatefrom,.holddateto").prop("readOnly", true);
@@ -430,64 +473,72 @@
$(".confirmjs_hold").each(function(){
var bib = $(this).attr("title");
var html = " ";
+ html += "value=\"" + bib + "\" id=\"" + bib + "\" /> " + _("Place a hold on") + " ";
$(this).html(html);
});
$(".confirmjs_nohold").each(function(){
var bib = $(this).attr("title");
var html = "";
+ html += "value=\"" + bib + "\" id=\"" + bib + "\" />" + _("Place a hold on: ") + "";
$(this).html(html);
});
- // Make sure a specific item was selected where specified
- // before moving on to a new item.
- function changeSelection (newCopiesRowId, isSpecific) {
- if (copiesRowId && ((copiesRowId != newCopiesRowId) || (wasSpecific != isSpecific))) {
- var biblioNum = suffixOf(copiesRowId, "_");
+ // expand or collapse the copiesrow tr
+ function toggle_copiesrow(biblioNum) {
+ var checkbox = $("input:checkbox[value='"+biblioNum+"']");
+ newCopiesRowId = "#copiesrow_" + biblioNum;
+ var select_specific = $("#reqspecific_"+biblioNum).is(":checked");
+ // If the checkbox is checked AND we want a specific item, we display the items block
+ if ( $(checkbox).is(":checked") && select_specific ) {
+ $(newCopiesRowId).show();
+ } else {
+ $(newCopiesRowId).hide();
+ }
+ };
- // If the 'specific copy' radio button was checked
- if (wasSpecific && (copiesRowId != newCopiesRowId)) {
- // Find the selected copy
- var item = $(".checkitem_" + biblioNum + ":checked");
- if ($(item).size() == 0) {
- alert(MSG_NO_COPY_SELECTED);
- return false;
- }
- }
- }
- copiesRowId = newCopiesRowId;
- wasSpecific = isSpecific;
- return true;
- }
+ $("#place_on_hdr").show();
- // When 'specific copy' radio button is clicked
- $(".selectspecific").click(function() {
+ [% IF OPACItemHolds == '1' %]
+ $(".place_on_type").show();
+ // onload, selectany is checked
+ $(".selectany").attr("checked", "checked");
+ [% END %]
- // Make sure all other specific copy table rows are hidden
- biblioNum = suffixOf($(this).attr("id"), "_");
- newCopiesRowId = "#copiesrow_" + biblioNum;
+ // If we can choose a specific item, we preselect the first one
+ [% IF OPACItemHolds =="1" or OPACItemHolds == 'force' %]
+ $("table.copiesrow").each(function(){
+ var id = suffixOf($(this).attr("id"), "_");
+ select_first_available(id);
+ });
+ [% END %]
- if (!changeSelection(newCopiesRowId, true)) {
- return false;
+ // On confirmsjs change
+ $(".confirmjs").change(function(){
+ var id = suffixOf($(this).attr("id"), "_");
+ // If I m checked, I enable radio buttons
+ if ( $(this).is(":checked") ) {
+ $("#reqspecific_" + id).attr("disabled", false);
+ $("#reqany_" + id).attr("disabled", false);
+ }
+ // Else its are disabled
+ else {
+ $("#reqspecific_" + id).attr("disabled", "disabled");
+ $("#reqany_" + id).attr("disabled", "disabled");
}
+ // expand or collaspe the items block
+ toggle_copiesrow(id);
+ });
- // Show the specific copy table for this radio button.
- $(newCopiesRowId).show();
+ // When 'specific copy' or 'first available' radio button is clicked
+ $(".selectspecific, .selectany").click(function() {
+ var id = suffixOf($(this).attr("id"), "_");
+ toggle_copiesrow(id);
});
- // When 'first available' radion button is clicked
- $(".selectany").click(function() {
- // Make sure all other specific copy table rows are hidden
+ // Show or hide holds notes
+ $(".shownotes").click(function(){
biblioNum = suffixOf($(this).attr("id"), "_");
- newCopiesRowId = "#copiesrow_" + biblioNum;
-
- if (!changeSelection(newCopiesRowId, false)) {
- return false;
- }
-
- // Hide the copies table row
- $(newCopiesRowId).hide();
+ $("#notesrow_"+biblioNum).toggle();
});
// When 'Place Hold' button is clicked
--