Como remover o código de categoria nas listas pendentes do GLPI 11

No GLPI 11, toda a categoria com o campo code preenchido aparece nas listas pendentes com o código concatenado ao nome - ruído visual que o técnico decifra a cada pedido. O módulo GLPI Bug Fixes da NexTool limpa o texto na renderização, sem apagar o code da base de dados e sem editar o núcleo, cobrindo tanto os pedidos como o novo sistema de formulários.

Abre a lista pendente de categoria para registar um pedido no GLPI 11 e, em vez do nome limpo, surge um bloco assim: "Erro ao usar automação - 337.TIPO:INC;Grupo:AUTOMAÇÃO;Urgência:Muito Alta". O que devia ser apenas o nome da categoria tornou-se uma linha de metadados que o técnico tem de decifrar de cada vez. Não é defeito do seu ambiente: é o próprio GLPI a concatenar o campo code da categoria em todas as listas pendentes.

O problema

Toda a categoria ITIL do GLPI tem um campo opcional chamado code. Existe por bons motivos: numeração de processo, chave de encaminhamento para regras de negócio, parâmetro de integração com um ERP ou com um sistema de pedidos externo. O problema não é ter o campo preenchido - é onde ele aparece. Quando a categoria tem code, o núcleo do GLPI concatena esse valor ao nome em todas as listas pendentes da interface, usando o separador - . Uma informação de bastidores passa para o ecrã de quem só quer escolher "Rede" ou "Impressora".

Na prática, quanto mais estruturado for o seu code, pior. As equipas que carregam metadados no campo (tipo do pedido, grupo responsável, urgência sugerida) acabam com listas pendentes onde o nome real da categoria é a parte mais pequena do texto. O olho lê da esquerda para a direita, encontra o código primeiro e abranda. Em ecrãs mais pequenos o texto é truncado a meio do código - e nem o nome aparece por inteiro.

As duas saídas óbvias não servem. Editar o núcleo do GLPI para remover a concatenação funciona até à atualização seguinte, quando o ficheiro é sobreposto e o problema regressa. Esvaziar o campo code limpa o ecrã, mas parte tudo o que dependia dele - regras, integrações, relatórios. Trocaria um incómodo visual por uma falha funcional.

Como o GLPI Bug Fixes resolve

O módulo GLPI Bug Fixes ataca o sintoma no lugar certo: a renderização, não o dado. Não toca na base de dados e não edita o núcleo. Em vez disso, envolve as funções globais de template do Select2 que o GLPI usa (window.templateResult e window.templateSelection) e limpa o texto na origem, antes de chegar ao DOM. O campo code continua intacto na base de dados; apenas deixa de aparecer na interface.

  • Limpa o nome e a dica - remove o sufixo - CÓDIGO tanto do texto da opção como do atributo title (o balão que surge ao passar o rato), na lista e no valor já selecionado.
  • Cobre os dois sítios onde a categoria aparece - a lista pendente clássica de pedido, alteração e problema (itilcategories_id) e as perguntas de seleção de categoria no novo sistema de formulários do GLPI 11 (Glpi\Form).
  • Não apaga nada - o code permanece disponível para regras de negócio, integrações e relatórios. É uma correção puramente visual.
  • Liga e desliga por funcionalidade - a correção é um interruptor individual no separador Funcionalidades; ativar ou desativar tem efeito imediato, sem reinstalar o módulo.
  • Sobrevive às atualizações - como tudo corre pelo plugin, atualizar o GLPI não desfaz a correção.

O detalhe que separa uma correção segura de uma que parte o resto

É aqui que entra a experiência de quem opera GLPI em produção. A primeira versão do fix fazia o óbvio: limpava o texto de qualquer lista pendente Select2 que tivesse o padrão " - alguma coisa". Parecia certo até um cliente reportar que os nomes dos grupos tinham sido cortados - "N1 - Suporte" passava a "N1", "N2 - Infraestrutura" passava a "N2". O separador - é legítimo em muitos nomes; limpar por padrão de texto é ingénuo. A correção passou a estar delimitada pela identidade do campo, não pela aparência do texto.

Para o pedido é direto: só atua quando o <select> se chama itilcategories_id. No novo sistema de formulários é mais subtil, porque a pergunta usa um nome genérico como answers_5[items_id] que serve para qualquer item (categoria, localização, fornecedor). A pista está num <input hidden> irmão que declara o tipo. O módulo só limpa o texto quando esse irmão diz ITILCategory:

<!-- Pedido: o fix atua porque o name é exatamente itilcategories_id -->
<select name="itilcategories_id">
  <option value="12"
    title="Erro ao usar automação - 337.TIPO:INC;Grupo:AUTOMAÇÃO">
    Erro ao usar automação - 337.TIPO:INC;Grupo:AUTOMAÇÃO
  </option>
