Cómo quitar el código de categoría de los desplegables de GLPI 11

En GLPI 11, toda categoría con el campo code relleno aparece en los desplegables con el código concatenado al nombre - ruido visual que el técnico descifra en cada ticket. El módulo GLPI Bug Fixes de NexTool limpia el texto en el renderizado, sin borrar el code de la base de datos y sin editar el núcleo, cubriendo tanto los tickets como el nuevo sistema de formularios.

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ÓDIGO tanto del texto de la opción como del atributo title (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 code sigue 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óndeGLPI nativo (antes)Con GLPI Bug Fixes (después)
Desplegable en el ticketError al usar automatización - 337.TIPO:INC;...Error al usar automatización
Pregunta de categoría en un formularioRed - NET.02;Grupo:INFRARed
Tooltip (title) del ítemMuestra el código completoMuestra solo el nombre
Desplegable de grupo (ej.: N1 - Soporte)N1 - SoporteN1 - Soporte (sin cambios)
Campo code en la base de datosRellenoRelleno (nunca se altera)

Cómo activarlo

  1. Instala el plugin NexTool en tu GLPI 11 (si aún no lo tienes).
  2. Ve a Configuración > NexTool > Módulos y activa el módulo GLPI Bug Fixes.
  3. Abre Configurar y ve a la pestaña Funcionalidades.
  4. 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.

Preguntas Frecuentes

Toda categoría ITIL tiene un campo opcional llamado code. Cuando está relleno, GLPI concatena ese valor al nombre en todos los desplegables, usando el separador " - ". Es comportamiento nativo del núcleo, no un fallo de tu entorno.

No. El módulo solo cambia lo que se muestra en pantalla, interceptando el renderizado de Select2. El code sigue intacto en la base de datos y disponible para reglas, integraciones e informes.

No. La limpieza está acotada por la identidad del campo (el name itilcategories_id o, en formularios, el input hidden con itemtype ITILCategory), nunca por el patrón de texto. Los nombres con un " - " legítimo, como los grupos por nivel, quedan intactos.

Sí. Además de tickets, cambios y problemas, cubre las preguntas de selección de categoría en Glpi\Form, detectando el input hidden que declara el itemtype ITILCategory junto a la pregunta.

No. La corrección se aplica en la siguiente apertura de un desplegable de categoría. El asset JS usa una marca de versión que cambia al activar o desactivar la feature, así que el navegador siempre carga la versión correcta.

Sí, es FREE. Forma parte del plugin NexTool (4.1.3 o superior) y es compatible con GLPI 11.0 o superior.

?Necesitas ayuda?