Verbessere Lesbarkeit und Navigation im CMS

This commit is contained in:
2026-09-17 17:07:34 +02:00
parent 7ec0c51ff5
commit 79cd7f7475
5 changed files with 98 additions and 2 deletions
+3
View File
@@ -1,4 +1,5 @@
import type { AdminViewServerProps } from "payload";
import Link from "next/link";
import { canViewAnalytics } from "@/access";
import { RANGE_OPTIONS, resolveRange } from "@/lib/analytics/range";
import { getDashboardComparison, percentDelta, type DashboardStats } from "@/lib/analytics/dashboardQueries";
@@ -73,6 +74,7 @@ export async function AdminAnalyticsView({ initPageResult }: AdminViewServerProp
if (!canViewAnalytics({ req })) {
return (
<div className={styles.page}>
<Link href="/admin" className="anouma-admin-back">Zur Übersicht</Link>
<h1 className={styles.title}>Auswertung</h1>
<p className={styles.subtitle}>Du hast keine Berechtigung, diesen Bereich zu sehen.</p>
</div>
@@ -102,6 +104,7 @@ export async function AdminAnalyticsView({ initPageResult }: AdminViewServerProp
return (
<div className={styles.page}>
<Link href="/admin" className="anouma-admin-back">Zur Übersicht</Link>
<h1 className={styles.title}>Auswertung</h1>
<p className={styles.subtitle}>Datensparsame Reichweitenmessung ohne personenbezogene Profile. Rohdaten werden {maxDaysBack} Tage aufbewahrt.</p>
+2
View File
@@ -1,4 +1,5 @@
import type { AdminViewServerProps } from "payload";
import Link from "next/link";
import { getAdminCalendarItems, type AdminCalendarItem } from "@/lib/booking/adminCalendar";
import { berlinParts } from "@/lib/calendar/timezone";
import { CalendarFeedPanel } from "./CalendarFeedPanel";
@@ -98,6 +99,7 @@ export async function AdminCalendarView({ initPageResult }: AdminViewServerProps
return (
<div className={styles.page}>
<Link href="/admin" className="anouma-admin-back">Zur Übersicht</Link>
<h1 className={styles.title}>Kalender</h1>
<p className={styles.subtitle}>
Alle bestätigten und vorgeschlagenen Termine, private Einzelbuchungen und öffentliche Veranstaltungen.
+3 -1
View File
@@ -1,5 +1,6 @@
"use client";
import Link from "next/link";
import { useEffect, useState } from "react";
type Conversation = { id: string; subject: string; name: string; email: string; status: string; lastMessageAt?: string };
@@ -64,7 +65,8 @@ export function AdminConversationsView() {
return (
<main style={{ maxWidth: 1200, padding: "32px 24px" }}>
<h1 style={{ margin: 0, fontSize: 28 }}>Anfragen & Nachrichten</h1>
<Link href="/admin" className="anouma-admin-back">Zur Übersicht</Link>
<h1 style={{ margin: "18px 0 0", fontSize: 28 }}>Anfragen und Nachrichten</h1>
<p style={{ margin: "8px 0 24px", color: "#66505f" }}>Kontakt- und Terminanfragen zentral bearbeiten. Antworten werden automatisch per E-Mail verschickt.</p>
{error && <p style={{ color: "#a33", marginBottom: 16 }}>{error}</p>}
<div style={{ display: "grid", gridTemplateColumns: "minmax(260px, .8fr) minmax(0, 1.4fr)", gap: 20, minHeight: 560 }}>
-1
View File
@@ -13,7 +13,6 @@ export function AdminWelcome() {
<div className="anouma-admin-welcome__intro">
<p className="anouma-admin-eyebrow">Anouma Verwaltung</p>
<h1 id="anouma-admin-welcome-title">Was möchtest du heute erledigen?</h1>
<p>Hier findest du die wichtigsten Bereiche für Website, Anfragen und Termine an einem Ort.</p>
</div>
<div className="anouma-admin-quicklinks">
{links.map((link, index) => (