Back to Blog
3 min read

A Manage-Event Cockpit and a Tabbed Event Editor

The Manage-Event Cockpit

I added a Manage-event cockpit with live status and guided actions (2dfa741c), then a branded state control driven by status enums (89eea441) with a state-control tray (44cfe979). The cockpit is the idea that an event has a state and the UI should present exactly the actions valid for that state. Driving it from enums means the UI can’t drift from the server’s model of what’s allowed.

I kept Manage show/edit from crashing on an unknown pay status (c6a8d658) and kept the current Cancelled clickable while applying the chosen status on no-venue (f77bb037). Defensive handling on unknown state matters because real data always contains values the enum forgot.

Tabbed Editing

I added a tabbed Save/Cancel editor for existing events (05be0e84) and tabbed event editing with multi-section internal notes (0b94ca5d). Long forms benefit from tabs when the sections are genuinely distinct; the task is making sure Save and Cancel behave consistently across tabs.

Event Wizard and Calendar

I removed competing “Step N of 5” text from the wizard panels (46c3df02), added a calendar refresh listener for special-day CRUD (294db669), and fixed the root calendar reloading when a special date changes (269ce668, 8e84c9fd). I painted special days on the mobile calendar week grid (f5aa0f46) and truncated long calendar event titles.

Pay Status and Titles

I made pay status prefer the column and stopped writing title prefixes (cb8bbc51), and kept a set pay status when only the title changes (db25c4dd). This is a migration away from encoding state in the title string toward a real column—cleaning up a legacy pattern while preserving existing data.

Honest Lead Termination

I added a Close-lead action to the lead detail page (26085733), closed a lead with a reason and restored related events (e8e75fd7), made the copy and restore toasts tell the truth (2525a634), and enforced a single-event lead cancellation boundary (bd208c2b). Closing a lead has side effects on events, and those need to be reversible and accurately described.

And More

I showed the profile photo in the Staff topbar with an initial fallback (4aed4ed6), fixed invoice totals color filter normalization (9c0a8dc3), added a Late flag to staff check-in (436300ff), and added an event policy graphic with an interactive acknowledgment flow (5f0c98ff).

State Machines Make Good UI

The cockpit is the clearest expression of a principle: model the states, derive the actions, and the interface becomes self-explanatory. Most of today’s bugs came from places where state was implicit rather than modeled.

Newer post

Enforcing Cancelled-Pay Restrictions Across the Staff Stack

Older post

A Venue Integration Program and a Static Deploy for This Site