From a63957936634701bcdcf6d59784b6ec7998daf7d Mon Sep 17 00:00:00 2001 From: claude-dev Date: Sat, 25 Jul 2026 14:21:57 +0000 Subject: [PATCH] =?UTF-8?q?feat(struktur):=20weniger=20Klicks,=20Org-Detai?= =?UTF-8?q?l=20als=20eine=20Seite,=20Kontingent=20in=20der=20=C3=9Cbersich?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drei Vereinfachungen auf Nutzerwunsch. 1. Das Org-Detail hat keine Unterreiter mehr. Verbrauch & Kontingent, Nutzer, Lizenzen und Einstellungen stehen untereinander auf einer Seite (Verbrauch optisch zuerst, per CSS-Order ohne Block-Verschiebung), die bisherigen Reiter sind Sprungmarken, die nur scrollen. Alle Bereiche laden sofort, der Org-Kopf zeigt den Kontingent-Stand als Kurzinfo. 2. Die Organisations-Tabelle bekommt eine Kontingent-Spalte mit Verbraucht/Verfügbar und Mini-Balken (gelb ab 50, rot ab 80 Prozent), Datenquelle ist die vorhandene Overview-API. Ganze Zeile klickbar. 3. Der globale Hauptreiter "Lizenzen" entfällt, er zeigte nur die Ablauf-Liste, die bereits auf dem Dashboard steht. Die Einträge dort öffnen jetzt direkt die jeweilige Organisation, die Kachel "Aktive Lizenzen" führt zur Organisations-Verwaltung. loadExpiringLicenses bleibt als abgesicherter No-op für Alt-Aufrufer erhalten. Co-Authored-By: Claude Fable 5 --- src/static/css/style.css | 34 +++++++++++++++++ src/static/dashboard.html | 64 ++++++++++--------------------- src/static/js/app.js | 79 ++++++++++++++++++++++++++++++--------- 3 files changed, 115 insertions(+), 62 deletions(-) diff --git a/src/static/css/style.css b/src/static/css/style.css index 8620aa3..68a47b6 100644 --- a/src/static/css/style.css +++ b/src/static/css/style.css @@ -1401,3 +1401,37 @@ details.adv-section .adv-hint { grid-column: 1 / -1; font-size: 12px; color: var .card-link:hover, .card-link:focus-visible { border-color: var(--accent); } .card-link .card-link-chevron { color: var(--text-muted); transition: color 0.15s ease, transform 0.15s ease; } .card-link:hover .card-link-chevron { color: var(--accent); transform: translateX(2px); } + +/* === Org-Detail als durchgehende Seite (statt Unterreitern) === */ +.detail-panel.active { display: flex; flex-direction: column; } +#orgDetailTabs { order: 1; position: sticky; top: 61px; background: var(--bg-primary); z-index: 50; } +.org-block { margin-top: 26px; scroll-margin-top: 120px; } +#sub-tokens { order: 2; } +#sub-users { order: 3; } +#sub-org-licenses { order: 4; } +#sub-settings { order: 5; } +.org-block-title { + font-size: 16px; + margin-bottom: 12px; + padding-bottom: 6px; + border-bottom: 1px solid var(--border); + color: var(--text-primary); +} + +/* === Kontingent-Spalte in der Org-Tabelle === */ +.org-row { cursor: pointer; } +.mini-bar { + width: 90px; + height: 5px; + border-radius: 3px; + background: var(--bg-tertiary); + overflow: hidden; + margin-top: 3px; +} +.mini-bar-fill { height: 100%; background: var(--success); border-radius: 3px; } +.mini-bar-fill.warning { background: var(--warning); } +.mini-bar-fill.critical { background: var(--danger); } + +/* === Klickbare Eintraege in der Ablauf-Liste === */ +.expiring-item-link { cursor: pointer; border-radius: var(--radius); transition: background 0.15s ease; } +.expiring-item-link:hover, .expiring-item-link:focus-visible { background: var(--bg-hover); } diff --git a/src/static/dashboard.html b/src/static/dashboard.html index 241fc42..05b78f2 100644 --- a/src/static/dashboard.html +++ b/src/static/dashboard.html @@ -6,7 +6,7 @@ AegisSight Monitor-Verwaltung - +