Skip to content

feat(web): admin maintenance tickets dashboard#48

Merged
ankitsejwal merged 1 commit into
mainfrom
feat/tickets-web
Jul 2, 2026
Merged

feat(web): admin maintenance tickets dashboard#48
ankitsejwal merged 1 commit into
mainfrom
feat/tickets-web

Conversation

@ankitsejwal

Copy link
Copy Markdown
Member

Slice 2 of the maintenance-tickets vertical (builds on the API in #47). Admin web UI.

What

  • New /admin/tickets page + Tickets nav item (Wrench icon).
  • Raise ticket form (apartment, title, description, category, priority).
  • Status filter (server-side ?status=).
  • Lifecycle actions rendered from the shared availableTicketActions(status) — an OPEN ticket offers Start/Cancel, IN_PROGRESS offers Resolve/Cancel, RESOLVED offers Close/Reopen, terminal states offer none. Clients and server share one state machine, so the buttons can't drift from what the API allows.
  • api client: listTickets, createTicket, transitionTicket, assignTicket.

Verified E2E (Chrome DevTools, live Neon)

  • Page lists existing tickets with correct category/priority/status badges.
  • Raised "Broken elevator" → appears as OPEN with Start/Cancel.
  • Clicked Start → row flipped to IN_PROGRESS, actions became Resolve/Cancel.
  • Filter = IN_PROGRESS → only the in-progress ticket shown; CLOSED ticket shows no actions.
  • Console clean; gate + SSR build green.

Follow-up (#40): assignment UI (API PATCH /:id/assign already exists + verified).

New /admin/tickets page: raise a ticket, filter by status, and drive the
lifecycle with state-machine-aware action buttons (Start/Resolve/Close/
Reopen/Cancel shown only when valid). Adds ticket methods to the api client
and a Tickets nav item.
@ankitsejwal ankitsejwal merged commit ad21726 into main Jul 2, 2026
1 check passed
@ankitsejwal ankitsejwal deleted the feat/tickets-web branch July 2, 2026 22:36
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.

1 participant