Add edit RSVP modal, plus-one tracking, and unified signup form

Merge RSVP + slot claim into a single form. Add plus_one field to RSVPs.
Add clickable RSVP names that open a modal to edit name/note/plus_one.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-18 23:11:11 -04:00
parent fe5cdd92a1
commit 6e3fc9721a
12 changed files with 415 additions and 186 deletions
+7 -2
View File
@@ -134,6 +134,10 @@ func main() {
pageTmpl["slots"] = template.Must(
template.New("").Funcs(funcMap).ParseFS(templateFS, "templates/slots.html"),
)
// edit-rsvp modal partial
pageTmpl["edit-rsvp"] = template.Must(
template.New("").Funcs(funcMap).ParseFS(templateFS, "templates/edit-rsvp.html"),
)
srv := NewServer(database, baseURL, features)
@@ -175,9 +179,10 @@ func main() {
// Guest event view
r.Get("/e/{slug}", srv.handleEvent)
r.Get("/e/{slug}/slots", srv.handleSlotsPartial)
r.Post("/e/{slug}/claim", srv.handleClaim)
r.Delete("/e/{slug}/claim/{claimID}", srv.handleUnclaim)
r.Post("/e/{slug}/rsvp", srv.handleRsvp)
r.Delete("/e/{slug}/claim/{claimID}", srv.handleUnclaim)
r.Get("/e/{slug}/rsvp/{rsvpID}/edit", srv.handleEditRsvpForm)
r.Put("/e/{slug}/rsvp/{rsvpID}", srv.handleUpdateRsvp)
r.Delete("/e/{slug}/rsvp/{rsvpID}", srv.handleUnrsvp)
// OG image