From 34b6832543d5ff14d3468d3b3e1880872db008cc Mon Sep 17 00:00:00 2001 From: Lucas Gass Date: Tue, 22 Apr 2025 15:51:20 +0000 Subject: [PATCH] Bug 39414: Retain item type selection when editing a booking To test: 1. Place a booking on an item. 2. Click on edit to open the Edit booking modal. 3. The item type will be de-selected, and the booking dates calendar will be locked until the item type is re-selected. 4. APPLY PATCH 5. Try steps 1 - 3 again, this time the proper item type should be selected and the date field will not be locked. 6. Try creating a new booking, making sure everything still works as excepted. Signed-off-by: Martin Renvoize --- koha-tmpl/intranet-tmpl/prog/en/modules/bookings/list.tt | 2 +- koha-tmpl/intranet-tmpl/prog/js/modals/place_booking.js | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/bookings/list.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/bookings/list.tt index b214f681fc7..f9e4c193785 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/bookings/list.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/bookings/list.tt @@ -377,7 +377,7 @@ let is_cancelled = row.status === "cancelled"; [% IF CAN_user_circulate_manage_bookings %] if (!is_cancelled) { - result += ''.format(row.booking_id, biblionumber, row.item_id, row.patron_id, row.pickup_library_id, row.start_date, row.end_date, _("Edit")); + result += ''.format(row.booking_id, biblionumber, row.item_id, row.patron_id, row.pickup_library_id, row.start_date, row.end_date, row.item.item_type_id, _("Edit")); result += ''.format(row.booking_id, _("Cancel")); } [% END %] 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 84330c3960b..47b1f0be10f 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/modals/place_booking.js +++ b/koha-tmpl/intranet-tmpl/prog/js/modals/place_booking.js @@ -35,6 +35,7 @@ $("#placeBookingModal").on("show.bs.modal", function (e) { booking_item_id = button.data("itemnumber"); let start_date = button.data("start_date"); let end_date = button.data("end_date"); + let item_type_id = button.data("item_type_id"); // Get booking id if this is an edit booking_id = button.data("booking"); @@ -198,6 +199,7 @@ $("#placeBookingModal").on("show.bs.modal", function (e) { }); function setLocationsPicker(response) { let $pickupSelect = $("#pickup_library_id"); + let $itemTypeSelect = $("#booking_itemtype"); let bookableItemnumbers = bookable_items.map(function (object) { return object.item_id; }); @@ -236,6 +238,13 @@ $("#placeBookingModal").on("show.bs.modal", function (e) { } else { $pickupSelect.val(null).trigger("change"); } + + // If item_type_id already exists, pre-select + if (item_type_id) { + $itemTypeSelect.val(item_type_id).trigger("change"); + } else { + $itemTypeSelect.val(null).trigger("change"); + } } // Itemtype select2 -- 2.49.0