Abres el desplegable de categoría para registrar un ticket en GLPI 11 y, en lugar del nombre limpio, aparece un bloque así: "Error al usar automatización - 337.TIPO:INC;Grupo:AUTOMATIZACIÓN;Urgencia:Muy Alta". Lo que debería ser solo el nombre de la categoría se convirtió en una línea de metadatos que el técnico tiene que descifrar cada vez. No es un defecto de tu entorno: es el propio GLPI concatenando el campo code de la categoría en todos los desplegables.
El problema
Toda categoría ITIL de GLPI tiene un campo opcional llamado code. Existe por buenas razones: numeración de proceso, clave de enrutamiento para reglas de negocio, parámetro de integración con un ERP o con un sistema de tickets externo. El problema no es tener el campo relleno - es dónde aparece. Cuando la categoría tiene code, el núcleo de GLPI concatena ese valor al nombre en todos los desplegables de la interfaz, usando el separador - . Una información de bastidor se filtra a la pantalla de quien solo quiere elegir "Red" o "Impresora".
En la práctica, cuanto más estructurado sea tu code, peor. Los equipos que cargan metadatos en el campo (tipo de ticket, grupo responsable, urgencia sugerida) terminan con desplegables donde el nombre real de la categoría es la parte más pequeña del texto. El ojo lee de izquierda a derecha, encuentra el código primero y se ralentiza. En pantallas pequeñas el texto se corta en medio del código, y ni siquiera el nombre aparece completo.
Las dos salidas obvias no sirven. Editar el núcleo de GLPI para quitar la concatenación funciona hasta la siguiente actualización, cuando el archivo se sobrescribe y el problema vuelve. Vaciar el campo code limpia la pantalla, pero rompe todo lo que dependía de él - reglas, integraciones, informes. Cambiarías una molestia visual por un fallo funcional.
Cómo lo resuelve GLPI Bug Fixes
El módulo GLPI Bug Fixes ataca el síntoma en el lugar correcto: el renderizado, no el dato. No toca la base de datos ni edita el núcleo. En su lugar, envuelve las funciones globales de plantilla de Select2 que usa GLPI (window.templateResult y window.templateSelection) y limpia el texto en el origen, antes de que llegue al DOM. El campo code sigue intacto en la base de datos; solo deja de aparecer en la interfaz.
- Limpia el nombre y el tooltip - quita el sufijo
- CÓDIGOtanto del texto de la opción como del atributotitle(el globo que aparece al pasar el ratón), en la lista y en el valor ya seleccionado. - Cubre los dos lugares donde aparece la categoría - el desplegable clásico de ticket, cambio y problema (
itilcategories_id) y las preguntas de selección de categoría en el nuevo sistema de formularios de GLPI 11 (Glpi\Form). - No borra nada - el
codesigue disponible para reglas de negocio, integraciones e informes. Es una corrección puramente visual. - Se activa por feature - la corrección es un interruptor individual en la pestaña Funcionalidades; activarla o desactivarla surte efecto de inmediato, sin reinstalar el módulo.
- Sobrevive a las actualizaciones - como todo corre por el plugin, actualizar GLPI no deshace la corrección.
El detalle que separa una corrección segura de una que rompe todo lo demás
Aquí entra la experiencia de quien opera GLPI en producción. La primera versión del fix hacía lo obvio: limpiaba el texto de cualquier desplegable Select2 que tuviera el patrón " - algo". Parecía correcto hasta que un cliente reportó que los nombres de los grupos se habían cortado - "N1 - Soporte" pasaba a "N1", "N2 - Infraestructura" pasaba a "N2". El separador - es legítimo en muchos nombres; limpiar por patrón de texto es ingenuo. La corrección pasó a estar acotada por la identidad del campo, no por el aspecto del texto.
Para el ticket es directo: solo actúa cuando el <select> se llama itilcategories_id. En el nuevo sistema de formularios es más sutil, porque la pregunta usa un nombre genérico como answers_5[items_id] que sirve para cualquier ítem (categoría, ubicación, proveedor). La pista está en un <input hidden> hermano que declara el tipo. El módulo solo limpia el texto cuando ese hermano dice ITILCategory:
<!-- Ticket: el fix actúa porque el name es exactamente itilcategories_id -->
<select name="itilcategories_id">
<option value="12"
title="Error al usar automatización - 337.TIPO:INC;Grupo:AUTOMATIZACIÓN">
Error al usar automatización - 337.TIPO:INC;Grupo:AUTOMATIZACIÓN
</option>
</select>
<!-- Formulario (Glpi\Form): SOLO limpia si el hidden hermano es ITILCategory -->
<select name="answers_5[items_id]"> ... </select>
<input type="hidden" name="answers_5[itemtype]" value="ITILCategory">
<!-- Grupo: name distinto y sin hidden ITILCategory -->
<!-- el " - " legítimo se PRESERVA -->
<select name="groups_id">
<option>N1 - Soporte</option>
</select>
Es el tipo de decisión que solo aparece en el soporte del día a día: la solución "rápida" rompe un caso límite que ninguna prueba sintética cubre, pero que existe en casi todo entorno real con grupos nombrados por nivel de servicio.
Antes y después, por contexto
| Dónde | GLPI nativo (antes) | Con GLPI Bug Fixes (después) |
|---|---|---|
| Desplegable en el ticket | Error al usar automatización - 337.TIPO:INC;... | Error al usar automatización |
| Pregunta de categoría en un formulario | Red - NET.02;Grupo:INFRA | Red |
| Tooltip (title) del ítem | Muestra el código completo | Muestra solo el nombre |
| Desplegable de grupo (ej.: N1 - Soporte) | N1 - Soporte | N1 - Soporte (sin cambios) |
| Campo code en la base de datos | Relleno | Relleno (nunca se altera) |
Cómo activarlo
- Instala el plugin NexTool en tu GLPI 11 (si aún no lo tienes).
- Ve a Configuración > NexTool > Módulos y activa el módulo GLPI Bug Fixes.
- Abre Configurar y ve a la pestaña Funcionalidades.
- Confirma que Ocultar código de categoría en los desplegables está activado - viene habilitado por defecto tras la instalación.
La corrección surte efecto la próxima vez que abras un desplegable de categoría. No hace falta reiniciar el servicio ni limpiar la caché: el asset JS lleva una marca de versión que cambia sola cuando activas o desactivas la feature, de modo que el navegador siempre carga la versión correcta.
Para quién es (y cuándo no usarlo)
Tiene sentido para cualquier equipo que rellena el campo code de las categorías ITIL - ya sea para numeración interna, enrutamiento por reglas o integración - y cuyos técnicos o usuarios finales seleccionan categoría a diario. Cuanto más gente abre tickets, mayor es la ganancia de claridad.
No cambia nada si tus categorías no tienen code relleno: sin código concatenado, no hay nada que limpiar. Y si quieres que el código aparezca en pantalla - algunos equipos lo usan como referencia rápida en el mostrador de atención - basta dejar la feature desactivada. Por eso la corrección es opcional.
Compatibilidad
- GLPI: 11.0 o superior
- Módulo: GLPI Bug Fixes (clave
fixes) - plan gratuito (FREE) - Plugin: NexTool 4.1.3 o superior
- Cobertura: tickets, cambios y problemas, además del nuevo sistema de formularios (
Glpi\Form)
Siguiente paso
GLPI Bug Fixes forma parte de NexTool, el ecosistema de módulos que extiende GLPI sin personalizar el núcleo. El módulo es gratuito y ya está en el catálogo. Si quieres ayuda para instalarlo o evaluar otras correcciones, habla con el equipo.
Este contenido se produjo con ayuda de inteligencia artificial y fue revisado por el equipo de Nextool Solutions.