639af6371e
feat: add PWA support - manifest, service worker, offline page, icons
2026-06-14 10:15:20 -04:00
01f1215cef
fix: replace confirm() with proper delete confirmation modal
2026-06-14 10:07:21 -04:00
a25ebdcb75
feat: add resend notification action with push
2026-06-14 10:05:19 -04:00
aea0a4d189
feat: add delete notification button with confirmation in admin notifications
2026-06-14 10:03:59 -04:00
6b2300de07
fix: style custom checkbox with checkmark icon, add disabled button colors
2026-06-14 09:58:44 -04:00
e6a70c427e
fix: add terms/privacy checkbox to download modal, button disabled until checked
2026-06-14 09:56:43 -04:00
448a593423
fix: add required permissions section to download modal, use direct download to avoid blob HTTPS warning
2026-06-14 09:54:30 -04:00
5453a5d856
feat: add download modal with app summary and progress bar for APK download
2026-06-14 09:52:18 -04:00
f48a5a5495
feat: improve sidebar design - rounded nav items, gradient header accent, better collapsible, refined sublist
2026-06-14 09:48:34 -04:00
36b0d8dfd9
fix: close notification dropdown when opening user menu and vice versa
2026-06-14 09:36:45 -04:00
00bad074d3
fix: remove notifications link from user menu, add view-all button to notification dropdown, fix admin link
2026-06-14 09:31:27 -04:00
74cf9739d6
refactor: replace sidebar user footer with topbar dropdown menu
2026-06-14 09:26:52 -04:00
b7bd4bfe92
fix: append command history row in real-time after execution
2026-06-14 09:12:28 -04:00
49d724cf9c
fix: add Accept: application/json to terminal execute fetch
2026-06-14 09:09:40 -04:00
4ce6b27f96
fix: use serverId variable and add Accept: application/json to server-show.js fetch calls
2026-06-14 09:02:13 -04:00
d1da560764
fix: sync CSS classes with refactored layout, restore missing sidebar items, add asset versioning, fix routes and auth
2026-06-14 08:54:37 -04:00
88f3c1f964
refactor: extract inline CSS/JS from views into separate asset files (20+ files)
...
Phase A — HTML removed from PHP files:
- RateLimitMiddleware.php: heredoc moved to views/errors/429.php
- public/index.php: inline HTML replaced with View::error()
- AuthMiddleware.php: <script> redirect replaced with <meta refresh>
Phase B — Inline CSS/JS extracted from views:
- CSS: landing.css (459 lines), legal.css (shared by terms+privacy)
- JS: 17 new files extracted from ~20 view files
- main.js (layout sidebar + notifications)
- dashboard-chart.js, server-show.js, server-services.js
- nginx-manager.js, database-manager.js
- terminal.js, team-show.js, team-index.js
- server-list.js, server-permissions.js (shared by edit+create)
- server-ssl.js, server-processes.js, system-users.js
- admin-users.js, audit-log.js, admin-notifications.js, admin-security.js
- notifications.js
Total: -3264 lines from views, +288 lines in new assets
2026-06-14 08:04:01 -04:00
e1b6650454
feat: notification dropdown panel and /notifications page
2026-06-13 16:48:05 -04:00
25dfb517ee
feat: notification bell with modal showing 10 latest notifications
2026-06-13 16:41:56 -04:00
e92f51e36b
replace number inputs with range sliders in threshold modal
2026-06-13 16:32:53 -04:00
12c3e23d9c
feat: track notification read receipts per user
...
- New notification_reads table (migration 008) with unique (notification_id, user_id)
- Notification model: markAsRead inserts into notification_reads; getForUser JOINs
to show per-user read status; getUnreadCount checks NOT EXISTS in reads table
- getAll() includes read_count subquery for admin view
- Admin view shows 'X / Y' read count for broadcast notifications,
'Read'/'Unread' badge for user-targeted ones
- Migrates existing read notifications into notification_reads
- AGENTS.md updated with new conventions
2026-06-13 11:48:05 -04:00
0cfed5bf27
feat: validate required SSH permissions before creating server
...
- New server_permissions table (migration 007) stores required SSH permissions per server
- PermissionValidator service connects via SSH and validates each permission before save
- ServerPermission model for CRUD on server_permissions table
- Web flow: create/edit forms include dynamic permission rows with quick-add presets
- API flow: serverAdd/serverUpdate accept permissions array, return 400 on failure
- Show view displays required permissions on server detail page
- Form input preserved on validation failure (credentials excluded)
- AGENTS.md updated with new conventions
2026-06-13 10:41:18 -04:00
13f14416a4
feat: teams redesign — cards, filter, user autocomplete
...
- Teams index: cards with animation, search filter
- Team detail: user autocomplete via AJAX (search on type)
- CSS: card grid styles, autocomplete dropdown
- Backend: searchUsers endpoint, filter support
2026-06-09 18:11:20 -04:00
5789c77d9a
Fix icon click propagation in sidebar — add pointer-events: none to all nav icons
2026-06-07 13:10:32 -04:00
c45354db11
Fix theme toggle (add light theme CSS) and improve mobile sidebar usability
2026-06-07 13:02:31 -04:00
cd24cc53a0
Add per-column filters, smart pagination (25/page), and date range filter to audit logs
2026-06-07 12:43:50 -04:00
516ffbb579
Add user registration page with default operator role
2026-06-06 19:41:03 -04:00
9c0bc7f189
ServerManager project files
2026-06-06 17:58:34 -04:00