feat: Agregar modal de confirmación para eliminar apps en panel web

Frontend (index.html):
- Modal elegante con backdrop blur y animación
- Muestra nombre de la app a eliminar
- Lista detallada de lo que se eliminará:
  * Servicio systemd (siax-app-*.service)
  * Archivo .service en /etc/systemd/system/
  * Registro en monitored_apps.json
  * Historial de monitoreo

- Botón de eliminar solo visible si app está Stopped/Failed
- Diseño rojo con iconos Material Symbols
- Dos botones: Cancelar (gris) y Eliminar (rojo)
- Función openDeleteModal(appName)
- Función closeDeleteModal()
- Función confirmDelete() que llama a DELETE /api/apps/:name

Backend (ya existente, no modificado):
- DELETE /api/apps/:name elimina completamente:
  1. systemctl stop
  2. systemctl disable
  3. rm archivo .service
  4. systemctl daemon-reload
  5. Elimina de AppManager (memoria)
  6. Elimina de monitored_apps.json

Flujo de eliminación:
1. Usuario detiene app
2. Aparece botón 🗑️ Eliminar
3. Click → Modal de confirmación
4. Confirm → DELETE request
5. Backend elimina todo
6. Frontend recarga tabla
7. App desaparece completamente del sistema

Consecuencias de eliminación completa:
 No queda rastro en systemd
 No re-aparece en discovery
 No se envía a Cloud Central
 Limpieza total del sistema
This commit is contained in:
2026-01-19 08:28:13 -05:00
parent 6ab43980aa
commit 60f38be957
2 changed files with 252 additions and 0 deletions

View File

