feat(helpdesk): align module with core UI standards and fix KPI accuracy

- Add server-side ticket summary endpoint for exact KPI counts instead
  of client-side calculation from first 200 tickets
- Extract summarizeTickets() as shared static method to avoid duplication
- Replace custom .helpdesk-spinner CSS with core [aria-busy] pattern
- Migrate settings connection-test feedback to showAsyncFlash()
- Replace helpdesk-clickable-rows.js with delegated event handling
- Remove unused helpdesk-search.js (dead code, never loaded)
- Harmonize German wording: Debitoren → Kunden (8 i18n keys)
- Add 6 PHPUnit tests for loadTicketSummary()

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-02 21:05:54 +02:00
parent a0d7670dd7
commit a37486c0e3
13 changed files with 275 additions and 129 deletions

View File

@@ -15,29 +15,6 @@
outline-offset: -2px;
}
/* Async loading spinner */
.helpdesk-tab-loading {
display: flex;
align-items: center;
gap: 0.75rem;
padding: 2rem;
color: var(--app-muted, #6c757d);
font-size: 0.875rem;
}
.helpdesk-spinner {
width: 1.25rem;
height: 1.25rem;
border: 2px solid var(--app-border, #dee2e6);
border-top-color: var(--app-primary, #0d6efd);
border-radius: 50%;
animation: helpdesk-spin 0.6s linear infinite;
}
@keyframes helpdesk-spin {
to { transform: rotate(360deg); }
}
/* Overview tab — header links */
.app-stats-table-header .helpdesk-tab-link {
float: right;