Skip to content

feat: Dashboard UX + Timezone-Fix + Status-Filter skipped (v6.2.0) - #125

Merged
csoscd merged 3 commits into
mainfrom
feature/dashboard-acknowledge-ux
Sep 1, 2026
Merged

feat: Dashboard UX + Timezone-Fix + Status-Filter skipped (v6.2.0)#125
csoscd merged 3 commits into
mainfrom
feature/dashboard-acknowledge-ux

Conversation

@csoscd

@csoscd csoscd commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • Dashboard: Echte Gesamtzahl unbestätigter Fehler — Badge zeigt tatsächliche Gesamtzahl (alle Zeiträume), nicht nur die angezeigten 10; Agent filtert unacknowledged_only=1 und status=failed serverseitig, total-Feld liefert die Gesamtzahl
  • Dashboard: „Zeige N von M" Hinweis — erscheint, wenn weitere unbestätigte Fehler über das Limit hinaus vorhanden sind
  • Dashboard: AJAX-Reload nach Bestätigen — nach jedem Acknowledge wird die Fehler-Sektion sofort neu geladen; nächster Eintrag füllt automatisch nach
  • Dashboard-Link „Alle in History →" — zeigt jetzt korrekt auf /timeline?status=failed statt auf das nicht existierende /history
  • status=failed schließt Maintenance-Sentinels (exit_code -4) aus — verhindert, dass Wartungs-Skips als Fehler gezählt werden (war Ursache für „3 von 3632")
  • Neuer Status-Filter skipped — zeigt auf der Timeline-Seite ausschließlich „Übersprungen (Wartung)"-Einträge
  • Timezone-FixExecutionStartEndpoint / ExecutionFinishEndpoint nutzen date_default_timezone_get() statt hart-kodiertem UTC; TZ=Europe/Berlin in Agent-Compose-Dateien

Test plan

  • Lokale Integrationstests: 214 Tests grün
  • GitHub CI: PHP Tests ✅, Security ✅, Docker Build ✅
  • Manueller Test: Dashboard-Badge und „Zeige N von M"-Hinweis prüfen
  • Manueller Test: Timeline-Dropdown „Übersprungen (Wartung)" prüfen
  • Manueller Test: Link „Alle in History →" führt zu /timeline?status=failed
  • Manueller Test: Timestamps in der Ausführungshistorie zeigen lokale Zeit

…load (v6.2.0)

- HistoryEndpoint: neuer Parameter unacknowledged_only=1 (AND acknowledged_at IS NULL)
- DashboardController: nutzt limit=10 + unacknowledged_only=1; agent-seitiges total
  liefert echte Gesamtzahl; Web-seitiger acknowledged_at-Filter und array_slice entfallen
- Dashboard-Badge zeigt totalUnacknowledged (offen) statt fehlerhaftem failedLast24h-Proxy
- Hinweis "Zeige N von M unbestätigten Fehlern – Alle in History →" erscheint wenn
  weitere Fehler existieren als angezeigt werden (eliminiert bisherige Verwirrung)
- Nach AJAX-Acknowledge: Fehler-Sektion wird sofort vom Server neu geladen; nächster
  unbestätigter Fehler füllt die Liste auf (Custom-Event cm:ack-success)
- 60-s-Poll aktualisiert Badge, Hinweis und Fehler-Liste
- 2 neue Integrationstests für unacknowledged_only-Filter
…ezone_get() umgestellt

ExecutionStartEndpoint und ExecutionFinishEndpoint konvertierten empfangene
ISO-8601-Zeitstempel hart-kodiert nach UTC. Auf Hosts mit abweichender
PHP-/System-Timezone im Container (z.B. date.timezone=UTC bei lokaltime
Europe/Berlin) wurden Zeitstempel dadurch in der falschen Timezone gespeichert.

Fix: Konvertierung nutzt nun date_default_timezone_get() statt 'UTC'.
Alle Agent-Compose-Dateien setzen TZ=${TZ:-Europe/Berlin}, sodass PHP-
und System-Timezone konsistent sind. Tests, README und API.md aktualisiert.
…kipped

- HistoryEndpoint: status=failed filtert jetzt exit_code != -4 zusätzlich,
  sodass Maintenance-Skips (exit_code -4) nicht mehr als Fehler zählen.
  Neuer status=skipped gibt ausschließlich exit_code-(-4)-Einträge zurück.
- DashboardController: clientseitiger -4-Filter entfernt (Agent liefert
  jetzt korrekte Einträge für status=failed).
- Dashboard: Link "Alle in History →" zeigt auf /timeline statt /history
  (kein Web-Route).
- Timeline: neues Dropdown-Eintrag "Übersprungen (Wartung)" (status=skipped).
- Sprachdateien de/en: filter_status_skipped hinzugefügt.
@csoscd
csoscd merged commit 8085110 into main Sep 1, 2026
12 checks passed
@csoscd
csoscd deleted the feature/dashboard-acknowledge-ux branch September 1, 2026 21:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant