feat: dashboard version local, bottom nav simplificado, services+actions tabs

- Dashboard muestra version del gradle (no API)
- Header sin iconos duplicados (notifications solo en bottom nav)
- Bottom nav: Dashboard, Servers, Alerts (sin Profile ni Logout)
- ServerDetail: tab Services con lista de systemd services
- ServerDetail: tab Actions con Test/Reboot/Shutdown
- Backend: API endpoints para services, reboot, shutdown, test
This commit is contained in:
2026-06-09 18:15:04 -04:00
parent 13f14416a4
commit af3315e6ab
10 changed files with 546 additions and 308 deletions

View File

@@ -109,6 +109,10 @@ $router->post('/api/servers/:id/execute', [ApiController::class, 'executeCommand
$router->post('/api/auth/login', [ApiController::class, 'login']);
$router->post('/api/auth/register', [ApiController::class, 'register']);
$router->get('/api/app-version', [ApiController::class, 'appVersion']);
$router->get('/api/servers/:id/services', [ApiController::class, 'serverServices']);
$router->post('/api/servers/:id/reboot', [ApiController::class, 'serverReboot']);
$router->post('/api/servers/:id/shutdown', [ApiController::class, 'serverShutdown']);
$router->post('/api/servers/:id/test-connection', [ApiController::class, 'serverTestConnection']);
$router->get('/api/notifications', [ApiController::class, 'notifications']);
$router->get('/api/notifications/unread-count', [ApiController::class, 'unreadCount']);
$router->post('/api/notifications/:id/read', [ApiController::class, 'markNotificationRead']);