M4 Calendar: reminders form, invitations, short publish links, settings UX
Calendar settings (Settings > Calendars):
- Reminders are now {method, minutes}: Add-reminder opens a boxed form with a
method dropdown (Show an alert / Email me) + time dropdown, bell icons.
Backend normalizes the legacy list[int] transparently.
- New Invitations section (auto-add emailed events): policy radios, "Add new
events from" (My contacts / Anyone), "Add to calendar", mark-read+file toggle.
Persisted to user settings (inbound iMIP processing still deferred).
- Time zone options show GMT codes, e.g. "Central European Summer Time (GMT+2)".
- Default calendar now defaults to "Personal" instead of a generic placeholder.
- Colour picker is a circular-swatch-only dropdown (sized so swatches don't overlap).
- Delete calendar / remove subscription now confirm via a modal.
- Create form: dropped the breadcrumb; heading stays "Create calendar" even after
a Publish toggle auto-creates the calendar.
Publish links: replaced the 244-char vault-sealed token with a 16-char random
slug (secrets.token_urlsafe). New sdk.public_session() (privileged, non-RLS) lets
the public /public/{token} feed resolve the slug directly with explicit filters.
Settings shell: "<- Mail" is now a context-aware "<- Back" via ?from=; Calendar
opens Settings with from=/p/calendar so Back returns to the calendar.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U72FZiF1W1pb8XxyWBTREA
This commit is contained in:
@@ -38,6 +38,7 @@ export const en = {
|
||||
"auth.register": "Register",
|
||||
|
||||
"nav.mail": "Mail",
|
||||
"nav.back": "Back",
|
||||
"nav.settings": "Settings",
|
||||
"nav.compose": "Compose",
|
||||
"nav.collapseSidebar": "Collapse sidebar",
|
||||
@@ -254,6 +255,23 @@ export const en = {
|
||||
"settings.subscribed": "Subscribed",
|
||||
"settings.comingSoon": "Coming soon",
|
||||
"settings.subscribeError": "Couldn't subscribe to that URL.",
|
||||
"settings.removeSubscription": "Remove subscription",
|
||||
"settings.removeSubscriptionConfirm": "Stop syncing “{name}” and remove its events?",
|
||||
"settings.deleteCalendar": "Delete calendar",
|
||||
"settings.thisCalendar": "this calendar",
|
||||
"settings.deleteCalendarConfirm": "Delete “{name}” and all of its events? This can't be undone.",
|
||||
"settings.showAlert": "Show an alert",
|
||||
"settings.emailMe": "Email me",
|
||||
"settings.invitations": "Invitations",
|
||||
"settings.inviteWhen": "When I receive events by email",
|
||||
"settings.inviteAddUpdate": "Add new events to my calendar and update events that have changed",
|
||||
"settings.inviteUpdateOnly": "Only update events that I have already added to my calendar",
|
||||
"settings.inviteNone": "Do not automatically update my calendar",
|
||||
"settings.addNewFrom": "Add new events from",
|
||||
"settings.myContacts": "My contacts",
|
||||
"settings.anyone": "Anyone",
|
||||
"settings.addToCalendar": "Add to calendar",
|
||||
"settings.alsoFile": "Also mark the message as read and file it",
|
||||
"settings.integrations": "Integrations",
|
||||
"settings.jitsi": "Jitsi Meet",
|
||||
"settings.jitsiHint":
|
||||
|
||||
Reference in New Issue
Block a user