From c3aed8a3d3b7a2093c12cdbd6efb2837738d1473 Mon Sep 17 00:00:00 2001 From: schakal00783 Date: Mon, 21 Sep 2026 17:16:13 +0200 Subject: [PATCH] fix(reports): lange Projektnamen umbrechen statt abschneiden Die Reporttabelle lief mit table-auto: ein langer Projektname wie "HAYS - Globales Template und Implementierung: ... _Fresenius - 01.10.2025-31.07.2026" zog die Namensspalte auf und schob Stunden und Betrag aus dem sichtbaren Bereich. Das truncate am Namen half nicht, weil die Spalte keine Breite hatte, an der es haette greifen koennen. Die Tabelle steht jetzt auf table-fixed mit festen Breiten fuer die Zahlenspalten; der Name bekommt den Rest und bricht um (break-words). Die Zahlen selbst bleiben einzeilig. Dazu die Kennzahlenkarte: ihre vier Spalten mit den grossen Betraegen passten ab lg nicht mehr in die Breite, der rechte Rand wurde von overflow-x-hidden abgeschnitten. Sie bricht jetzt auf zwei Spalten um und zeigt vier erst ab xl. Co-Authored-By: Claude Opus 5 (1M context) --- src/components/reports/ReportTable.tsx | 22 +++++++++++----------- src/components/reports/Reports.tsx | 10 +++++----- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/components/reports/ReportTable.tsx b/src/components/reports/ReportTable.tsx index 40c21ef..66305aa 100644 --- a/src/components/reports/ReportTable.tsx +++ b/src/components/reports/ReportTable.tsx @@ -52,15 +52,15 @@ export const ReportTable: React.FC<{ return (
- +
{head('name', label, 'left', 'pl-4')} - {head('minutes', 'Stunden')} - @@ -82,12 +82,12 @@ export const ReportTable: React.FC<{ ) : null} - {r.name} - {r.customer_name && {r.customer_name}{r.code ? ` · ${r.code}` : ''}} + {r.name} + {r.customer_name && {r.customer_name}{r.code ? ` · ${r.code}` : ''}} - + @@ -96,10 +96,10 @@ export const ReportTable: React.FC<{ {r.utilization == null ? '–' : `${r.utilization} %`} )} - - {showAmounts && } + {showAmounts && } ); })} diff --git a/src/components/reports/Reports.tsx b/src/components/reports/Reports.tsx index 0d418eb..29c825f 100644 --- a/src/components/reports/Reports.tsx +++ b/src/components/reports/Reports.tsx @@ -187,13 +187,13 @@ const TimeReport: React.FC = () => { ) : ( <> - -
+ +

Gesamtstunden

v.toLocaleString('de-DE', { minimumFractionDigits: 2, maximumFractionDigits: 2 })} className="text-4xl font-extrabold text-ink-900" />

{s!.entries} Buchungen

-
+

@@ -219,7 +219,7 @@ const TimeReport: React.FC = () => {

-
+

Billable Betrag

formatEuro(v, 2)} className="text-4xl font-extrabold text-ink-900" />
-
+

Auslastung

`${Math.round(v)} %`} className="text-4xl font-extrabold text-ink-900" />

Kapazität {formatHours(capacity, 0)} h bis heute

- {showUtil && head('utilization', 'Auslastung')} - {head('billable_minutes', 'Billable Std.')} - {showAmounts && head('amount', 'Billable Betrag', 'right', 'pr-4')} + {head('minutes', 'Stunden', 'right', 'w-[108px]')} + + {showUtil && head('utilization', 'Auslastung', 'right', 'w-[116px]')} + {head('billable_minutes', 'Billable Std.', 'right', 'w-[160px]')} + {showAmounts && head('amount', 'Billable Betrag', 'right', 'w-[150px] pr-4')}
{formatHours(r.minutes)}{formatHours(r.minutes)} + {formatHours(r.billable_minutes)} ({share} %) {formatEuro(r.amount, 2)}{formatEuro(r.amount, 2)}