Skip to content

[pull] develop from LibreBooking:develop - #594

Merged
pull[bot] merged 2 commits into
treborin:developfrom
LibreBooking:develop
Aug 8, 2026
Merged

[pull] develop from LibreBooking:develop#594
pull[bot] merged 2 commits into
treborin:developfrom
LibreBooking:develop

Conversation

@pull

@pull pull Bot commented Aug 8, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

asiimhusain and others added 2 commits August 8, 2026 07:08
On phones the schedule style buttons did not match what the page
actually renders. SchedulePage and ViewSchedulePage route every style
except Tall to schedule-mobile.tpl, and schedule.js renders Standard as
condensed week markup when isMobileView is set, so the Standard button
advertised a table view the user could never get. The Wide and
CondensedWeek buttons were hidden with Bootstrap's d-none/d-md-* utility
classes, which keyed off viewport width rather than device, leaving them
present in the DOM and reachable on phones held in landscape.

Label the Standard button with the CondensedWeek icon, title and alt
text when the device is a phone, so the button describes the view it
produces. Replace the responsive utility classes on the Wide and
CondensedWeek buttons with a server-side check on IsMobile/IsTablet,
which matches how the page picks its template and keeps the buttons out
of the markup entirely on phones regardless of orientation.

Tablets and desktops are unaffected in what they can reach, but the Wide
and CondensedWeek buttons now render at every viewport width rather than
only at md and above.
Phones render schedule-mobile.tpl for every style except Tall, but the
selected style was still passed to Smarty and schedule.js unchanged, so
the reported style could describe a template that was never rendered.

With Wide, schedule.js positions reservations using the desktop grid
inside a template that has no grid. With Condensed Week it skips
Standard-only layout adjustments. In both cases no style control shows
as active, since neither control is in the DOM on phones. A schedule
whose default style is Wide hits this on every phone visit, so no stale
cookie is needed to reproduce it.

Normalize any non-Tall style to Standard on phones in
SetScheduleStyle(). Tall is preserved because it genuinely renders a
different template, and ViewSchedulePage inherits the method, so both
entry points are covered. The style cookie is left untouched so a
desktop choice survives a phone visit.

Add tests/Pages/SchedulePageTest.php covering all four styles across
phone, tablet and desktop.

Refs: #1600
Assisted-by: Claude:claude-opus-5
@pull pull Bot locked and limited conversation to collaborators Aug 8, 2026
@pull pull Bot added the ⤵️ pull label Aug 8, 2026
@pull
pull Bot merged commit e40db27 into treborin:develop Aug 8, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants