refactor: Liefergebiet bekommt einen eigenen Abschnitt "Versand"

Die Einstellung lag unter "Firmendaten" — zwischen Firmenname, Slogan und
Anschrift. Dort sucht sie niemand: eine Versandregel ist keine
Stammdatenangabe. Genau das ist beim ersten Suchen auch passiert.

Jetzt ein eigener Abschnitt "Versand" (englisch "Shipping") unter
Admin → Inhalte → Texte, direkt hinter den Firmendaten. Der
Feldtyp-Vertrag der Registry bekommt dafuer die Gruppe "shipping".

Rein organisatorisch — Schluessel, Wert und Verhalten bleiben gleich, ein
bereits gepflegter Wert wandert einfach mit.

tsc: 0 Fehler. vitest: 359/359 gruen. eslint: 0 Warnungen.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Opus 5 committed 2026-09-20 02:16:06 +02:00
1 parent 1bdf4df04a
commit 7f9ed7262f
5 files changed
+6 -2

No files matched your search

+1
View File
@@ -205,6 +205,7 @@ export default async function AdminInhaltePage(props: PageProps<"/admin/inhalte"
const groups: { key: ContentFieldDef["group"]; heading: string }[] = [ const groups: { key: ContentFieldDef["group"]; heading: string }[] = [
{ key: "company", heading: t.adminContentPage.groupCompany }, { key: "company", heading: t.adminContentPage.groupCompany },
{ key: "shipping", heading: t.adminContentPage.groupShipping },
{ key: "home", heading: t.adminContentPage.groupHome }, { key: "home", heading: t.adminContentPage.groupHome },
{ key: "pages", heading: t.adminContentPage.groupPages }, { key: "pages", heading: t.adminContentPage.groupPages },
{ key: "social", heading: t.adminContentPage.groupSocial }, { key: "social", heading: t.adminContentPage.groupSocial },
+1
View File
@@ -1164,6 +1164,7 @@ export const de: Dictionary = {
sectionText: "Texte", sectionText: "Texte",
sectionTextIntro: "Alle Textinhalte, sortiert nach Bereich.", sectionTextIntro: "Alle Textinhalte, sortiert nach Bereich.",
groupCompany: "Firmendaten", groupCompany: "Firmendaten",
groupShipping: "Versand",
groupHome: "Homepage", groupHome: "Homepage",
groupPages: "Weitere Seiten", groupPages: "Weitere Seiten",
groupLegal: "Rechtstexte", groupLegal: "Rechtstexte",
+1
View File
@@ -1163,6 +1163,7 @@ export const en: Dictionary = {
sectionText: "Text", sectionText: "Text",
sectionTextIntro: "Every text field, grouped by section.", sectionTextIntro: "Every text field, grouped by section.",
groupCompany: "Company details", groupCompany: "Company details",
groupShipping: "Shipping",
groupHome: "Homepage", groupHome: "Homepage",
groupPages: "Other pages", groupPages: "Other pages",
groupLegal: "Legal pages", groupLegal: "Legal pages",
+1
View File
@@ -856,6 +856,7 @@ export interface Dictionary {
sectionText: string; sectionText: string;
sectionTextIntro: string; sectionTextIntro: string;
groupCompany: string; groupCompany: string;
groupShipping: string;
groupHome: string; groupHome: string;
groupPages: string; groupPages: string;
groupLegal: string; groupLegal: string;
+2 -2
View File
@@ -18,7 +18,7 @@ export type ContentFieldType =
export interface ContentFieldDef { export interface ContentFieldDef {
key: string; key: string;
group: "company" | "home" | "pages" | "legal" | "social"; group: "company" | "shipping" | "home" | "pages" | "legal" | "social";
labelDe: string; labelDe: string;
labelEn: string; labelEn: string;
type: ContentFieldType; type: ContentFieldType;
@@ -73,7 +73,7 @@ export const CONTENT_REGISTRY: ContentFieldDef[] = [
// Auswahl und kein Freitext — siehe "options" oben. // Auswahl und kein Freitext — siehe "options" oben.
{ {
key: "shipping.region", key: "shipping.region",
group: "company", group: "shipping",
labelDe: "Liefergebiet", labelDe: "Liefergebiet",
labelEn: "Shipping region", labelEn: "Shipping region",
type: "select", type: "select",