From f23e50676313142498658f6eb97669110be77761 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 21 Mar 2024 15:34:59 +0000 Subject: [PATCH] Bug 36120: Account for both pickup_location and date selection in items This patch ensures we account for both pickup location and date selections having taken place before an item selection is pondered. We now correctly disable item options given both conditions rather than it being a race between the two. --- .../prog/js/modals/place_booking.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/js/modals/place_booking.js b/koha-tmpl/intranet-tmpl/prog/js/modals/place_booking.js index dc6e0b85c14..14629324d4a 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/modals/place_booking.js +++ b/koha-tmpl/intranet-tmpl/prog/js/modals/place_booking.js @@ -459,9 +459,13 @@ $("#placeBookingModal").on("show.bs.modal", function (e) { let option = $(this); let item_id = option.val(); if (valid_items.includes(parseInt(item_id))) { - option.prop("disabled", false); + option.attr("data-pickup", true); + if (option.data("available")) { + option.prop("disabled", false); + } } else { option.prop("disabled", true); + option.attr("data-pickup", false); } }); $("#booking_item_id").trigger("change.select2"); @@ -526,9 +530,13 @@ $("#placeBookingModal").on("show.bs.modal", function (e) { ); }) ) { + option.attr("data-available", false); option.prop("disabled", true); } else { - option.prop("disabled", false); + option.attr("data-available", true); + if (option.data("pickup")) { + option.prop("disabled", false); + } } }); $("#booking_item_id").trigger("change.select2"); @@ -536,7 +544,10 @@ $("#placeBookingModal").on("show.bs.modal", function (e) { // Range not set, reset field options else { $("#booking_item_id > option").each(function () { - $(this).prop("disabled", false); + let option = $(this); + if (option.data("pickup")) { + option.prop("disabled", false); + } }); $("#booking_item_id").trigger("change.select2"); } @@ -774,9 +785,11 @@ $("#placeBookingForm").on("submit", function (e) { $("#placeBookingModal").on("hidden.bs.modal", function (e) { $("#booking_patron_id").val(null).trigger("change"); $("#booking_patron_id").empty(); + booking_patron = undefined; $("#booking_item_id").val(0).trigger("change"); $("#pickup_library_id").val(null).trigger("change"); $("#pickup_library_id").empty(); + $("#pickup_library_id").prop("disabled", true); $("#period").get(0)._flatpickr.clear(); $("#booking_start_date").val(""); $("#booking_end_date").val(""); -- 2.44.0