Phase 2.5: UI redesign, inline quotas, toasts, Users tab
- Full UI redesign: GitHub-dark palette, custom CSS vars, better contrast, card layout, cleaner tables and typography - Dashboard auto-refresh every 30s (was 60s) - Remove Quotas tab; each share row now has a Quota button that opens a modal pre-filled with the share's valid users (SMB) or path (NFS) - Replace all alert() with Bootstrap toast notifications - Add Users tab: list system users (uid >= 1000) with SMB status, create user (useradd + smbpasswd), delete user, change SMB password - Backend: /api/users GET/POST, /api/users/<name> DELETE, /api/users/<name>/password POST Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
d237f4d290
commit
822e6b3b87
3 files changed
+561
-180
No files matched your search
+29
-9
@@ -64,19 +64,40 @@ on a second client). This app does not implement backup.
|
||||
|
||||
### Phase 2 — Dashboard & health (the main goal)
|
||||
A landing page that shows the state of the server at a glance:
|
||||
- [ ] **Daemon status** — is `smbd` running? is `nfsd` running? (green/red).
|
||||
- [ ] **Disk usage** — free / used / total for `/srv` (and per-disk if simple).
|
||||
- [ ] **All shares in one view** — every SMB share and NFS export, their paths,
|
||||
- [x] **Daemon status** — is `smbd` running? is `nfsd` running? (green/red).
|
||||
- [x] **Disk usage** — free / used / total for `/srv`.
|
||||
- [x] **All shares in one view** — every SMB share and NFS export, their paths,
|
||||
and who can access them.
|
||||
- [ ] **Per-share data used** — size on disk of each share's path (`du`).
|
||||
- [ ] **Quota usage** — for each user with a quota: used vs limit, with a
|
||||
progress bar (e.g. "12 GB / 50 GB").
|
||||
- [ ] Auto-refresh or a manual refresh button.
|
||||
- [x] **Per-share data used** — size on disk of each share's path (`du`).
|
||||
- [x] **Quota usage** — for each user with a quota: used vs limit, with a
|
||||
progress bar.
|
||||
- [x] Auto-refresh every 30 seconds + manual refresh button.
|
||||
|
||||
### Phase 2.5 — UX improvements (next up)
|
||||
Improvements identified after first real test:
|
||||
|
||||
- [x] **UI redesign** — GitHub-dark palette, better contrast, card layout,
|
||||
breathing room. Custom CSS variables, no extra dependencies.
|
||||
- [x] **Inline quota management** — removed dedicated Quotas tab. Each SMB
|
||||
share and NFS export row has a "Quota" button that opens a modal.
|
||||
For SMB: lists valid_users with individual GB inputs. For NFS: manual
|
||||
user + GB. Submits one API call per user in parallel.
|
||||
- [x] **Toast notifications** — replaced all `alert()` with Bootstrap toasts.
|
||||
- [x] **Auto-refresh every 30 s** (was 60 s).
|
||||
- [ ] **User management tab** — create, delete, and change the SMB password
|
||||
of NAS users without touching the command line:
|
||||
- List all system users (uid ≥ 1000), show whether they have a Samba
|
||||
account.
|
||||
- Create user: `useradd -M -s /usr/sbin/nologin` + `smbpasswd -a`.
|
||||
- Delete user: `smbpasswd -x` + `userdel`.
|
||||
- Change SMB password: `smbpasswd -s` via modal.
|
||||
- Backend: `/api/users` GET/POST, `/api/users/<name>` DELETE,
|
||||
`/api/users/<name>/password` POST.
|
||||
|
||||
### Phase 3 — Full management (complete the CRUD)
|
||||
- [ ] Working **delete** for SMB & NFS (parse config into blocks, rewrite the
|
||||
whole file — not append-only).
|
||||
- [ ] **Edit** existing shares.
|
||||
- [ ] **Edit** existing shares (path, valid users).
|
||||
- [ ] Enable/disable a share without deleting it.
|
||||
|
||||
### Phase 4 — Nice-to-have
|
||||
@@ -84,7 +105,6 @@ A landing page that shows the state of the server at a glance:
|
||||
app drop an Apache/nginx WebDAV config snippet, same pattern as SMB/NFS,
|
||||
so it reuses the existing architecture.
|
||||
- [ ] Simple in-browser file browser for `/srv`.
|
||||
- [ ] Toast notifications instead of `alert()`.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user