feat(admin): eigener Arbeitsbereich mit Dashboard, Zaehlern und Schnellsuche
- Admin ohne Shop-Kopf-/Fusszeile (HideOnAdmin); kein doppeltes <main> mehr - Seitenleiste gruppiert (Verkauf, Sortiment, Kundschaft, Seite), aktive Seite als wandernde Flaeche mit Wabe, Zaehler fuer Wartendes: bezahlte offene Bestellungen, neue Retouren, unfreigegebene Bewertungen, neue Firmenanfragen (COUNT-Abfragen erst nach Admin-/2FA-Pruefung) - Schnellsuche (Strg/Cmd+K): Seiten und haeufige Aktionen per Tastatur, tolerante Wortsuche, Ziele nur aus fester Liste - Dashboard: Begruessung nach Tageszeit (Berliner Zeit), eine Leitzahl "Umsatz heute" mit Vergleich zu gestern und Mini-Verlauf, "Zu erledigen" mit direkten Links bzw. "Alles erledigt"-Siegel, ruhigere Kennzahl-Kacheln - Diagramme nach dataviz-Skill: per Validator gepruefter Diagrammton #a0722f (>=3:1; #b88a44 erreichte nur 2,93:1), gerundete Balkenkappen, 2px Luecke, Tooltip je Balken (auch per Tastatur), Meter mit Spur im selben Ton, Rang der Top-Produkte als Wabe - Einheitliche Admin-Details zentral: groessere Ueberschriften, Tabellenkopf als Etikett, feste Ziffernbreite, eigene Auswahlpfeile Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
1 parent
15ddceaa39
commit
c95c713717
11 files changed
+762
-133
No files matched your search
@@ -1234,6 +1234,19 @@ export const de: Dictionary = {
|
||||
noVouchersYet: "Noch keine Gutscheine eingelöst.",
|
||||
usedCountLabel: (count, maxUses) => `${count}× genutzt${maxUses ? ` / ${maxUses}` : ""}`,
|
||||
viewAllOrders: "Alle Bestellungen ansehen →",
|
||||
greeting: (part, name) =>
|
||||
`${part === "morning" ? "Guten Morgen" : part === "day" ? "Hallo" : "Guten Abend"}, ${name}.`,
|
||||
todayRevenueLabel: "Umsatz heute",
|
||||
monthRevenueLabel: "Umsatz diesen Monat",
|
||||
vsYesterday: (delta, up) => `${up ? "↑" : "↓"} ${delta} gegenüber gestern`,
|
||||
toDoHeading: "Zu erledigen",
|
||||
toDoOrders: (count) => (count === 1 ? "1 Bestellung wartet auf Versand" : `${count} Bestellungen warten auf Versand`),
|
||||
toDoReturns: (count) => (count === 1 ? "1 neue Retoure" : `${count} neue Retouren`),
|
||||
toDoReviews: (count) => (count === 1 ? "1 Bewertung wartet auf Freigabe" : `${count} Bewertungen warten auf Freigabe`),
|
||||
toDoInquiries: (count) => (count === 1 ? "1 neue Firmenanfrage" : `${count} neue Firmenanfragen`),
|
||||
allDoneTitle: "Alles erledigt.",
|
||||
allDoneText: "Gerade wartet nichts auf dich. Zeit für die Bienen.",
|
||||
chartTooltip: (day, value) => `${day}: ${value}`,
|
||||
},
|
||||
adminContentPage: {
|
||||
backToDashboard: "Zurück zum Dashboard",
|
||||
@@ -1308,6 +1321,22 @@ export const de: Dictionary = {
|
||||
closeMenu: "Menü schließen",
|
||||
loggedInAs: (name) => `Angemeldet als ${name}`,
|
||||
logout: "Abmelden",
|
||||
groupSales: "Verkauf",
|
||||
groupRange: "Sortiment",
|
||||
groupCustomers: "Kundschaft",
|
||||
groupSite: "Seite",
|
||||
paletteOpen: "Schnellsuche",
|
||||
paletteShortcut: "Strg K",
|
||||
palettePlaceholder: "Wohin? Seite oder Aktion suchen …",
|
||||
paletteNoResults: "Nichts gefunden.",
|
||||
paletteSectionPages: "Seiten",
|
||||
paletteSectionActions: "Aktionen",
|
||||
actionNewProduct: "Neues Produkt anlegen",
|
||||
actionNewVoucher: "Neuen Gutschein anlegen",
|
||||
actionNewUser: "Neues Konto anlegen",
|
||||
actionNewShippingTier: "Neue Versandstufe anlegen",
|
||||
actionViewShop: "Shop ansehen",
|
||||
badgeWaiting: (count) => `${count} warten`,
|
||||
twoFactorWarning:
|
||||
"Dieses Admin-Konto hat noch keine Zwei-Faktor-Authentifizierung aktiviert, empfohlen für Konten mit Zugriff auf Bestellungen, Rückerstattungen und Kundendaten.",
|
||||
twoFactorSetupLink: "Jetzt einrichten →",
|
||||
|
||||
Reference in new issue
Block a user