diff --git a/frontend/src/client/dashboard.ts b/frontend/src/client/dashboard.ts index b7fb4ec..3e58a5f 100644 --- a/frontend/src/client/dashboard.ts +++ b/frontend/src/client/dashboard.ts @@ -17,12 +17,6 @@ interface DeadlineSummary { later: number; } -interface AppointmentSummary { - today: number; - this_week: number; - later: number; -} - interface MatterSummary { active: number; archived: number; @@ -66,7 +60,6 @@ interface ActivityEntry { interface DashboardData { user: DashboardUser | null; deadline_summary: DeadlineSummary; - appointment_summary: AppointmentSummary; matter_summary: MatterSummary; upcoming_deadlines: UpcomingDeadline[]; upcoming_appointments: UpcomingAppointment[]; @@ -105,7 +98,6 @@ function render(): void { if (!data) return; renderGreeting(data.user); renderSummary(data.deadline_summary); - renderAppointmentSummary(data.appointment_summary); renderMatters(data.matter_summary); renderDeadlines(data.upcoming_deadlines); renderAppointments(data.upcoming_appointments); @@ -152,12 +144,6 @@ function renderSummary(s: DeadlineSummary): void { overdueCard.classList.toggle("dashboard-card-alarm", s.overdue > 0); } -function renderAppointmentSummary(s: AppointmentSummary): void { - setCount("dashboard-count-appt-today", s.today); - setCount("dashboard-count-appt-this-week", s.this_week); - setCount("dashboard-count-appt-later", s.later); -} - function renderMatters(s: MatterSummary): void { setCount("dashboard-matter-active", s.active); setCount("dashboard-matter-archived", s.archived); diff --git a/frontend/src/client/events.ts b/frontend/src/client/events.ts index 608f086..35d98f5 100644 --- a/frontend/src/client/events.ts +++ b/frontend/src/client/events.ts @@ -718,7 +718,15 @@ function applyTypeVisibility() { toggleFilterPair("events-filter-status", !isAppointment); // Event-type multi-select also deadline-only (appointments have no event_types). toggleFilterPair("events-filter-event-type", !isAppointment, "events-filter-event-type-label"); - toggleDisplay("events-filter-event-type-panel", !isAppointment, "block"); + // The panel is a popup the trigger owns via `panel.hidden`. Never stamp + // `display: block` on it from the type filter — that overrides the + // `.multi-panel[hidden]` CSS rule and leaves the panel visible on larger + // screens. When switching to appointment view, force-close it. + const eventTypePanel = document.getElementById("events-filter-event-type-panel") as HTMLElement | null; + if (eventTypePanel) { + eventTypePanel.style.display = ""; + if (isAppointment) eventTypePanel.hidden = true; + } // Termin-Typ is appointment-only. toggleFilterPair("events-filter-appointment-type", !isDeadline); diff --git a/frontend/src/dashboard.tsx b/frontend/src/dashboard.tsx index 5ebd8c1..cf9591d 100644 --- a/frontend/src/dashboard.tsx +++ b/frontend/src/dashboard.tsx @@ -86,27 +86,6 @@ export function renderDashboard(): string { - {/* Termine summary rail — 3 cards: Heute · Diese Woche · Später (t-paliad-110) */} -
-

- Termine auf einen Blick -

-
- -
0
-
Heute
-
- -
0
-
Diese Woche
-
- -
0
-
Später
-
-
-
- {/* Matter summary card */}
diff --git a/frontend/src/styles/global.css b/frontend/src/styles/global.css index 08d8a1c..9807287 100644 --- a/frontend/src/styles/global.css +++ b/frontend/src/styles/global.css @@ -8622,8 +8622,10 @@ dialog.quick-add-sheet::backdrop { } .multi-list { overflow-y: auto; + overflow-x: hidden; flex: 1; min-height: 4rem; + min-width: 0; } .multi-group { padding: 0.25rem 0; } .multi-group-label { @@ -8642,6 +8644,8 @@ dialog.quick-add-sheet::backdrop { border-radius: 0.25rem; cursor: pointer; font-size: 0.875rem; + min-width: 0; + overflow-wrap: anywhere; } .multi-option:hover { background: var(--color-bg-lime-tint); } .multi-option input[type="checkbox"] { margin: 0; }