Booking management dashboard with payment details #11
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Full-featured photographer dashboard at /dashboard (protected by #10 OIDC) for managing bookings and tracking payments.
Layout
Sidebar nav with four panels: Overview, Calendar, Bookings, Payments. Header shows logged-in user name and Logout button.
Overview panel (default)
Stat cards: upcoming sessions this month, pending payment count (badge alert if > 0), confirmed bookings, estimated monthly revenue. Next 5 upcoming bookings listed below.
Calendar panel
Month view with booked dates color-coded: confirmed (green), pending payment (yellow), cancelled (red). Click date opens a slide-out detail panel.
Bookings panel
Sortable filterable table: Client, Date, Type, Length, Location, Contract (signed/unsigned), Payment status, Actions. Filter by date range, booking status, payment status; search by name/email. Row expansion shows full booking detail including payment block.
Payment detail block
Shown in expanded booking rows and in Payments panel:
Payments panel
Dedicated payment list with bulk confirm checkboxes, monthly revenue summary, and CSV export.
API endpoints (all require OIDC session from #10)
Tech
src/dashboard.html as vanilla JS SPA matching the portfolio color theme. Session checked via GET /api/auth/me on load; redirects to login if 401.
Acceptance