Improve CMS media uploads and admin styling

This commit is contained in:
2026-09-18 00:40:20 +02:00
parent 1970be29e7
commit caa24905ec
7 changed files with 214 additions and 23 deletions
+10 -10
View File
@@ -199,7 +199,7 @@ export interface User {
name: string;
role: 'admin';
/**
* Steuert, ob dieser Zugang das Analytics-Dashboard im Admin-Bereich sehen kann.
* Steuert, ob dieser Zugang die Auswertung im Admin-Bereich sehen kann.
*/
canViewAnalytics?: boolean | null;
calendarFeedTokenHash?: string | null;
@@ -261,7 +261,7 @@ export interface Customer {
collection: 'customers';
}
/**
* Bilder für die Website - Alt-Text ist für Barrierefreiheit und SEO Pflicht.
* Bilder für die Website. Alt-Text und Bildbeschreibung können später ergänzt werden.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "media".
@@ -269,9 +269,9 @@ export interface Customer {
export interface Media {
id: number;
/**
* Kurze Beschreibung des Bildes für Screenreader und Suchmaschinen.
* Optional. Kann später für Barrierefreiheit und SEO ergänzt werden.
*/
alt: string;
alt?: string | null;
/**
* Optionale, längere Beschreibung (z. B. für eine Bildunterschrift).
*/
@@ -652,7 +652,7 @@ export interface Conversation {
createdAt: string;
}
/**
* Einzelne Nachrichten innerhalb einer Anfrage. Antworten aus dem CMS werden automatisch per E-Mail verschickt.
* Einzelne Nachrichten innerhalb einer Anfrage. Antworten aus der Verwaltung werden automatisch per E-Mail verschickt.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "conversation-messages".
@@ -661,7 +661,7 @@ export interface ConversationMessage {
id: number;
conversation: number | Conversation;
/**
* Für Antworten im CMS „Anouma“ auswählen. Eingehende E-Mails werden automatisch als Anfragende Person gespeichert.
* Für Antworten aus der Verwaltung „Anouma“ auswählen. Eingehende E-Mails werden automatisch als anfragende Person gespeichert.
*/
senderType: 'visitor' | 'admin';
senderName?: string | null;
@@ -1624,7 +1624,7 @@ export interface SeoSetting {
*/
defaultDescription?: string | null;
/**
* Wird verwendet, wenn eine Seite kein eigenes Open-Graph-Bild hat.
* Wird verwendet, wenn eine Seite kein eigenes Bild für soziale Netzwerke hat.
*/
defaultOgImage?: (number | null) | Media;
/**
@@ -1690,7 +1690,7 @@ export interface CookieSetting {
label: string;
description: string;
/**
* Globaler Schalter für das gesamte Analytics-System. Wenn deaktiviert, wird diese Kategorie im Banner nicht mehr angeboten und Analytics-Daten werden serverseitig abgelehnt - auch bei einer noch gespeicherten alten Zustimmung.
* Globaler Schalter für die gesamte Reichweitenmessung. Wenn deaktiviert, wird diese Kategorie im Banner nicht mehr angeboten und Messdaten werden serverseitig abgelehnt - auch bei einer noch gespeicherten alten Zustimmung.
*/
enabled?: boolean | null;
};
@@ -1698,7 +1698,7 @@ export interface CookieSetting {
createdAt?: string | null;
}
/**
* Aufbewahrungsdauer für Analytics-Rohdaten und aggregierte Tagesstatistiken.
* Aufbewahrungsdauer für Rohdaten und zusammengefasste Tagesstatistiken.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "analytics-settings".
@@ -1706,7 +1706,7 @@ export interface CookieSetting {
export interface AnalyticsSetting {
id: number;
/**
* Wie lange einzelne Analytics-Events gespeichert bleiben. Begrenzt auch den wählbaren Zeitraum im Analytics-Dashboard.
* Wie lange einzelne Messwerte gespeichert bleiben. Begrenzt auch den wählbaren Zeitraum in der Auswertung.
*/
rawRetentionDays: number;
/**