</select>

<!-- Formulário (Glpi\Form): SÓ limpa se o hidden irmão for ITILCategory -->
<select name="answers_5[items_id]"> ... </select>
<input type="hidden" name="answers_5[itemtype]" value="ITILCategory">

<!-- Grupo: name diferente e sem hidden ITILCategory -->
<!-- o " - " legítimo é PRESERVADO -->
<select name="groups_id">
  <option>N1 - Suporte</option>
</select>

É o tipo de decisão que só surge na sustentação: a solução "rápida" parte um caso limite que nenhum teste sintético cobre, mas que existe em quase todo o ambiente real com grupos nomeados por nível de atendimento.

Antes e depois, por contexto

OndeGLPI nativo (antes)Com GLPI Bug Fixes (depois)
Lista pendente no pedidoErro ao usar automação - 337.TIPO:INC;...Erro ao usar automação
Pergunta de categoria num formulárioRede - NET.02;Grupo:INFRARede
Dica (title) do itemMostra o código completoMostra só o nome
Lista pendente de grupo (ex.: N1 - Suporte)N1 - SuporteN1 - Suporte (inalterado)
Campo code na base de dadosPreenchidoPreenchido (nunca é alterado)

Como ativar

  1. Instale o plugin NexTool no seu GLPI 11 (se ainda não tiver).
  2. Aceda a Configuração > NexTool > Módulos e ative o módulo GLPI Bug Fixes.
  3. Abra Configurar e vá ao separador Funcionalidades.
  4. Confirme que Ocultar código de categoria nas listas pendentes está ligado - vem ativado por predefinição após a instalação.

A correção passa a valer na próxima vez que abrir uma lista pendente de categoria. Não é preciso reiniciar o serviço nem limpar a cache: o asset JS traz uma marca de versão que muda sozinha quando liga ou desliga a funcionalidade, garantindo que o navegador carrega sempre a versão certa.

A quem se destina (e quando não usar)

Faz sentido para qualquer equipa que preenche o campo code das categorias ITIL - seja para numeração interna, encaminhamento por regras ou integração - e cujos técnicos ou utilizadores finais selecionam categoria no dia a dia. Quanto mais gente abre pedidos, maior o ganho de clareza.

Não faz diferença se as suas categorias não têm code preenchido: sem código concatenado, não há nada a limpar. E se quer que o código apareça no ecrã - algumas equipas usam-no como referência rápida no balcão de atendimento - basta deixar a funcionalidade desligada. A correção é opcional exatamente por isso.

Compatibilidade

  • GLPI: 11.0 ou superior
  • Módulo: GLPI Bug Fixes (chave fixes) - plano gratuito (FREE)
  • Plugin: NexTool 4.1.3 ou superior
  • Cobertura: pedidos, alterações e problemas, além do novo sistema de formulários (Glpi\Form)

Próximo passo

O GLPI Bug Fixes faz parte do NexTool, o ecossistema de módulos que estende o GLPI sem personalização do núcleo. O módulo é gratuito e já está no catálogo. Se quiser ajuda para instalar ou avaliar outras correções, fale com a equipa.


Este conteúdo foi produzido com o auxílio de inteligência artificial e revisto pela equipa Nextool Solutions.

Perguntas Frequentes

Toda a categoria ITIL tem um campo opcional chamado code. Quando está preenchido, o GLPI concatena esse valor ao nome em todas as listas pendentes, usando o separador " - ". É comportamento nativo do núcleo, não um bug do seu ambiente.

Não. O módulo só altera o que é apresentado no ecrã, intercetando a renderização do Select2. O code permanece intacto na base de dados e disponível para regras, integrações e relatórios.

Não. A limpeza é delimitada pela identidade do campo (o name itilcategories_id ou, nos formulários, o input hidden com itemtype ITILCategory), nunca pelo padrão de texto. Nomes com um " - " legítimo, como grupos por nível, ficam intactos.

Sim. Além dos pedidos, alterações e problemas, cobre as perguntas de seleção de categoria no Glpi\Form, detetando o input hidden que declara o itemtype ITILCategory ao lado da pergunta.

Não. A correção vale já na próxima abertura de uma lista pendente de categoria. O asset JS usa uma marca de versão que muda ao ligar ou desligar a funcionalidade, por isso o navegador carrega sempre a versão certa.

Sim, é FREE. Faz parte do plugin NexTool (4.1.3 ou superior) e é compatível com o GLPI 11.0 ou superior.

Precisa de ajuda?