Skip to content

refactor: rename the webinar page to meeting - #60

Merged
dasniko merged 4 commits into
mainfrom
feature/rename-webinar-to-meeting
Sep 23, 2026
Merged

dasniko merged 4 commits into
mainfrom
feature/rename-webinar-to-meeting

Conversation

@dasniko

@dasniko dasniko commented Sep 21, 2026

Copy link
Copy Markdown
Collaborator

Related to #16 — the feature is in use (the handbuch documents it and JUG DA relies on it), but "webinar" describes a format nobody here actually runs. These are online meetings people dial into, and the page has said "Meeting" in its own headline all along.

Draft: the rename is complete and green, but it changes a public URL and stored data, so it wants a look before it goes in.

What changes

Layer Before After
URL /webinar/{tenant}/{eventId} /meeting/{tenant}/{eventId}
Resource WebinarResource MeetingResource
Templates templates/webinar/webinar.html templates/meeting/meeting.html
Event data key webinarLink meetingLink
Content key webinar.tools meeting.tools
German UI "Webinar-Link", "Webinar-Seite" "Meeting-Link", "Meeting-Seite"

The old URL is gone, not redirected — as agreed, since the only places handing it out are the calendar entry, the bulk-mail draft and the admin button, and all three now emit the new one. Links in already-sent mails and in .ics files participants imported will 404.

V9__rename_webinar_to_meeting.sql renames both stored keys. V4 and V8 keep the old name on purpose: Flyway checksums a migration once it has run, so editing one makes a running instance refuse to start. They are the only files left containing the word.

A bug the rename exposed

b2d544a is a fix, not a rename: the page answered 500 whenever no link was stored yet. Qute renders strictly and {eventData.meetingLink} had no key to resolve. That is exactly the window that matters — the page goes up on the day of the event, the orga team pastes the link in sometimes minutes before the start, and participants refreshing in between got an error page. handbuch.adoc:885 has always described this case as "nicht verfügbar"; now the page delivers that.

It stayed invisible because the only test hitting the page ran after a test that happened to upload a link. JUnit orders methods by a hash of their names, so renaming one reordered the class and the 500 fell out. That test now stores its own link, and testMeetingPageSaysNotAvailableWhileNoLinkIsStored covers the empty case — verified by removing the guard and watching it fail.

Verification

Full suite on Temurin 25.0.2: 47 tests green, including the fresh database built from V1…V9.

Review notes

  • Commits are layered: code rename, stored keys + migration, the 500 fix, docs.
  • The seeded German content values still say "Zoom-Meeting" etc. — those are tenant-owned texts, untouched by the key rename.
  • If any JUG website links the old page directly, it needs updating; the iframe embeds point at /registration/... and are unaffected.

@dasniko dasniko linked an issue Sep 21, 2026 that may be closed by this pull request
"Webinar" describes a format the JUGs do not actually run -- these are online
meetings people dial into, and the page has said "Meeting" in its own headline all
along. The name now matches on the outside too: the page lives at
/meeting/{tenant}/{eventId}, the resource is MeetingResource, the templates sit in
templates/meeting/.

The old URL is gone rather than redirected: the only places that handed it out are the
calendar entry, the bulk mail draft and the admin button, and all three now emit the
new one.

The stored keys (event_data "webinarLink", content "webinar.tools") still carry the old
name and are renamed separately, together with their migration.

testMeetingPage now uploads the link it needs instead of relying on another test having
done it -- JUnit orders methods by a hash of their names, so renaming one silently
reordered the class and left this test looking at an event with no link.

Related to #16

Signed-off-by: Niko Köbler <niko@n-k.de>
The two keys that outlive a deploy carry the old name: the per-event "webinarLink" in
event_data and the help text "webinar.tools" in content. V9 renames both rows, so no
code has to read a key under two names.

V4 and V8 keep inserting and describing the old key on purpose. Flyway checksums a
migration once it has run, and editing one makes a running instance refuse to start --
history stays as it was, the rename sits on top of it.

The enum constant, the template lookup and the admin form field move together with the
data: ContentKey is the single source of truth for the "Texte" form, and
ContentKeyTemplateTest fails in both directions if enum and template disagree.

Related to #16

Signed-off-by: Niko Köbler <niko@n-k.de>
…stored

The meeting page went up as soon as the event was in the calendar feed, but its content
is the link -- and the orga team pastes that in on the day, sometimes minutes before the
start. In that window Qute had no key to resolve for {eventData.meetingLink} and, since
it renders strictly, answered 500 on exactly the page participants were refreshing.

The handbuch has always described this case as "nicht verfügbar", which is what the page
does now. The bug had been invisible because the only test hitting the page ran after
another one that happened to upload a link.

Related to #16

Signed-off-by: Niko Köbler <niko@n-k.de>
The handbuch is what the orga teams read, so the wording there is the actual rename as
far as they are concerned: Meeting-Seite, Meeting-Link, the new URL and the renamed
help-text key. The troubleshooting entry for "nicht verfügbar" now describes what the
page really does, including the missing link.

Related to #16

Signed-off-by: Niko Köbler <niko@n-k.de>
@dasniko
dasniko force-pushed the feature/rename-webinar-to-meeting branch from c27efc5 to a5274b6 Compare September 21, 2026 20:56
@dasniko
dasniko marked this pull request as ready for review September 23, 2026 18:25
@dasniko
dasniko merged commit a7d24c8 into main Sep 23, 2026
2 checks passed
@dasniko
dasniko deleted the feature/rename-webinar-to-meeting branch September 23, 2026 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Clarifying whether Webinar Feature is used

1 participant