From ab8a60f55685ad4c70661113dab21b4e372aae0e Mon Sep 17 00:00:00 2001 From: DANYDHSV Date: Mon, 1 Dec 2025 13:20:29 -0600 Subject: [PATCH] =?UTF-8?q?feat(v1.5.1):=20Funcionalidad=20de=20edici?= =?UTF-8?q?=C3=B3n=20en=20configuraci=C3=B3n=20avanzada?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✨ Nuevo: - Botón "✏️ Editar" en tabla de segmentos del editor avanzado - Modo de edición visual con título y botón dinámicos - Campo de segmento se deshabilita durante edición (no se puede cambiar ID) - CRUD completo: Create, Read, Update, Delete 🔧 Mejoras: - Función addSegmentToTable() maneja creación y actualización - 5 nuevas funciones helper para gestión de rangos: * clearRangeContainers() * addInitialRangeWithData() / addFinalRangeWithData() * resetForm() * editSegment() - Scroll automático al inicio del formulario al editar - Validación de duplicados solo en modo creación - Mensajes diferenciados ("agregado" vs "actualizado") 🎨 Interfaz: - Botón editar con estilo azul distintivo - Indicadores visuales claros de modo edición vs agregar - Formulario se pre-llena automáticamente con datos del segmento Completa la funcionalidad CRUD del panel de administración de IPs. --- CHANGELOG.md | 24 ++ README.md | 18 +- data/config.json | 16 +- data/plugin.log | 423 ++++++++++++++++++++++++++ manifest.json | 2 +- public.php | 162 ++++++++-- siip-available-ips.zip | Bin 410715 -> 429587 bytes vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_static.php | 1 + vendor/composer/installed.php | 4 +- 10 files changed, 620 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9662470..b9a585b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,30 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/lang/es/). --- +## [1.5.1] - 2025-12-01 + +### ✨ Añadido +- **Funcionalidad de Edición en Editor Avanzado**: Completado el CRUD con la capacidad de editar segmentos existentes. + - Botón "✏️ Editar" en cada fila de la tabla de segmentos + - Formulario se pre-llena con datos del segmento seleccionado + - Modo visual de edición con título y botón dinámicos + - Campo de número de segmento se deshabilita durante edición (no se puede cambiar el ID) + +### 🔧 Mejorado +- **Función `addSegmentToTable()`**: Ahora maneja tanto creación como actualización de segmentos. +- **Funciones Helper**: Agregadas funciones auxiliares para gestión de rangos: + - `clearRangeContainers()` - Limpia contenedores de rangos + - `addInitialRangeWithData()` / `addFinalRangeWithData()` - Agregan rangos con datos pre-cargados + - `resetForm()` - Resetea formulario al modo agregar + - `editSegment()` - Carga datos del segmento en el formulario +- **UX del Editor**: Scroll automático al inicio del formulario al editar. +- **Validación**: Verificación de duplicados solo en modo creación, no en edición. + +### 🎨 Interfaz +- Botón de editar con estilo azul distintivo +- Indicadores visuales claros de modo edición vs. agregar +- Mensajes de éxito diferenciados ("agregado" vs. "actualizado") + ## [1.5.0] - 2025-11-27 ### ✨ Añadido diff --git a/README.md b/README.md index b94efa9..adf2645 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # SIIP - Buscador de IP's Disponibles UISP -[![Version](https://img.shields.io/badge/version-1.5.0-blue.svg)](manifest.json) +[![Version](https://img.shields.io/badge/version-1.5.1-blue.svg)](manifest.json) [![UCRM](https://img.shields.io/badge/UCRM-Compatible-green.svg)](https://uisp.com/) [![UNMS](https://img.shields.io/badge/UNMS-Compatible-green.svg)](https://uisp.com/) @@ -195,6 +195,16 @@ A partir de la versión 1.5.0, puedes definir rangos de IPs administrativas espe - **Múltiples rangos**: Define varios rangos iniciales y finales por segmento - **Validación automática**: El sistema valida que los rangos sean correctos - **Indicador de modo**: Badge visual que muestra si los rangos personalizados están activos +- **CRUD Completo** (v1.5.1): + - ✅ **Crear**: Agregar nuevos segmentos + - ✅ **Leer**: Ver segmentos en tabla + - ✅ **Actualizar**: Editar segmentos existentes con botón "✏️ Editar" + - ✅ **Eliminar**: Borrar segmentos con botón "🗑️ Eliminar" + +**Gestión de Segmentos:** +1. **Agregar**: Completa el formulario y haz clic en "✅ Agregar Segmento" +2. **Editar**: Haz clic en "✏️ Editar" en la tabla, modifica los rangos y haz clic en "💾 Actualizar Segmento" +3. **Eliminar**: Haz clic en "🗑️ Eliminar" y confirma la acción **Ejemplo de Configuración:** - **Segmento 13**: IPs administrativas del 2 al 60 y del 253 al 255 @@ -622,8 +632,10 @@ Para ver el historial completo de cambios y versiones, consulta el archivo **[CH ### Contacto -- **Sitio web**: [https://siip.mx](https://siip.mx) -- **Autor**: SIIP Internet +--- + +**Versión 1.5.1** - Diciembre 2025 +Desarrollado por [SIIP Internet](https://siip.mx) --- diff --git a/data/config.json b/data/config.json index 7a3cb50..cc5cf28 100644 --- a/data/config.json +++ b/data/config.json @@ -1 +1,15 @@ -{"ipserver":"sistema.siip.mx","apitoken":"393eb3d0-9b46-4a47-b9b4-473e4e24a89c","unmsApiToken":"393eb3d0-9b46-4a47-b9b4-473e4e24a89c","debugMode":true,"logging_level":true,"enablePingVerification":true,"adminRangeStart":"2","adminRangeEnd":"50","adminRangeFinalStart":"254","adminRangeFinalEnd":"255","useCustomAdminRanges":true,"customAdminRangesJson":"{\"segmentos\":[{\"segmento\":\"13\",\"administrativas_iniciales\":[{\"inicio\":2,\"hasta\":50}],\"administrativas_finales\":[{\"inicio\":253,\"hasta\":254}]}]}","adminPassword":"Siip.2963"} \ No newline at end of file +{ + "ipserver": "sistema.siip.mx", + "apitoken": "393eb3d0-9b46-4a47-b9b4-473e4e24a89c", + "unmsApiToken": "393eb3d0-9b46-4a47-b9b4-473e4e24a89c", + "debugMode": true, + "logging_level": true, + "enablePingVerification": true, + "adminRangeStart": "2", + "adminRangeEnd": "50", + "adminRangeFinalStart": "254", + "adminRangeFinalEnd": "255", + "useCustomAdminRanges": true, + "customAdminRangesJson": "{\"segmentos\":[{\"segmento\":\"13\",\"administrativas_iniciales\":[{\"inicio\":2,\"hasta\":50}],\"administrativas_finales\":[{\"inicio\":253,\"hasta\":254}]},{\"segmento\":\"100\",\"administrativas_iniciales\":[{\"inicio\":2,\"hasta\":50}],\"administrativas_finales\":[{\"inicio\":254,\"hasta\":254}]}]}", + "adminPassword": "Siip.2963" +} \ No newline at end of file diff --git a/data/plugin.log b/data/plugin.log index eee26e5..1cf66c2 100644 --- a/data/plugin.log +++ b/data/plugin.log @@ -7505,3 +7505,426 @@ Verificando lote de 1 IPs Iniciando verificación por ping de 1 IPs (lotes de 1) Procesando lote 1/1 (1 IPs) Lote completado: 0/1 IPs responden (1.11s) +=== NUEVA PETICIÓN === +Método: GET +POST data: [] +GET data: [] +Content-Type: +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +Acceso a la interfaz pública de búsqueda de IPs +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"search","segment":"12","verify_ping":"false"} +GET data: [] +Content-Type: multipart/form-data; boundary=----geckoformboundarybd8272a3349c8efbbaed012943fbb091 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de búsqueda AJAX +Configuración cargada: {"ipserver":"sistema.siip.mx","hasUnmsToken":true,"hasApiToken":true} +Buscando IPs en segmento: 12 (Búsqueda inicial rápida) +URL de API: https://sistema.siip.mx/nms/api/v2.1/devices/ips?suspended=false&management=true&includeObsolete=true +Iniciando conexión a API: https://sistema.siip.mx/nms/api/v2.1/devices/ips?suspended=false&management=true&includeObsolete=true +Respuesta HTTP: 200 +Longitud de respuesta: 48939 bytes +IPs obtenidas exitosamente: 3107 direcciones +Búsqueda de IPs en segmento 172.16.12.x - Disponibles: 134, En uso: 120 +Resultado de búsqueda: {"success":true,"ipsDisponibles":134,"ipsEnUso":120} +<<< Finalizando handler de búsqueda AJAX +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.12.54\"]"} +GET data: [] +Content-Type: multipart/form-data; boundary=----geckoformboundary85be65a5d55d0cdb7f76fa56d2ede785 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.12.59\"]"} +GET data: [] +Content-Type: multipart/form-data; boundary=----geckoformboundarye3e9370d54f82fbbb8f990ddfb1b27cf +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.12.62\"]"} +GET data: [] +Content-Type: multipart/form-data; boundary=----geckoformboundary39c1e1ef57e68ced8b93ca59ea26c4b7 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.12.63\"]"} +GET data: [] +Content-Type: multipart/form-data; boundary=----geckoformboundary188872d75d3f6de8e31ddac02bb1c6c9 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.12.66\"]"} +GET data: [] +Content-Type: multipart/form-data; boundary=----geckoformboundary74e5cee744dab688aba6da8d9b07f3ff +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"search","segment":"58","verify_ping":"false"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundary5de336a314126311a016679cbdf6490a +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de búsqueda AJAX +Configuración cargada: {"ipserver":"sistema.siip.mx","hasUnmsToken":true,"hasApiToken":true} +Buscando IPs en segmento: 58 (Búsqueda inicial rápida) +URL de API: https://sistema.siip.mx/nms/api/v2.1/devices/ips?suspended=false&management=true&includeObsolete=true +Iniciando conexión a API: https://sistema.siip.mx/nms/api/v2.1/devices/ips?suspended=false&management=true&includeObsolete=true +Respuesta HTTP: 200 +Longitud de respuesta: 48970 bytes +IPs obtenidas exitosamente: 3109 direcciones +Búsqueda de IPs en segmento 172.16.58.x - Disponibles: 58, En uso: 196 +Resultado de búsqueda: {"success":true,"ipsDisponibles":58,"ipsEnUso":196} +<<< Finalizando handler de búsqueda AJAX +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.58.56\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundarye37fae410348132280a180b93bd7a227 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.58.59\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundaryc8e65b74e6536dbbf2d57bbe533aa246 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.58.95\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundaryf4da50616d413bc1bba2588826681060 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.58.103\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundarydb470455cd29afa784c24b576840e6b1 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.58.105\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundaryc3d649954bf5ef9bdf46da90d26b72 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: GET +POST data: [] +GET data: {"success":"1"} +Content-Type: +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +Acceso a la interfaz pública de búsqueda de IPs +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"search","segment":"58","verify_ping":"false"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundary2c342b46d37362e78f4fc06ec7e8020c +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de búsqueda AJAX +Configuración cargada: {"ipserver":"sistema.siip.mx","hasUnmsToken":true,"hasApiToken":true} +Buscando IPs en segmento: 58 (Búsqueda inicial rápida) +URL de API: https://sistema.siip.mx/nms/api/v2.1/devices/ips?suspended=false&management=true&includeObsolete=true +Iniciando conexión a API: https://sistema.siip.mx/nms/api/v2.1/devices/ips?suspended=false&management=true&includeObsolete=true +Respuesta HTTP: 200 +Longitud de respuesta: 48968 bytes +IPs obtenidas exitosamente: 3109 direcciones +Búsqueda de IPs en segmento 172.16.58.x - Disponibles: 57, En uso: 197 +Resultado de búsqueda: {"success":true,"ipsDisponibles":57,"ipsEnUso":197} +<<< Finalizando handler de búsqueda AJAX +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.58.56\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundarycbfb0a158a4e5358a601edc003b4e297 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.58.59\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundarybd917ab8ee0f07628167d84a75baec3 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.58.95\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundary58b2539b8103a91915cbb583f6d768d6 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.58.103\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundary64d93b48d78c2fd9cc7b181e2d3c2d3 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.58.105\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundary8187dbe9dbbb010bc555e154af6760d5 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: GET +POST data: [] +GET data: {"success":"1"} +Content-Type: +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +Acceso a la interfaz pública de búsqueda de IPs +=== NUEVA PETICIÓN === +Método: GET +POST data: [] +GET data: {"success":"1"} +Content-Type: +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +Acceso a la interfaz pública de búsqueda de IPs +=== NUEVA PETICIÓN === +Método: GET +POST data: [] +GET data: {"success":"1"} +Content-Type: +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +Acceso a la interfaz pública de búsqueda de IPs +=== NUEVA PETICIÓN === +Método: GET +POST data: [] +GET data: {"success":"1"} +Content-Type: +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +Acceso a la interfaz pública de búsqueda de IPs +=== NUEVA PETICIÓN === +Método: GET +POST data: [] +GET data: {"success":"1"} +Content-Type: +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +Acceso a la interfaz pública de búsqueda de IPs +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"search","segment":"100","verify_ping":"false"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundary66eaa49becf074a2efab28efa6190b7c +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de búsqueda AJAX +Configuración cargada: {"ipserver":"sistema.siip.mx","hasUnmsToken":true,"hasApiToken":true} +Buscando IPs en segmento: 100 (Búsqueda inicial rápida) +URL de API: https://sistema.siip.mx/nms/api/v2.1/devices/ips?suspended=false&management=true&includeObsolete=true +Iniciando conexión a API: https://sistema.siip.mx/nms/api/v2.1/devices/ips?suspended=false&management=true&includeObsolete=true +Respuesta HTTP: 200 +Longitud de respuesta: 48984 bytes +IPs obtenidas exitosamente: 3110 direcciones +Búsqueda de IPs en segmento 172.16.100.x - Disponibles: 123, En uso: 131 +Resultado de búsqueda: {"success":true,"ipsDisponibles":123,"ipsEnUso":131} +<<< Finalizando handler de búsqueda AJAX +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.100.55\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundary59770e227ca7bebbb9d31ac9eb17c6cd +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.100.57\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundary5bfdf75e7db643dfa705de5835164b60 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.100.58\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundaryf9dd8be35ef2af819f4e396e55ca554e +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.100.59\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundary8e13fb488884de4e784f3a1f86c92ea3 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.100.69\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundary7a5518b653c8b853f151206af23c8b7a +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: GET +POST data: [] +GET data: {"success":"1"} +Content-Type: +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +Acceso a la interfaz pública de búsqueda de IPs +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"search","segment":"100","verify_ping":"false"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundary95c02a8b6cd2acabb820ecb1881577b +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de búsqueda AJAX +Configuración cargada: {"ipserver":"sistema.siip.mx","hasUnmsToken":true,"hasApiToken":true} +Buscando IPs en segmento: 100 (Búsqueda inicial rápida) +URL de API: https://sistema.siip.mx/nms/api/v2.1/devices/ips?suspended=false&management=true&includeObsolete=true +Iniciando conexión a API: https://sistema.siip.mx/nms/api/v2.1/devices/ips?suspended=false&management=true&includeObsolete=true +Respuesta HTTP: 200 +Longitud de respuesta: 48984 bytes +IPs obtenidas exitosamente: 3110 direcciones +Búsqueda de IPs en segmento 172.16.100.x - Disponibles: 123, En uso: 131 +Resultado de búsqueda: {"success":true,"ipsDisponibles":123,"ipsEnUso":131} +<<< Finalizando handler de búsqueda AJAX +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.100.69\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundarycd70269185ebb122a3cf31abecffa585 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.11s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.100.70\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundarye723c45d141748e51d9b7c3b006a9769 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.100.82\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundary83bc3d192d14de284e1f8ae608bdf5e +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.100.83\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundaryd3ab89f3d3722c26c9d5ef3b9ec1fb98 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: POST +POST data: {"action":"verify_batch","ips":"[\"172.16.100.84\"]"} +GET data: {"success":"1"} +Content-Type: multipart/form-data; boundary=----geckoformboundaryf6f700fc0d15dc9830ced87ece539e41 +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +>>> Entrando al handler de verificación por lotes (verify_batch) +Verificando lote de 1 IPs +Iniciando verificación por ping de 1 IPs (lotes de 1) +Procesando lote 1/1 (1 IPs) +Lote completado: 0/1 IPs responden (1.10s) +=== NUEVA PETICIÓN === +Método: GET +POST data: [] +GET data: {"success":"1"} +Content-Type: +User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:145.0) Gecko/20100101 Firefox/145.0 +Acceso a la interfaz pública de búsqueda de IPs diff --git a/manifest.json b/manifest.json index 2572bdf..7db7642 100644 --- a/manifest.json +++ b/manifest.json @@ -5,7 +5,7 @@ "displayName": "SIIP - Buscador de IP's Disponibles UISP", "description": "Este plugin permite buscar IP's disponibles en UISP (UNMS) y asignarlas a los clientes en UCRM. Evitando así la asignación de IP's duplicadas y mejorando la gestión de direcciones IP en la red.", "url": "https://siip.mx", - "version": "1.5.0", + "version": "1.5.1", "ucrmVersionCompliancy": { "min": "1.0.0", "max": null diff --git a/public.php b/public.php index b188bac..2bab9ea 100644 --- a/public.php +++ b/public.php @@ -1359,6 +1359,7 @@ $pingEnabled = !empty($config['enablePingVerification']) && ($config['enablePing } let hasUnsavedChanges = false; + let editingIndex = null; // Track which segment is being edited const adminPassword = ; // Event listener para botón de configuración avanzada @@ -1449,6 +1450,9 @@ $pingEnabled = !empty($config['enablePingVerification']) && ($config['enablePing ${iniciales || '-'} ${finales || '-'} + @@ -1489,6 +1493,125 @@ $pingEnabled = !empty($config['enablePingVerification']) && ($config['enablePing container.appendChild(newRange); } + // Helper function: Clear all range containers + function clearRangeContainers() { + document.getElementById('initialRangesContainer').innerHTML = ''; + document.getElementById('finalRangesContainer').innerHTML = ''; + } + + // Helper function: Add initial range with data + function addInitialRangeWithData(start, end) { + const container = document.getElementById('initialRangesContainer'); + const div = document.createElement('div'); + div.className = 'range-input-group'; + div.innerHTML = ` + + hasta + + + `; + container.appendChild(div); + } + + // Helper function: Add final range with data + function addFinalRangeWithData(start, end) { + const container = document.getElementById('finalRangesContainer'); + const div = document.createElement('div'); + div.className = 'range-input-group'; + div.innerHTML = ` + + hasta + + + `; + container.appendChild(div); + } + + // Reset form to add mode + function resetForm() { + const segmentInput = document.getElementById('newSegment'); + segmentInput.value = ''; + segmentInput.disabled = false; + + clearRangeContainers(); + + // Add default empty ranges + document.getElementById('initialRangesContainer').innerHTML = ` +
+ + hasta + + +
+ `; + + document.getElementById('finalRangesContainer').innerHTML = ` +
+ + hasta + + +
+ `; + + // Reset UI text + document.querySelector('#advancedEditor .card h3').textContent = 'Agregar Nuevo Segmento'; + const submitBtn = document.querySelector('button[onclick="addSegmentToTable()"]'); + if (submitBtn) { + submitBtn.textContent = '✅ Agregar Segmento'; + } + + editingIndex = null; + } + + // Edit existing segment + function editSegment(index) { + editingIndex = index; + const segment = editorData.segmentos[index]; + + // Populate segment number + const segmentInput = document.getElementById('newSegment'); + segmentInput.value = segment.segmento; + segmentInput.disabled = true; // Can't change segment number when editing + + // Clear and populate ranges + clearRangeContainers(); + + // Populate initial ranges + if (segment.administrativas_iniciales && segment.administrativas_iniciales.length > 0) { + segment.administrativas_iniciales.forEach(rango => { + addInitialRangeWithData(rango.inicio, rango.hasta); + }); + } else { + // Add empty range if none exist + addInitialRange(); + } + + // Populate final ranges + if (segment.administrativas_finales && segment.administrativas_finales.length > 0) { + segment.administrativas_finales.forEach(rango => { + addFinalRangeWithData(rango.inicio, rango.hasta); + }); + } else { + // Add empty range if none exist + addFinalRange(); + } + + // Update UI + document.querySelector('#advancedEditor .card h3').textContent = `Editar Segmento ${segment.segmento}`; + const submitBtn = document.querySelector('button[onclick="addSegmentToTable()"]'); + if (submitBtn) { + submitBtn.textContent = '💾 Actualizar Segmento'; + } + + // Scroll to top of editor + document.getElementById('advancedEditor').scrollTop = 0; + } + function addSegmentToTable() { const segmentInput = document.getElementById('newSegment'); const segment = segmentInput.value; @@ -1498,8 +1621,8 @@ $pingEnabled = !empty($config['enablePingVerification']) && ($config['enablePing return; } - // Verificar si el segmento ya existe - if (editorData.segmentos.some(s => s.segmento == segment)) { + // Verificar si el segmento ya existe (solo en modo CREATE) + if (editingIndex === null && editorData.segmentos.some(s => s.segmento == segment)) { alert('⚠️ Este segmento ya está configurado'); return; } @@ -1532,35 +1655,26 @@ $pingEnabled = !empty($config['enablePingVerification']) && ($config['enablePing } }); - // Agregar segmento - editorData.segmentos.push({ + const newSegment = { segmento: segment, administrativas_iniciales: initialRanges, administrativas_finales: finalRanges - }); + }; - // Limpiar formulario - segmentInput.value = ''; - initialContainer.innerHTML = ` -
- - hasta - - -
- `; - finalContainer.innerHTML = ` -
- - hasta - - -
- `; + if (editingIndex !== null) { + // UPDATE mode + editorData.segmentos[editingIndex] = newSegment; + alert('✅ Segmento actualizado correctamente'); + } else { + // CREATE mode + editorData.segmentos.push(newSegment); + alert('✅ Segmento agregado correctamente'); + } + // Reset form and update table + resetForm(); hasUnsavedChanges = true; renderSegmentsTable(); - alert('✅ Segmento agregado correctamente'); } function deleteSegment(index) { diff --git a/siip-available-ips.zip b/siip-available-ips.zip index ff9e699caf84c087ce8d3d443136b7f24bc1594a..ebeaff26d816ccbc1eaa23d1697a5feb8f934bae 100644 GIT binary patch delta 66167 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 delta 47015 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 diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 79e3138..81e799a 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -110,6 +110,7 @@ return array( 'Psr\\Http\\Message\\UploadedFileInterface' => $vendorDir . '/psr/http-message/src/UploadedFileInterface.php', 'Psr\\Http\\Message\\UriFactoryInterface' => $vendorDir . '/psr/http-factory/src/UriFactoryInterface.php', 'Psr\\Http\\Message\\UriInterface' => $vendorDir . '/psr/http-message/src/UriInterface.php', + 'SiipAvailableIps\\AdminRangeHelper' => $baseDir . '/src/AdminRangeHelper.php', 'SiipAvailableIps\\IpSearchService' => $baseDir . '/src/IpSearchService.php', 'SiipAvailableIps\\PingService' => $baseDir . '/src/PingService.php', 'Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/ExceptionInterface.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 22033dc..3a9d501 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -188,6 +188,7 @@ class ComposerStaticInita8750288fc198a75aec345f4f4b7fd12 'Psr\\Http\\Message\\UploadedFileInterface' => __DIR__ . '/..' . '/psr/http-message/src/UploadedFileInterface.php', 'Psr\\Http\\Message\\UriFactoryInterface' => __DIR__ . '/..' . '/psr/http-factory/src/UriFactoryInterface.php', 'Psr\\Http\\Message\\UriInterface' => __DIR__ . '/..' . '/psr/http-message/src/UriInterface.php', + 'SiipAvailableIps\\AdminRangeHelper' => __DIR__ . '/../..' . '/src/AdminRangeHelper.php', 'SiipAvailableIps\\IpSearchService' => __DIR__ . '/../..' . '/src/IpSearchService.php', 'SiipAvailableIps\\PingService' => __DIR__ . '/../..' . '/src/PingService.php', 'Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/ExceptionInterface.php', diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index a87157b..ba8240f 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -5,7 +5,7 @@ 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '99d283dd3d70dde73fbcfd497ea5e9f562448847', + 'reference' => '6a0e15447c24c73c605ede44786666c39c39c60f', 'name' => '__root__', 'dev' => false, ), @@ -16,7 +16,7 @@ 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '99d283dd3d70dde73fbcfd497ea5e9f562448847', + 'reference' => '6a0e15447c24c73c605ede44786666c39c39c60f', 'dev_requirement' => false, ), 'guzzlehttp/guzzle' => array(