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ÓDIGOtanto do texto da opção como do atributotitle(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
codepermanece 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
| Onde | GLPI nativo (antes) | Com GLPI Bug Fixes (depois) |
|---|---|---|
| Lista pendente no pedido | Erro ao usar automação - 337.TIPO:INC;... | Erro ao usar automação |
| Pergunta de categoria num formulário | Rede - NET.02;Grupo:INFRA | Rede |
| Dica (title) do item | Mostra o código completo | Mostra só o nome |
| Lista pendente de grupo (ex.: N1 - Suporte) | N1 - Suporte | N1 - Suporte (inalterado) |
| Campo code na base de dados | Preenchido | Preenchido (nunca é alterado) |
Como ativar
- Instale o plugin NexTool no seu GLPI 11 (se ainda não tiver).
- Aceda a Configuração > NexTool > Módulos e ative o módulo GLPI Bug Fixes.
- Abra Configurar e vá ao separador Funcionalidades.
- 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.