github LibreBooking/librebooking v4.3.0

7 hours ago

v4.3.0 (2026-04-03)

Bug Fixes

  • Allow special characters in passwords for user creation (a903be1)

  • Correct check-in status display in resource details popup (ed3dcbc)

  • Improve tooltip rendering and fix Smarty issues (3eb0179)

  • Show the Custom Attribute label name when deleting (b1b06e5)

  • Update the reservation email templates for various languages (667ddc3)

  • Update the reservation email templates for various languages (e94ad11)

  • admin: Prevent permission loss when DataTables paginates resources (cec8823)

  • auth: Use per-user database language when no language cookie is set (b2437db)

  • blackouts: Require repeat-until in recurrence UI (8840ec0)

  • blackouts: Require termination date for recurring blackouts (4cda32d)

  • calendar: Generate correct reservation detail URLs server-side for guest views (25e2391)

  • calendar: Pass correct groupSeriesByResource boolean instead of privacyFilter object (5a7d9ee)

  • config: Avoid empty buckets when rewriting legacy keys (e091b3f)

  • config: Make config key lookup case-insensitive (822ccfe)

  • config: Preserve existing config values when merging new keys from config.dist.php (e2006d1)

  • config: Reject case-insensitive key collisions (eeea6f9)

  • config: Restore legacy config key mappings (74db95a)

  • config: Rewrite legacy section keys into canonical sections (64964cb)

  • config: Treat empty-string section as unsectioned in GetKey (7241c59)

  • database: Make 2.9+ upgrades idempotent and raise DB minimums (3f632d4)

  • dataTable: Add default page size configuration and update DataTable length menu (a959247)

  • email: Correctly render reservation attributes in created emails (0d2bce9)

  • email: Honor secondary category in reservation email attributes (42c98d5)

  • email: Populate resource custom attribute values when loading reservation from DB (5a9756e)

  • email: Restore submitter language after sending approval notification emails (e33a6ab)

  • en_gb: Show only time in popup (5999309)

  • i18n: Add English fallback for 3 languages missing parent translation calls (e202d44)

  • i18n: Add English fallback for 8 languages missing parent translation calls (4ee1ab8)

  • i18n: Add missing embedded_datetime date format to en_gb locale (a4e45d6)

  • i18n: Replace HTML entities with UTF-8 characters in Italian locale (a0c0f46)

  • js: Add no-unused-vars rule, remove dead code, and fix bugs (f009211)

  • lang/es.php: Spanish translations (1b91ad3)

  • ldap: Install the 'pear/net_ldap2' library by default (f3d225e)

  • ldap: Require 'ext-ldap' (e55e63a)

  • registration: Resolve a server error when more than one attributes in the register page (71a3f73)

  • reports: Prevent chart modal from hanging on render errors (e81f465)

  • reservation: Correct guest reservation URI validation from calendar and schedule view (9aca6a1)

  • reservation: Correct guest reservation URI validation from calendar and schedule view (1f9a739)

  • reservation: Resolve a crash when the email field is not an array (618a2f4)

  • resource-display: Update date input handling in resource display (fbee303)

  • schedule: Avoid recursive buffer item ids (b139461)

  • schedule: Correct tall view rendering for reservations with hidden blocked periods (7e80933)

  • schedule: Use correct StartDate field in reservation sort (a83246c)

  • spanish-translations: Update Spanish terms for consistency and clarity (698cbec)

  • time: Make Time parsing/formatting DST-safe for time-only values (6bef7db)

  • translation: Fix date formats for italian (44ceb2b)

  • UI: Standardized the size of remaining form inputs and buttons to sm across the interface. (cab32b6)

  • validators: Allow empty schedule filter params (9aca6a1)

  • validators: Remove redundant EXISTS from combined route validators (9aca6a1)

  • validators: Remove redundant EXISTS from combined route validators (47860f1)

  • view-reservation: Correctly display the duration of the reservation (af1e2ce)

  • webservice: Respect configured inactivity timeout per session (3da795d)

Build System

  • assets: Vendor Hind font for local frontend usage (22b283a)

Chores

  • Correct the location of jquery-migrate (6e828e8)

  • Remove bootstrapValidator CSS includes (7079d8e)

  • Remove unused wysihtml5 assets (ccaf27b)

  • Upgrade jQuery UI assets to 1.14.2 (4a0818e)

  • Upgrade jquery-migrate from 3.0.1 to 3.6.0 (74802ea)

  • api: Remove trailing slash in Authentication POSTs (e69e636)

  • dependabot: Add a 7 day cooldown for updates (7154bac)

  • phpcsfixer: Add 'node_modules/' to the ignore list (4b9600d)

  • vendor: Remove unused jquery-dynamiccontextmenu asset (670f143)

  • vendor: Upgrade select2 library to 4.1.0-rc.0 (8700159)

