diff --git a/src/app/admin/bestellungen/[id]/page.tsx b/src/app/admin/bestellungen/[id]/page.tsx index 9b81033..d344d3c 100644 --- a/src/app/admin/bestellungen/[id]/page.tsx +++ b/src/app/admin/bestellungen/[id]/page.tsx @@ -14,6 +14,7 @@ import { checkOrderDeletable } from "@/lib/order-delete"; import { getLocale } from "@/i18n/locale"; import { getDictionary } from "@/i18n/get-dictionary"; import { isDhlConfigured } from "@/lib/dhl"; +import { OrderStatusBadge, OrderStatusTimeline } from "@/components/account-ui"; export default async function AdminOrderDetailPage(props: PageProps<"/admin/bestellungen/[id]">) { const t = getDictionary(await getLocale()); @@ -43,13 +44,16 @@ export default async function AdminOrderDetailPage(props: PageProps<"/admin/best }).deletable; return ( -
+
-

{order.orderNumber}

+
+

{order.orderNumber}

+ +

{formatDate(order.createdAt)}

@@ -71,6 +75,25 @@ export default async function AdminOrderDetailPage(props: PageProps<"/admin/best
+ {/* Wo steht die Bestellung? Dieselbe Waben-Zeitleiste wie im Kundenkonto. */} +
+ +
+ {order.giftMessage ? (

{t.adminOrderDetailPage.giftHeading}

diff --git a/src/app/admin/produkte/[id]/page.tsx b/src/app/admin/produkte/[id]/page.tsx index 8b14133..083afd1 100644 --- a/src/app/admin/produkte/[id]/page.tsx +++ b/src/app/admin/produkte/[id]/page.tsx @@ -1,4 +1,5 @@ import { notFound } from "next/navigation"; +import { Button } from "@/components/ui"; import { prisma } from "@/lib/prisma"; import { asStringArray } from "@/lib/json-array"; import { BackLink } from "@/components/back-link"; @@ -22,7 +23,7 @@ export default async function AdminProductEditPage(props: PageProps<"/admin/prod }; return ( -
+

{t.adminProductEditPage.title}

@@ -35,8 +36,10 @@ export default async function AdminProductEditPage(props: PageProps<"/admin/prod ) : null}

-
+ +
+ {t.adminProductEditPage.sectionText}
{product.category === "HONIG" ? ( - <> +
+ {t.adminProductEditPage.sectionTaste}
- + ) : null} +
+ {t.adminProductEditPage.sectionPriceStock}

{t.adminProductEditPage.vatRateHint}

+
- +
+ {t.adminProductEditPage.sectionVisibility} + {/* Schalter statt kleiner Checkbox — dasselbe Formularfeld + (name="isActive"), nur als Umschalter dargestellt. */} + +
- + {/* Speicherleiste bleibt beim Scrollen am unteren Rand — der Knopf + ist bei langen Formularen immer erreichbar. */} +
+ +
); diff --git a/src/app/globals.css b/src/app/globals.css index ac0d8c2..54b5eb8 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -354,3 +354,18 @@ textarea::placeholder { .admin-content textarea:hover { border-color: color-mix(in oklab, var(--color-ink) 40%, transparent); } + +/* Kartentitel im Admin: bisher winzige, blasse Versal-Etiketten + (text-xs tracking-wide-caps) als Ueberschrift jeder Karte. Als ruhige + Serifentitel lassen sich Abschnitte beim Ueberfliegen finden. Farbige + Titel (z.B. rote Gefahrenzone, Honig-Geschenkhinweis) behalten ihre Farbe. */ +.admin-content h2.tracking-wide-caps { + font-family: var(--font-serif); + font-size: 1.25rem; + line-height: 1.3; + letter-spacing: 0; + text-transform: none; +} +.admin-content h2.tracking-wide-caps.text-ink\/65 { + color: var(--color-forest); +} diff --git a/src/i18n/dictionaries/de.ts b/src/i18n/dictionaries/de.ts index c7472c1..d16af4d 100644 --- a/src/i18n/dictionaries/de.ts +++ b/src/i18n/dictionaries/de.ts @@ -1063,6 +1063,10 @@ export const de: Dictionary = { "Leer lassen: es gilt der Satz der Kategorie (Honig 7 %, Kerzen 19 %). Nur ausfüllen, wenn dieses Produkt davon abweicht. 0 bedeutet steuerfrei nach § 19 UStG.", imagesLabel: "Produktbilder", visibleInShop: "Im Shop sichtbar", + sectionText: "Text und Bilder", + sectionTaste: "Geschmack", + sectionPriceStock: "Preis und Bestand", + sectionVisibility: "Sichtbarkeit", save: "Speichern", }, adminProductNewPage: { diff --git a/src/i18n/dictionaries/en.ts b/src/i18n/dictionaries/en.ts index a400e53..d48c7ac 100644 --- a/src/i18n/dictionaries/en.ts +++ b/src/i18n/dictionaries/en.ts @@ -1049,6 +1049,10 @@ export const en: Dictionary = { "Leave empty to use the category rate (honey 7%, candles 19%). Fill in only if this product differs. 0 means exempt under § 19 German VAT Act.", imagesLabel: "Product images", visibleInShop: "Visible in shop", + sectionText: "Text and images", + sectionTaste: "Taste", + sectionPriceStock: "Price and stock", + sectionVisibility: "Visibility", save: "Save", }, adminProductNewPage: { diff --git a/src/i18n/dictionary-type.ts b/src/i18n/dictionary-type.ts index 52ea003..710d075 100644 --- a/src/i18n/dictionary-type.ts +++ b/src/i18n/dictionary-type.ts @@ -732,6 +732,10 @@ export interface Dictionary { vatRateHint: string; imagesLabel: string; visibleInShop: string; + sectionText: string; + sectionTaste: string; + sectionPriceStock: string; + sectionVisibility: string; save: string; }; adminProductNewPage: {