feat: redesign CMS and unify German admin UI

This commit is contained in:
2026-09-17 16:51:24 +02:00
parent a2b3e99174
commit 7ec0c51ff5
129 changed files with 952 additions and 550 deletions
+4 -4
View File
@@ -3,7 +3,7 @@ import { isAdmin } from "@/access";
function normalizePath(value: string): string {
// Lowercased to match the slugs it points at/from (fields/slug.ts always
// lowercases via slugify) — without this, "/Angebote/Doula" and
// lowercases via slugify) - without this, "/Angebote/Doula" and
// "/angebote/doula" count as different values to the `unique` constraint
// on fromPath, letting near-duplicate redirects coexist.
const trimmed = value.trim().toLowerCase();
@@ -14,7 +14,7 @@ function normalizePath(value: string): string {
/**
* Simple slug-change redirect table (see lib/seo/redirects.ts). Deliberately
* scoped to the three dynamic [slug] detail routes (Angebote/Termine/
* Aktuelles) — that's the only place slugs actually live and can change, so
* Aktuelles) - that's the only place slugs actually live and can change, so
* looking this up only there avoids adding a database lookup to every
* single request the way a catch-all middleware would.
*/
@@ -66,8 +66,8 @@ export const Redirects: CollectionConfig = {
required: true,
defaultValue: "permanent",
options: [
{ label: "301 – Dauerhaft", value: "permanent" },
{ label: "302 – Vorübergehend", value: "temporary" },
{ label: "301 - Dauerhaft", value: "permanent" },
{ label: "302 - Vorübergehend", value: "temporary" },
],
},
{