Code Style

  • Have AI agents flag "magic number" usage in code reviews (8cfd27b)

  • blackouts: Stylize the presentation of Blackouts and reservations when there are conflicts (cedce2f)

  • changelog: Add 'v' prefix to version headings for consistency (d4447d3)

  • jqtree: Add Bootstrap form-check-input to missing checkboxes (45e88df)

Continuous Integration

  • For some CI failures provide info on how to fix (4bd036f)

  • frontend: Have the prettier check run first (cb9a937)

  • integration: Switch from MySQL to MariaDB and use Docker mirror (f499fbd)

  • lint: Add Node.js setup hint to frontend lint failure messages (ee32d8f)

  • phpcsfixer: When it fails, tell how to fix it (b534c4e)

  • release: Change monthly release schedule to 17:00 UTC (4e3cc08)

Documentation

  • Update description of schedule.fast.reservation.load (f323b16)

  • api: Add some curl examples to the API docs (1465819)

  • api: Change the Authentication docs to use sample values (05dce48)

  • api: Correct the responses for account actions (89f6ec2)

  • API: Document retryParameters and skipconflicts for reservation endpoints (6f10d2f)

  • api: Emphasize to not use a / for authentication endpoint (5294edc)

  • api: Put the 'request' before the 'response' (7cdb4da)

  • api: Use the term "Endpoints" instead of "Services" (d306a41)

  • config: Document admin exemption from start.time.constraint (e1b10da)

  • css: Improve the documentation for css.extension.file config (a6d00b6)

  • faq: Add an initial FAQ document (2b54b66)

  • ldap: Add note about using the LDAP schema for the host (8015721)

  • oauth2: Document the oauth2.strip.trailing.slash config (2c361b7)

  • oauth2: Update config examples for new config format (5110088)

Features

  • Add large sample database and setup script (9b202d2)

  • Add option CAS_VERSION_3_0 for config key CAS_VERSION in CAS Authentication plugin (7d6c3d4)

  • Enable use of local JavaScript libraries by default (c2d663e)

  • Enhance reservation emails with resource metadata and details table (57497bc)

  • OAuth trailing slash variable (662fa90)

  • api: Add scheduleId filter to GET Resources endpoint (6ef6011)

  • ci: Add initial minimal frontend linting with ESLint and Stylelint (4fe45d5)

  • ci: Add Prettier for standardized frontend formatting (5346f52)

  • ci: Promote all ESLint rules to error and block warnings (d3f9c4b)

  • config: Add config migration script and documentation (2371fea)

  • config: Support custom footer version override (157a4cb)

  • github: Convert issue templates to YAML forms with required fields (996d654)

  • i18n: Add enabled.languages config to restrict language selector (7063f26)

  • i18n: Add language selector to navbar (138fecc)

  • install: Add option to load large sample data in web installer (3cafcdb)

  • schedule: Add tooltips to schedule action buttons (27dcd39)

  • UI: Add noscript warning for users with JavaScript disabled (334eeb7)

Refactoring

  • Move 3rd party Javascript and CSS code (0bdff5a)

  • Remove legacy qTip references (f73a717)

  • Remove qTip assets and related files (12e187a)

  • Reservation email template context for multi-resource emails (0ae98b6)

  • config: Clarify config key schema dispatch (88b1350)

  • config: Extract shared config key base class (27e7e31)

  • dashboard-tooltip: Show reservation tooltip only on .reservationTitle (d6afdec)

  • domain: Rename User::GetAllowedResourceIds() to GetFullAccessResourceIds() (0acb94e)

  • domain: Rename User::GetAllowedViewResourceIds() to GetViewAccessResourceIds() (2081bc6)

  • js: Add prefer-const ESLint rule and fix violations (84cd017)

  • manage-blackouts: Tooltips to appear only on .reservationTitle (9ad945e)

  • manage-reservations: Tooltips to appear only on .reservationTitle (e6ed697)

  • participation: Tooltips to appear only on .reservationTitle (b408344)

  • recurrence: Replace native date time input with flatpickr (0f1071e)

  • reports: Add charts.js assets (3c27c04)

  • reports: Remove dead code and standardize jQuery event handling (0b65c4e)

  • reports: Remove jqPlot assets (fa0f2bd)

  • reports: Switch Reports from jqPlot to Chart.js (afec9c0)

  • schedules: Replace qTip with Bootstrap tooltips for reservation tooltip (9283493)

  • tooltip: Tooltips to appear only on .reservationTitle (search-reservations) (9a5875e)

  • tooltips: Standardize popup template names and update references (3fcedd6)

  • validators: Replace regex param extraction with parse_url/parse_str (c74bdf6)

  • validators: Simplify XSS guard with early return and add PHPDoc comments (691e91e)

Testing

  • Resolve issues with tests and crossing a DST boundary (539acc3)

  • config: Cover parsing of historical legacy config files (07dc573)

  • reservation: Fix issue with DST causing test failure (6850403)


Detailed Changes: v4.2.0...v4.3.0

Don't miss a new librebooking release

NewReleases is sending notifications on new releases.