a gallery is a carousel

It always rendered as one — data-carousel, a snap track, two arrows, driven by
carousel.client.js. The entity was the last thing still calling it something
else, and that collided with the site's own Gallery section: two nav rows
reading Gallery and Galleries, meaning a list of objects and a list of
photograph sets.

GalleriesPanel, GalleryPicker and GalleryItems become Carousels*, the endpoint
becomes /fofos-admin/carousels, the block kind becomes carousel and
subject-gallery becomes subject-carousel. The publish allowlist follows the
renamed tables.

What did NOT move: GALLERY_CONFIG at /fofos-admin/gallery, subjects.ts's
base '/gallery', and home_gallery_media. Those are the Gallery section and the
legacy rows, and both are correct.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-04 18:01:15 +01:00
co-authored by Claude Opus 5
parent 5e5c06e76e
commit 15042ccc76
19 changed files with 148 additions and 148 deletions
+12 -12
View File
@@ -1,5 +1,5 @@
import type { LucideIcon } from 'lucide-react';
import { Boxes, Cog, Files, FolderOpen, Images, Mail, PanelsTopLeft, Shapes } from 'lucide-react';
import { Boxes, Cog, Files, FolderOpen, GalleryHorizontal, Images, Mail, PanelsTopLeft, Shapes } from 'lucide-react';
/**
* The sections of the fofos admin, in nav order.
@@ -40,7 +40,7 @@ export type SectionKey =
| 'administration'
| 'collections'
| 'pieces'
| 'galleries'
| 'carousels'
| 'media'
| 'messages'
| 'layout'
@@ -120,7 +120,7 @@ export const SECTIONS: Section[] = [
},
{
/*
Galleries — an entity of their own, not a list hanging off a page.
Carousels — an entity of their own, not a list hanging off a page.
Above Media and pinned with it, because the two are the same kind of thing: the raw material the
site is built from, held on this machine. Media is the files; a gallery is a set of them somebody
@@ -140,7 +140,7 @@ export const SECTIONS: Section[] = [
path: '/fofos-admin/collections',
built: true,
/*
Same reason as Galleries: a collection is a ROW read through the site's admin API, so this is
Same reason as Carousels: a collection is a ROW read through the site's admin API, so this is
useless without the development server answering. What is different is that the row is only half
of it — which collections EXIST is a question about `originals/COLLECTIONS/`, and the folders are
registered as this list is read.
@@ -153,9 +153,9 @@ export const SECTIONS: Section[] = [
The Gallery's pieces.
Called Pieces, not Gallery. The section on the site is Gallery and its items are peças, and there
is already a `galleries` section here meaning something else entirely — a named set of media. Two
nav rows called Gallery and Galleries, meaning a list of objects and a list of photograph sets,
is a question somebody would have to answer every time they looked at it.
is a Carousels section here meaning something else entirely — a named, ordered set of media. The
two were called Gallery and Galleries once, meaning a list of objects and a list of photograph
sets, and that is what the rename to Carousels was for.
Below Collections because it is the same object one level flatter, and it shares its panel — see
sections/subjects.ts.
@@ -172,12 +172,12 @@ export const SECTIONS: Section[] = [
pinned: true,
},
{
key: 'galleries',
label: 'Galleries',
icon: Images,
key: 'carousels',
label: 'Carousels',
icon: GalleryHorizontal,
hint: 'Named sets of media, reusable across the site',
// `/fofos-admin/galleries` — it reads the site's own admin API, unlike Media beside it.
path: '/fofos-admin/galleries',
// `/fofos-admin/carousels` — it reads the site's own admin API, unlike Media beside it.
path: '/fofos-admin/carousels',
built: true,
requires: 'connection',
pinned: true,