From 6f918a9d85042b25638d0faacad60b67b9fd605d Mon Sep 17 00:00:00 2001 From: corsacca Date: Thu, 21 May 2026 06:00:54 -0500 Subject: [PATCH] Let categories have child categories for nested pages. (#6) * Let categories have child categories for nested pages. * fixes --- app/assets/styles/composition/_sidebar.scss | 19 + app/pages/[...slug].vue | 186 ++++++++-- app/pages/admin/pages/[id].vue | 50 ++- app/pages/admin/pages/categories/[id].vue | 122 ++++++- app/pages/admin/pages/categories/index.vue | 46 ++- app/pages/admin/pages/categories/new.vue | 65 +++- app/pages/admin/pages/index.vue | 35 +- .../014_nested_categories_leaf_slugs.ts | 112 ++++++ server/api/admin/categories/[id].delete.ts | 6 +- server/api/admin/categories/[id].get.ts | 24 +- server/api/admin/categories/[id].patch.ts | 4 +- .../admin/categories/[id]/page-order.patch.ts | 4 +- server/api/admin/categories/index.get.ts | 9 +- server/api/admin/categories/index.post.ts | 9 +- server/api/admin/pages/[id].delete.ts | 6 +- server/api/admin/pages/[id].get.ts | 13 +- server/api/admin/pages/[id]/publish.post.ts | 2 +- .../pages/[id]/translations/[locale].put.ts | 2 +- server/api/admin/pages/index.get.ts | 13 +- server/api/pages/[...slug].get.ts | 338 ++++++++++++++---- server/database/categories.ts | 163 ++++++--- server/database/categoryTree.ts | 155 ++++++++ server/database/pages.ts | 104 ++---- server/database/schema.ts | 1 + server/mcp/schemas.ts | 2 + server/mcp/tools/categories.ts | 11 +- server/mcp/tools/pages.ts | 18 +- server/mcp/tools/translations.ts | 6 +- server/services/cmsCategories.ts | 239 +++++++++++-- server/services/cmsPages.ts | 268 +++++++------- server/services/cmsTranslate.ts | 2 +- server/services/cmsTranslations.ts | 23 +- server/utils/cmsCache.ts | 56 ++- 33 files changed, 1612 insertions(+), 501 deletions(-) create mode 100644 migrations/014_nested_categories_leaf_slugs.ts create mode 100644 server/database/categoryTree.ts diff --git a/app/assets/styles/composition/_sidebar.scss b/app/assets/styles/composition/_sidebar.scss index d9d037bc..d409d7bc 100644 --- a/app/assets/styles/composition/_sidebar.scss +++ b/app/assets/styles/composition/_sidebar.scss @@ -34,4 +34,23 @@ .current-link { color: var(--color-brand-primary); } + + // Recursive nav (categories + pages). Each row carries its own + // depth class so we indent visually without manual nested