From 60f38be95780ab72302ef560fef30ea2d4c4ea77 Mon Sep 17 00:00:00 2001 From: pablinux Date: Mon, 19 Jan 2026 08:28:13 -0500 Subject: [PATCH] =?UTF-8?q?feat:=20Agregar=20modal=20de=20confirmaci=C3=B3?= =?UTF-8?q?n=20para=20eliminar=20apps=20en=20panel=20web?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- logs/errors.log | 86 +++++++++++++++++++++++++ web/index.html | 166 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 252 insertions(+) diff --git a/logs/errors.log b/logs/errors.log index edf028b..a2a7530 100644 --- a/logs/errors.log +++ b/logs/errors.log @@ -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"} diff --git a/web/index.html b/web/index.html index 59cdc83..d8cd64a 100644 --- a/web/index.html +++ b/web/index.html @@ -471,6 +471,117 @@ + + + +