Skip to content

feat(admin): open dashboard/shows/calendar to hosts, merge Shows pages#179

Merged
anneoneone merged 5 commits into
mainfrom
feat/role-dashboard-shows-merge
Jun 1, 2026
Merged

feat(admin): open dashboard/shows/calendar to hosts, merge Shows pages#179
anneoneone merged 5 commits into
mainfrom
feat/role-dashboard-shows-merge

Conversation

@anneoneone
Copy link
Copy Markdown
Collaborator

What & why

Reworks admin access so the Dashboard, Shows and Calendar are usable by hosts (everyone except guests), merges the two shows experiences into one page, and moves the Telegram-bot toggle into an admin-only Config area.

Changes

  • Config page (new, admin-only /config) — the "🤖 Moafunkbot" Telegram-notifications toggle moves here off the Dashboard.
  • Dashboard — opened to hosts and made the post-login landing page for all non-guests. Non-admins load the open /api/shows-overview instead of the admin-only /api/shows (no backend changes / no privilege escalation).
  • Merged Shows page (/shows) — a My Shows section (own assignments + "Prepare to stream" / "Go on air") plus an All Shows section (Upcoming/All/Past filters + create). The separate "My Show" nav item is removed and /stream/select redirects to /shows. FlowShowSelect.vue deleted.
  • Calendar — opened to hosts (role-aware data source).
  • Guests land on the detail page of their assigned show (then into the stream flow) and are blocked from Dashboard/Shows/Calendar.
  • Shared ScheduleItem typeShowList/MonthCalendar now accept data from either /api/shows or /api/shows-overview.

Scope

Frontend only. No backend/auth changes; hosts & guests see the schedule read-only via the overview endpoint. The /stream/* broadcast steps are unchanged.

Verification

  • npm run lint ✓, npm run build ✓ (all SFCs compile), npm test ✓ (22 passing).
  • Manual per-role (dev): admin → dashboard w/o Moafunkbot card, /config toggle persists; host → dashboard + merged /shows with prep actions, no /config; guest → assigned show detail, blocked elsewhere.

🤖 Generated with Claude Code

- Move the Telegram-bot (Moafunkbot) notifications toggle off the Dashboard
  into a new admin-only /config page.
- Open Dashboard, Shows and Calendar to hosts (everyone except guests) and
  make the Dashboard the post-login landing page for them. Non-admins read
  the open /api/shows-overview instead of the admin-only /api/shows, so no
  backend role changes are needed.
- Merge the admin Shows page and the host 'My Shows' flow-select into one
  /shows page: a 'My Shows' section with streaming-prep actions plus an
  'All Shows' section with Upcoming/All/Past filters and create. Remove the
  separate 'My Show' nav item; /stream/select redirects to /shows.
- Guests land on the detail page of their assigned show (then into the
  stream flow); they cannot reach Dashboard/Shows/Calendar.
- Widen ShowList/MonthCalendar to a shared ScheduleItem type so they render
  data from either /api/shows or /api/shows-overview.
…s 50/50

Stream becomes a full-width banner tinted green (live) or red (off air); the Month calendar and Upcoming Shows now sit side-by-side at 50% each.
Include host_username in the GET /api/shows and /api/my-shows responses (mirroring /api/shows-overview), expose it on the ScheduleItem type, and render a 'Host: <name>' line on the show list cards whenever a host is assigned.
The external/brunchtime detail header reused the global .page-header flex row, which pushed the title block to the right. Stack it into a column so Back sits on top and the eyebrow/title row spans full width (Edit stays right).
The Radio category now renders its items inline (always visible, side by side) instead of behind a hover dropdown; UNHEARD and Configuration stay collapsible.
@anneoneone anneoneone merged commit 1e8bf08 into main Jun 1, 2026
2 checks passed
@anneoneone anneoneone deleted the feat/role-dashboard-shows-merge branch June 1, 2026 15:24
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