Admin-driven front page with event calendar #7

Merged
ngu-git-admin merged 3 commits from feature/alt-front-page into main 2026-09-25 12:42:34 +01:00

Rebuilds the home page as an admin-driven front page, configured from a new Front page tab in the admin.

Front page

  • Migration 017 adds the front page config, served by GET /api/front-page.
  • Hero: brand, photos (crossfading slideshow with progress and pause) or livestream (YouTube/Facebook/Vimeo embed with a LIVE badge), switched by hand. The brand hero now has the NGU dove at the centre of its rings.
  • Bands the admin can reorder, retitle or hide: next-event countdown (series-aware), National Retreats carousel, numbers band (typed in or counted from the database), featured timeline rail, "Find your way in" pathfinder, and an event calendar.

Event calendar

  • Reusable EventCalendar: month grid or list, lane-packed multi-day bars, series events on every meeting, click a day to see its events, list view on phones.
  • Filters for scope, type, online only and search; a page can pin section, host or type through props, which hides that control.
  • Migration 019 allows a calendar band and slots it in after the retreats carousel.

Engine / data

  • CRUD engine gains a singleton flag: one row made by its migration, create and delete refused, list opens the row directly.
  • shapeSeries moves to shape.js so /front-page can share it.
  • useEvents drops its empty fallback so failed requests surface as errors, and returns scopes alongside events.

Deploy notes

Migrations 017–019 run at boot.

🤖 Generated with Claude Code

Rebuilds the home page as an admin-driven front page, configured from a new **Front page** tab in the admin. ## Front page - Migration 017 adds the front page config, served by `GET /api/front-page`. - Hero: brand, photos (crossfading slideshow with progress and pause) or livestream (YouTube/Facebook/Vimeo embed with a LIVE badge), switched by hand. The brand hero now has the NGU dove at the centre of its rings. - Bands the admin can reorder, retitle or hide: next-event countdown (series-aware), National Retreats carousel, numbers band (typed in or counted from the database), featured timeline rail, "Find your way in" pathfinder, and an event calendar. ## Event calendar - Reusable `EventCalendar`: month grid or list, lane-packed multi-day bars, series events on every meeting, click a day to see its events, list view on phones. - Filters for scope, type, online only and search; a page can pin section, host or type through props, which hides that control. - Migration 019 allows a `calendar` band and slots it in after the retreats carousel. ## Engine / data - CRUD engine gains a `singleton` flag: one row made by its migration, create and delete refused, list opens the row directly. - `shapeSeries` moves to `shape.js` so `/front-page` can share it. - `useEvents` drops its empty fallback so failed requests surface as errors, and returns scopes alongside events. ## Deploy notes Migrations 017–019 run at boot. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ngu-git-admin added 3 commits 2026-09-25 12:41:01 +01:00
The home page is rebuilt from scratch and configured from a new
Front page tab in the admin, backed by migration 017 and served by
GET /api/front-page.

Hero: brand, photos (crossfading slideshow with progress and pause)
or livestream (YouTube/Facebook/Vimeo embed with a LIVE badge),
switched by hand. After it, bands the admin can reorder, retitle or
hide: a countdown to the next event (series-aware), the National
Retreats carousel, a numbers band (typed in or counted from the
database), a horizontal rail of featured timeline entries, and a
"Find your way in" pathfinder replacing the old connect section.

The CRUD engine gains a `singleton` flag: the entity has one row,
made by its migration, and create and delete are refused. The list
screen opens that row and the editor drops the slug, back link and
delete. shapeSeries moves to shape.js so /front-page can share it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
DoveMark carries the dove path from the original home page as its
own component. The hero draws it at the rings' centre, upright while
they turn, with a soft glow and a gentle bob that stops under reduced
motion. The rings' opacity moves from the SVG to their own group so
the dove isn't dimmed with them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
EventCalendar shows events on a month grid or as a list of the
month. Multi-day events are lane-packed bars that break at week
edges, series events appear on every meeting with their time, and
clicking a day lists everything on it. Phones get the list. Visitors
can narrow by scope, type, online only and search, all starting at
"all"; a page can pin section, host or type through props, which
hides that control.

Migration 019 rebuilds front_page_sections to allow a 'calendar'
band and slots it in after the retreats carousel, so it can be
reordered, retitled or hidden from the Front page editor.

useEvents drops its empty fallback so a failed request surfaces as
an error rather than an empty list, and returns the scope list
alongside the events for the calendar's scope filter.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ngu-git-admin merged commit 4618ad8e67 into main 2026-09-25 12:42:34 +01:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: ngu-git-admin/NGU-Web#7
No description provided.