From 2a34a9176ab13681afa37a4fdfb991e03a63282d Mon Sep 17 00:00:00 2001 From: Paul Derscheid Date: Fri, 20 Feb 2026 14:24:21 +0100 Subject: [PATCH] Bug 41129: Harden runtime paths and test reliability MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Runtime: - Add missing use C4::Context in Libraries.pm - Use safe DOM construction instead of innerHTML in external-dependents.mjs (booking count update, success message) - Guard against undefined BookingDateRangeConstraint syspref - Stub OPAC fetchHolidays (public endpoint does not exist) - Pass UI visibility flags to useBookingValidation as reactive parameter instead of reading from store - Simplify island.inc template and add missing TT output filters - Remove unused ItemType type definition from bookings.d.ts Tests: - Correct fencepost in max booking period calculation - Guard DatePicker spec against flatpickr navigation races - Validate via flatpickr instance state instead of DOM classes - Remove broad error suppression from e2e.js support file Sponsored-by: Büchereizentrale Schleswig-Holstein --- Koha/REST/V1/Libraries.pm | 1 + .../en/includes/modals/booking/island.inc | 11 +- .../vue/components/Bookings/BookingModal.vue | 8 +- .../composables/useBookingValidation.mjs | 49 +----- .../Bookings/lib/adapters/api/opac.js | 38 ++--- .../lib/adapters/external-dependents.mjs | 23 +-- .../components/Bookings/types/bookings.d.ts | 25 ++- .../bookingsModalDatePicker_spec.ts | 142 +++++++++--------- t/cypress/support/e2e.js | 14 -- t/cypress/support/flatpickr.js | 45 +++--- 10 files changed, 149 insertions(+), 207 deletions(-) diff --git a/Koha/REST/V1/Libraries.pm b/Koha/REST/V1/Libraries.pm index 5c940fdaf40..2975bc9a893 100644 --- a/Koha/REST/V1/Libraries.pm +++ b/Koha/REST/V1/Libraries.pm @@ -18,6 +18,7 @@ package Koha::REST::V1::Libraries; use Modern::Perl; use Mojo::Base 'Mojolicious::Controller'; +use C4::Context; use Koha::Libraries; use Koha::Calendar; use Koha::DateUtils qw( dt_from_string ); diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/modals/booking/island.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/modals/booking/island.inc index a73a8ac18e8..ed79cb5b300 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/modals/booking/island.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/modals/booking/island.inc @@ -1,15 +1,10 @@ [% USE Koha %]
- +
-[% SET islands = Asset.js("js/vue/dist/islands.esm.js").match('(src="([^"]+)")').1 %] +[% SET islands = Asset.js("js/vue/dist/islands.esm.js").match('(src="([^"]+)")').1 %]