clusev/app/Livewire
boban 4eeff4916a feat(fail2ban): lazy-load Gesperrte IPs modal behind a skeleton
The "Gesperrte IPs ansehen" modal did its SSH Fail2banService::status read
in mount(), so clicking the trigger blocked for seconds with no spinner
before the modal appeared.

Split mount() into an instant mount() (stores serverId only) plus a
load() method fired by wire:init, mirroring Services\Index. While
! $loaded the view renders a 4-row skeleton inside the max-h-96 scroll
container; once loaded it renders the real jail/IP list (or empty/error).
The unban flow still re-reads via loadJails() and dispatches
fail2banChanged, keeping #[Locked] $serverId and the audit intact.

Adds Fail2banBansModalTest covering the instant mount (status never
called), load() rendering the list, read-error surfacing, and both
unban success (audit + refresh + dispatch) and failure paths.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 03:05:35 +02:00
..
Audit feat(audit): configurable retention + scheduled clusev:prune-audit 2026-06-14 23:40:17 +02:00
Auth fix(2fa): narrow TOTP verify exception handling; guard enrollment against a tampered secret 2026-06-14 21:45:12 +02:00
Concerns feat(ssh): wire real fleet data over SSH (FleetService + live poller) 2026-06-12 21:34:13 +02:00
Files feat(branding): favicons + PWA manifest, and custom branded error pages 2026-06-14 15:27:49 +02:00
Modals feat(fail2ban): lazy-load Gesperrte IPs modal behind a skeleton 2026-06-15 03:05:35 +02:00
Servers fix(ui): set active server at mount only (race-free) 2026-06-14 19:43:24 +02:00
Services fix(services): cap live journal at 200 rows in a scrollable, auto-sticking box 2026-06-14 20:58:48 +02:00
Settings fix(accounts): make last-user removal atomic (lock + recount) to prevent a zero-user lock-out race 2026-06-14 23:49:21 +02:00
System feat(system): auto-restart sentinel — one-click restart via host watcher (no docker socket) 2026-06-14 23:42:50 +02:00
Versions feat(i18n): bilingual foundation (DE/EN) + localize auth/dashboard/servers/fleet/account 2026-06-13 22:36:16 +02:00
Dashboard.php i18n: complete DE/EN localization (modals, shell, backend) + v0.3.0 2026-06-13 23:27:42 +02:00
ServerSwitcher.php fix(ui): keep the sidebar server-switcher in sync with the viewed server 2026-06-14 19:24:56 +02:00