Shares- und Identities-Seite nutzen jetzt ?tab= Query-Parameter statt
clientseitigem JS. Der Server steuert aktiven Tab via Jinja2, kein
<script>-Block mehr nötig.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Kein Node.js, kein npm, kein Build-Schritt mehr
- HTMX 2.0.4 + PicoCSS 2 vendored in backend/static/
- Jinja2 Templates für alle 9 Seiten (Dashboard, ZFS, Snapshots,
Shares, Identities, Logs, Services, Navigator, Login)
- HTMX Fragments für Live-Updates (30s Polling Dashboard)
- JWT als httpOnly Cookie statt localStorage
- Disk Usage zeigt TB/PB korrekt (Jinja2 serverseitig formatiert)
- Update-safe: nur Python-Deps, keine npm-Abhängigkeiten
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Route /samba/{name} was matching before /samba/config, causing 422 on
PUT /samba/config. Moved static routes before parameterized routes.
Values starting with '-' (shadow: format = -%Y-%m-%d-%H%M) were parsed
as CLI flags by net conf setparm. Added '--' separator to escape them.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- get_disk_usage() in system_info.py via /usr/bin/df -P
- GET /api/system/disk-usage Endpoint
- getDiskUsage() im API-Client
- Dashboard zeigt Disk Usage Karten mit Balken + Total/Used/Free
(sichtbar auf LXC wo /proc/diskstats keine Blockgeräte liefert)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Backend: neue Endpoints POST /api/pools/{name}/clear und /resilver
- Frontend: Pool ⋮-Menü mit Scrub, Resilver, Clear Errors
- Product-Spalte im Status-Tab bricht jetzt korrekt um statt abgeschnitten zu werden
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- add_user_to_group: Exception werfen mit stderr Nachricht
- remove_user_from_group: Exception werfen mit stderr Nachricht
- text=True für subprocess für besseres Error Handling
- Router aktualisiert um Fehlermeldungen an Frontend weiterzugeben
- Benutzer sehen jetzt detaillierte Fehlermeldungen beim Gruppe-Entfernen
Behebt: 'Failed to remove user from group' verschluckt die echte Fehlermeldung
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Backend:
- Use 'net conf setparm' to update individual parameters
- Accept dictionary of key-value pairs in API
Frontend:
- Add Edit/Cancel/Save buttons to Samba Config tab
- Inline editing of configuration values
- Save changes back to registry
Changes are applied immediately via net conf setparm.
Co-Authored-By: Patrick <patrick@perlbach24.de>