calendar v2.2.2
Six fixes, all reported by @ClaudiusH — thank you, these were good reports
with the evidence attached.
Fixed: RSVP returned a 500
Clicking Going or Interested threw MassAssignmentException: Add [event_id]
to fillable property. The RSVP row was constructed with an attribute array, and
Flarum's AbstractModel guards every attribute now that core no longer unguards
globally. Every first RSVP on every event failed.
Fixed: All-day kept the time internally
"On the UI the timestamp is removed, but internally still kept." Exactly
right. The toggle set the flag and nothing else — the fields showed a bare date
while the start still held 12:00 and the end 10:00, so an end that looked
equal to the start was still an hour earlier underneath.
2.2.1 stopped the server rejecting that. This stops the state being a lie in the
first place: switching All-day on now clears the time from the stored value.
Fixed: dates were in the browser's language, not the forum's
Every formatter asked for the visitor's browser locale rather than the
forum's, so a German forum read from an en-US browser showed Aug 31 – Sep 6,
2026, MON/TUE and 1 AM next to fully translated interface text.
All three of the reported gaps come from that one cause, and all three are
fixed:
- Date format — German now reads
31. Aug. – 6. Sept. 2026.
- Weekday names —
Mo Di Mi Do Fr Sa So.
- 24-hour clock —
13 Uhr, automatically. There is nothing to configure:
hour: 'numeric' is 12-hour in en and 24-hour in de, because that is what
those locales mean.
Two things were wrong underneath. weekdayNames() was a hardcoded English array
under a docblock claiming it was localised. And the week range was assembled by
hand, so translating the month name alone would still have produced the English
order — it now goes through Intl.DateTimeFormat.formatRange, which knows the
order, the separator, and when to elide a repeated month or year.
Fixed: the cover image was invisible, with its remove button outside the modal
Flarum 2's .Form-group is a flex column with align-items: flex-start, so a
child that declares no width shrinks to fit its in-flow content — and the cover
box's only child is absolutely positioned, so it had none. It collapsed to 2px:
the two borders. The remove button, positioned right: 8px of a 2px box, ended
up 26px outside the modal.
Measured in a real Flarum 2 page: 2px wide before, 566px after. A background
colour was added as a second guard, so a cover whose URL 404s now shows an empty
frame instead of nothing at all.
Fixed: "Delete event" was bright white
It used --alert-error-color, which is the foreground that sits on an error
background — #fff in both light and dark. The most destructive control on the
page was also the loudest thing on it. It uses --error-color now.
Changed: the category pill moved into the modal header
Your suggestion, and your mockup. It sits above the title now, the way a tag is
shown everywhere else in Flarum, instead of floating at the top of the body with
nothing tying it to the event's name.
View release on GitHub