Mobile layout: event selector, editor toolbars, Eventor keys in Settings - #32
Merged
Merged
Conversation
The Eventor API key is a club-wide credential, but it was entered from the selector's import panel on publicProcedure mutations, so any invited user could replace or clear it. validateKey / setKey / clearKey are now adminProcedure and live on a new admin-only Settings → Eventor tab (EventorKeysPanel, one card per environment). keyStatus / getKey become authedProcedure so the import panel and the registration dialog can still tell whether a key exists. With no key, the import panel links admins to the tab and tells members to ask an admin. Selector layout: - user chip + language switcher move from the header to the footer - "Select an event to manage" tagline is desktop-only - search gets its own row on phones; the type <select> gets min-w-0 so it can no longer run off the right edge - creator attribution collapses to the bare name below sm - the per-row delete icon is hover-revealed only under (hover: hover), so touch devices always see it - new "My events" toggle, backed by EventInfo.ownedByMe (direct Event admin grant for the caller; false with auth off) Co-authored-by: Cursor <cursoragent@cursor.com>
Course editor / map toolbar: every toggle (Hide other controls, Auto slits, Descriptions, Show progress) is now a ToolbarButton — icon plus a label that is visible from `sm` up and collapses to the icon below it, with the label kept as aria-label/title. Undo and redo become 20px icons with touch-sized padding instead of 12px ⟲/⟳ glyphs. At 390px the row used to overflow and paint "Auto slits" over "Descriptions". The per-event "North lines under course purple" checkbox is removed from the editor's map footer. It is a base-map property and stays on the club-library map card; ISOM 2017 App. 1 puts blue/black 100 % lines above lower purple, so "below" is a deliberate deviation, not the spec. Template / map layout editor header: two rows on phones (title + window controls, then tools) and one row from `sm`, via `sm:contents` wrappers. The "Preview course" caption is dropped (name stays on the select). Controls page: the AIR+ / station-mode row wraps instead of widening the page. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two commits of phone-layout work plus one permission fix.
1. Event selector + Eventor keys → Settings (
8d63c9a)Permission fix. The Eventor API key is a club-wide credential but was entered from the selector's import panel on
publicProceduremutations, so any invited user could replace or clear it.eventor.validateKey/setKey/clearKey→adminProcedure;keyStatus/getKey→authedProcedure.EventorKeysPanel, one card per environment).Selector layout.
<select>getsmin-w-0so it stops running off the right edge.sm.(hover: hover)→ always visible on touch devices.EventInfo.ownedByMe(direct Event admin grant for the caller).2. Editor, template and controls toolbars (
15ebc59)ToolbarButton: icon + label, label visible fromsm, icon-only below; label kept asaria-label/title. Applied to Hide other controls, Auto slits, Descriptions, Show progress. Fixes "Auto slits" overlapping "Descriptions" at 390px.docs/map-color-stack.md).sm(sm:contentswrappers); "Preview course" caption dropped (name stays on the select).Tests
filterEventsonlyMine.ownedByMeper role;FORBIDDEN/UNAUTHORIZEDon Eventor key mutations.Verification
pnpm buildclean ·pnpm test1750 passed · integration 337 passed · full sharded E2E 4/4 PASS (280 passed, 2 pre-existing skips) · Docker rebuilt.Docs
features.md,authentication.md,club-library.md,e2e-eventor-stub.md,bugfix-eventor-key-wiped-by-e2e.md,mobile-layout.md,map-color-stack.md.