@@ -2242,3 +2242,89 @@
[2026-01-19 08:10:32] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:10:32] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-19 08:10:32] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:11:32] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-19 08:11:32] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:11:32] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-19 08:11:32] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:11:38] [INFO] [Sistema] Iniciando SIAX Agent
[2026-01-19 08:11:38] [INFO] [Sistema] Escaneando servicios systemd existentes...
[2026-01-19 08:11:38] [INFO] [Discovery] 🔍 Escaneando servicios systemd en: /etc/systemd/system
[2026-01-19 08:11:38] [INFO] [Discovery] ✅ Directorio /etc/systemd/system accesible
[2026-01-19 08:11:38] [INFO] [Discovery] 📊 Escaneados 131 archivos, 0 con prefijo 'siax-app-', 0 parseados exitosamente
[2026-01-19 08:11:38] [INFO] [Config] Usando archivo de configuración: config/monitored_apps.json
[2026-01-19 08:11:38] [INFO] [Config] ✅ Configuración cargada: 2 apps desde config/monitored_apps.json
[2026-01-19 08:11:38] [INFO] [Sistema] Servidor detectado: siax-intel
[2026-01-19 08:11:38] [INFO] [Sistema] Iniciando servidor unificado en puerto 8080
[2026-01-19 08:11:38] [INFO] [Sistema] Sistema SIAX completamente operativo en puerto 8080
[2026-01-19 08:11:38] [INFO] [Monitor] Vigilando procesos para siax-intel [SIAX-Agent/0.1.0 (linux/x86_64; Rust-Monitor)]
[2026-01-19 08:11:38] [INFO] [Monitor] Buscando app app_tareas en API central...
[2026-01-19 08:11:38] [INFO] [Monitor] App app_tareas encontrada en cloud (ID: 3)
[2026-01-19 08:11:38] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:11:38] [INFO] [Monitor] Buscando app fidelizacion en API central...
[2026-01-19 08:11:38] [INFO] [Monitor] App fidelizacion encontrada en cloud (ID: 4)
[2026-01-19 08:11:39] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:11:45] [INFO] [WebSocket] Nueva conexión para logs de: app_tareas
[2026-01-19 08:11:48] [INFO] [WebSocket] Nueva conexión para logs de: fidelizacion
[2026-01-19 08:11:48] [INFO] [WebSocket] Conexión cerrada para: app_tareas
[2026-01-19 08:11:53] [INFO] [WebSocket] Nueva conexión para logs de: app_tareas
[2026-01-19 08:11:53] [INFO] [WebSocket] Conexión cerrada para: fidelizacion
[2026-01-19 08:11:54] [INFO] [WebSocket] Nueva conexión para logs de: fidelizacion
[2026-01-19 08:11:54] [INFO] [WebSocket] Conexión cerrada para: app_tareas
[2026-01-19 08:11:57] [INFO] [WebSocket] Nueva conexión para logs de: app_tareas
[2026-01-19 08:11:57] [INFO] [WebSocket] Conexión cerrada para: fidelizacion
[2026-01-19 08:11:59] [INFO] [WebSocket] Nueva conexión para logs de: fidelizacion
[2026-01-19 08:11:59] [INFO] [WebSocket] Conexión cerrada para: app_tareas
[2026-01-19 08:12:07] [INFO] [WebSocket] Conexión cerrada para: fidelizacion
[2026-01-19 08:12:39] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-19 08:12:39] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:12:39] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-19 08:12:39] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:19:19] [INFO] [Sistema] Iniciando SIAX Agent
[2026-01-19 08:19:19] [INFO] [Sistema] Escaneando servicios systemd existentes...
[2026-01-19 08:19:19] [INFO] [Discovery] 🔍 Escaneando servicios systemd en: /etc/systemd/system
[2026-01-19 08:19:19] [INFO] [Discovery] ✅ Directorio /etc/systemd/system accesible
[2026-01-19 08:19:19] [INFO] [Discovery] 📊 Escaneados 131 archivos, 0 con prefijo 'siax-app-', 0 parseados exitosamente
[2026-01-19 08:19:19] [INFO] [Config] Usando archivo de configuración: config/monitored_apps.json
[2026-01-19 08:19:19] [INFO] [Config] ✅ Configuración cargada: 2 apps desde config/monitored_apps.json
[2026-01-19 08:19:19] [INFO] [Sistema] Servidor detectado: siax-intel
[2026-01-19 08:19:19] [INFO] [Sistema] Iniciando servidor unificado en puerto 8080
[2026-01-19 08:19:19] [INFO] [Sistema] Sistema SIAX completamente operativo en puerto 8080
[2026-01-19 08:19:19] [INFO] [Monitor] Vigilando procesos para siax-intel [SIAX-Agent/0.1.0 (linux/x86_64; Rust-Monitor)]
[2026-01-19 08:19:19] [INFO] [Monitor] Buscando app app_tareas en API central...
[2026-01-19 08:19:19] [INFO] [Monitor] App app_tareas encontrada en cloud (ID: 3)
[2026-01-19 08:19:19] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:19:19] [INFO] [Monitor] Buscando app fidelizacion en API central...
[2026-01-19 08:19:19] [INFO] [Monitor] App fidelizacion encontrada en cloud (ID: 4)
[2026-01-19 08:19:19] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:20:19] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-19 08:20:19] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:20:19] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-19 08:20:19] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:21:19] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-19 08:21:19] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:21:19] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-19 08:21:20] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:22:20] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-19 08:22:20] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:22:20] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-19 08:22:20] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:23:20] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-19 08:23:20] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:23:20] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-19 08:23:20] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:24:20] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-19 08:24:20] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:24:20] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-19 08:24:20] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:25:20] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-19 08:25:20] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:25:20] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-19 08:25:20] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:26:20] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-19 08:26:20] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:26:21] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-19 08:26:21] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:27:21] [INFO] [Monitor] App app_tareas ya existe (ID: 3), actualizando...
[2026-01-19 08:27:21] [ERROR] [Monitor] Error sincronizando app_tareas | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}
[2026-01-19 08:27:21] [INFO] [Monitor] App fidelizacion ya existe (ID: 4), actualizando...
[2026-01-19 08:27:21] [ERROR] [Monitor] Error sincronizando fidelizacion | HTTP 500 Internal Server Error: {"success":false,"message":"Error al actualizar el estado","error":"Table 'webControl.app_service_history' doesn't exist"}