Promote develop -> main (Quellen-Health Schritt 1: Sub-Section + Pagination + Backend-Slim + UX) #1
In neuem Issue referenzieren
Einen Benutzer sperren
Branch "develop" löschen
Das Löschen eines Branches ist permanent. Obwohl der Branch für eine kurze Zeit weiter existieren könnte, kann diese Aktion in den meisten Fällen NICHT rückgängig gemacht werden. Fortfahren?
4 Commits: HTML-Container-Fix, Pagination, Backend-Slim+Cache, UX (Default-Filter Probleme + Counter + Filter-Hint).
Echter Bottleneck war der DOM-Render von 519 Tabellen-Zeilen, nicht das Backend (45ms). Backend-Slim und Cache aus dem letzten Commit haben Bandbreite und wiederholte Klicks beschleunigt, aber der erste Klick blieb langsam, weil weiterhin alle 519 Items in einem innerHTML-Schub gerendert wurden. Lösung: Server-Side-Pagination. Backend (/api/sources/health): - Neue Query-Param: limit (default 100, max 5000), offset (default 0) - Counters errors/warnings/ok/total_checks aus separater GROUP-BY- Aggregat-Query über den GESAMTEN Bestand, nicht über die Page. - Neues Feld all_orgs in der Antwort: alle Tenants mit Health-Checks, damit das Filter-Dropdown auch im Pagination-Modus die volle Org-Liste hat. - Neue Felder limit, offset, has_more. Frontend (source-health.js): - healthLoadLimit (default 100), wird durch loadMoreHealth() um 200 hochgesetzt oder durch loadAllHealth() auf alles gesetzt. - Cache-Key beinhaltet jetzt auch das aktuelle Limit, damit beim Mehr-laden nicht aus altem Cache bedient wird. - Org-Liste kommt aus healthData.all_orgs statt aus den geladenen Page-Items, sonst wäre sie nach Pagination unvollständig. - Footer mit zwei Buttons ("+200 laden", "Alle N weiteren laden") unter der Tabelle, nur sichtbar bei has_more=true. - Counter-Anzeige: "X / Y angezeigt (von Z insgesamt)". Cache-Buster für source-health.js auf 20260509f gebumpt.Schritt 1 der Quellen-Health-Aufraeumung. Drei UX-Verbesserungen, kein Daten-Eingriff: 1. Default-Filter "Nur Probleme" (errors + warnings, ohne OK). - Neuer Status-Filter-Wert "issues" als virtuelles Frontend-Konstrukt. - applyHealthFilter behandelt "issues" als status != ok. - Default in healthFilters ist jetzt "issues". User sieht beim Tab-Klick sofort die kritischen 146 Eintraege statt der 281 gruenen OK-Zeilen. 2. Counter aufgegliedert nach check_type. - Backend (/api/sources/health): zusaetzliches Feld "breakdown" mit der GROUP-BY (check_type, status) Aggregation. - Frontend rendert pro Status-Zeile die feine Aufschluesselung, z.B. "143 Warnungen (112 Aktualität, 27 Feed-Validität, 3 Duplikat, 1 Erreichbarkeit)". - Hilft dem Admin, sofort zu sehen wo das Problem liegt. 3. Filter-Hint bei Pagination + leeren Treffern. - Wenn der aktuelle Filter ueber die geladenen 100 Items keinen Treffer findet UND has_more=true, zeigt das Frontend einen Hinweis-Link "Alle X Health-Checks laden und Filter erneut anwenden". - Loest das Edge-Problem, dass z.B. Filter "Nur OK" auf den Default-100 (errors first) leer schien. Cache-Buster fuer source-health.js auf 20260509g gebumpt.