Skip to content

Releases: RPGMais/nextool

whatsappbot 1.2.2 [GLPI 11]

07 Apr 20:11
7a464b3

Choose a tag to compare

Corrigido

  • Modo WhatsApp (notifications_sms) agora e ativado automaticamente ao instalar ou carregar o modulo (antes ficava desabilitado por padrao, exigindo ativacao manual em Configurar > Notificacoes)

[GLPI 11] Esta atualização é para instâncias GLPI 11.
Download: Disponível diretamente pelo plugin NexTool no seu GLPI.
Acesse Nextools > Módulos e clique em Atualizar no card do módulo.
Os artefatos não são distribuídos pelo GitHub.

Etiqueta (filtro): modulo:whatsappbot[GLPI_11]

whatsappbot 1.2.1 [GLPI 11]

07 Apr 19:59
7a464b3

Choose a tag to compare

Adicionado

  • Toggle "Criar instancia automaticamente" na aba Conectores (antes existia apenas no backend)
  • Logs de envio enriquecidos: evento (link para template de notificacao), chamado (link clicavel), telefone
  • Retry automatico via fila: mensagens que falham no envio direto sao enfileiradas para ate 3 tentativas via cron

Corrigido

  • Auto-criacao de instancia nao funcionava: getQrCode() retornava 404 para instancia inexistente e a excecao pulava a logica de auto-criacao
  • testConnection() no modo self_hosted agora verifica se a instancia configurada existe (antes so testava conectividade com a API)
  • httpRequest() tratava campo message como string quando a Evolution API retorna array (causava "Array to string conversion" e JSON corrompido)
  • Healthcheck cron usava instance_name fixo ignorando connection_mode (managed) e parava de agendar ao retornar 0 em falha
  • sendMessage() nao logava mais diretamente (log duplicado removido); log agora centralizado em sendNotification() com contexto completo

[GLPI 11] Esta atualização é para instâncias GLPI 11.
Download: Disponível diretamente pelo plugin NexTool no seu GLPI.
Acesse Nextools > Módulos e clique em Atualizar no card do módulo.
Os artefatos não são distribuídos pelo GitHub.

Etiqueta (filtro): modulo:whatsappbot[GLPI_11]

subtaskflow 1.0.1 [GLPI 11]

01 Apr 15:02
7a464b3

Choose a tag to compare

Corrigido

  • Hooks pre_item_add, item_add, pre_item_purge convertidos de metodos estaticos para metodos nativos CommonDBTM (prepareInputForAdd, post_addItem, pre_deleteItem). Corrige: validacao de auto-referencia (pai=filho) e deteccao de duplicatas nao eram executadas.


[GLPI 11] Esta atualização é para instâncias GLPI 11.
Download: Disponível diretamente pelo plugin NexTool no seu GLPI.
Acesse Nextools > Módulos e clique em Atualizar no card do módulo.
Os artefatos não são distribuídos pelo GitHub.

Etiqueta (filtro): modulo:subtaskflow[GLPI_11]

subtaskflow 1.0.0 [GLPI 11]

01 Apr 13:47
7a464b3

Choose a tag to compare

Adicionado

  • Workflow hierárquico de subtarefas: Implementação completa de templates pai→filho com encadeamento automático.
  • Soluções pré-definidas: CRUD de soluções (Sim, Não, Pendente, etc.) com validation para impedir deleção de soluções em uso.
  • Hierarquia de templates: Configuração de relações pai→filho específicas por solução. Cada relação é única via UNIQUE(father_id, son_id, solution_id).
  • Detecção de loops circulares: Algoritmo DFS (Depth-First Search) durante validação de nova relação pai→filho. Impede configurações cíclicas (A → B → C → A).
  • Criação automática de subtasks: Hook PRE_ITEM_UPDATE em TicketTask. Quando state=2 (Done), sistema lê tasksolutions_id e cria filhas para aquela solução via getChildrenForParentAndSolution().
  • Campo observação rich text: Campo observation (HTML) em TicketTask com editor inline. Renderizado na timeline via POST_SHOW_ITEM hook.
  • Auditoria completa (Tracker): Tabela glpi_plugin_nextool_subtaskflow_tracker registra:
    • ticket_id, template_id, solution_id
    • father_tickettask_id (task resolvida), son_tickettask_id (criada)
    • users_id_create (quem resolveu), users_id_finished (quem finalizou filha)
    • date_create, date_finished (timestamps)
  • Config standalone (5 abas):
    • Aba 1 (Configurações): toggles (ativar criação auto, detectar loops), categoria default, auto-assign requester, log operations.
    • Aba 2 (Task Solutions): CRUD de soluções com soft-delete e modal form.
    • Aba 3 (Registros): histórico paginado de criações automáticas.
    • Aba 4 (Logs): log operacional (erros, validações).
    • Aba 5 (Sobre): versão, descrição do módulo.
  • AJAX endpoints: 8 ações distribuídas em 2 arquivos:
    • solution.php: list_solutions, add_solution, edit_solution, delete_solution
    • template.php: list_templates, get_children, add_template, validate_no_loop, delete_template
  • Sistema de permissões: 4 direitos com bits CREATE|READ|UPDATE|DELETE|PURGE:
    • plugin_nextool_subtaskflow_template
    • plugin_nextool_subtaskflow_solution
    • plugin_nextool_subtaskflow_tracker (READ only)
    • plugin_nextool_subtaskflow_config (READ|UPDATE)
    • Fallback helpdesk habilitado.
  • Integração HookDispatcher: 3 hooks em TicketTask:
    • POST_ITEM_FORM: injeta dropdown solução + campo observação
    • POST_SHOW_ITEM: renderiza observação na timeline
    • PRE_ITEM_UPDATE: intercepta state=2, cria subtasks filhas
  • Soft delete patterns: Coluna is_deleted em Solution e Template. Queries filtram is_deleted=0 automaticamente.
  • Auto-atribuição opcional: Config toggle "auto_assign_to_requester". Se ativo, subtasks criadas são assignadas ao requester original do ticket.
  • Seeding automático: install.sql cria 3 soluções padrão (Sim, Não, Pendente) + direitos iniciais.

Padrões Implementados

  • CommonDBTM inheritance: Todas as classes (Solution, Template, Tracker, Config) herdam de CommonDBTM para CRUD nativo.
  • Module key: plugin_nextool_subtaskflow em setup.php, consistente em nomes de tabela, direitos e hooks.
  • PluginNextoolHookDispatcher: Despacha hooks para TicketTask via HookDispatcher (não $PLUGIN_HOOKS direto).
  • PluginNextoolPermissionManager: Todas as permissões checadas via haveRight() com fallback helpdesk.
  • Validação em banco: Constraint UNIQUE(father_id, son_id, solution_id) em template table + validação de ciclo via DFS.
  • Timestamps: date_creation, date_mod em Solution, Template, Config. date_create, date_finished em Tracker.
  • Iconografia: Ícone ti ti-git-branch (Git branch) representa hierarquia e encadeamento de tarefas.

Limites de Design

  • Máxima profundidade recomendada: 4-5 níveis de encadeamento (viável, mas difícil de gerenciar além).
  • Múltiplas soluções para mesmo filho não suportada: Cada relação pai→filho é específica de uma solução. Se quer filho para "Sim" E "Pendente", cria 2 entradas.
  • Templates filhas herdam categoria: Herdadas de config "categoria padrão", não da pai. Prioridade usa padrão do template filho.
  • Tracker é imutável: Registros criados não podem ser editados. Apenas users_id_finished é atualizado ao finalizar filha (para auditoria completa).

Referências

  • Documentação técnica completa: ARCHITECTURE.md
  • Guia de navegação rápida: AI_INDEX_subtaskflow.md
  • Manual de uso (end-user): README.md
  • Test context: /data/.claude/contexts/test/modules/subtaskflow.md

Suporte: Abra uma issue com tag subtaskflow ou consulte o README.md para troubleshooting.


[GLPI 11] Esta atualização é para instâncias GLPI 11.
Download: Disponível diretamente pelo plugin NexTool no seu GLPI.
Acesse Nextools > Módulos e clique em Atualizar no card do módulo.
Os artefatos não são distribuídos pelo GitHub.

Etiqueta (filtro): modulo:subtaskflow[GLPI_11]

smartnotify 2.0.3 [GLPI 11]

19 Apr 16:12
7a464b3

Choose a tag to compare

Fixed

  • Botao "Marcar todas como lidas" retornava 403 (CSRF) -- action get (polling) gerava csrf_token apos session_write_close(), criando token fantasma nunca persistido na sessao. JS sobrescrevia token valido com o fantasma, causando falha no proximo POST
  • Queries de Changes (followups, tarefas, solucoes, documentos) falhavam com "Table glpi_groups_changes doesn't exist" -- tabela correta no GLPI 11 e glpi_changes_groups. Corrigido em notifications.php (7 ocorrencias) e list_indicator.php (1 ocorrencia)

[GLPI 11] Esta atualização é para instâncias GLPI 11.
Download: Disponível diretamente pelo plugin NexTool no seu GLPI.
Acesse Nextools > Módulos e clique em Atualizar no card do módulo.
Os artefatos não são distribuídos pelo GitHub.

Etiqueta (filtro): modulo:smartnotify[GLPI_11]

smartnotify 2.0.2 [GLPI 11]

13 Apr 10:26
7a464b3

Choose a tag to compare

Fixed

  • CronTask::getInstanceByName() nao existe no GLPI 11 - causava fatal error no install() impedindo instalacao do modulo
  • Cron migrado para classe dedicada PluginNextoolSmartnotifyCron (extends CommonDBTM) seguindo padrao whatsappbot
  • Registro de cron movido de install() para onInit()

Added

  • Arquivo inc/smartnotifycron.class.php para cron tasks

[GLPI 11] Esta atualização é para instâncias GLPI 11.
Download: Disponível diretamente pelo plugin NexTool no seu GLPI.
Acesse Nextools > Módulos e clique em Atualizar no card do módulo.
Os artefatos não são distribuídos pelo GitHub.

Etiqueta (filtro): modulo:smartnotify[GLPI_11]

smartnotify 2.0.1 [GLPI 11]

12 Apr 21:13
7a464b3

Choose a tag to compare

Fixed

  • session_write_close() movido para dentro do case 'get' apenas - POST requests agora mantem sessao aberta para validacao CSRF funcionar (fix: 403 Forbidden em "Marcar todas como lidas")
  • AudioContext criado somente apos interacao do usuario (click/keydown) para respeitar politica de autoplay do Chrome

[GLPI 11] Esta atualização é para instâncias GLPI 11.
Download: Disponível diretamente pelo plugin NexTool no seu GLPI.
Acesse Nextools > Módulos e clique em Atualizar no card do módulo.
Os artefatos não são distribuídos pelo GitHub.

Etiqueta (filtro): modulo:smartnotify[GLPI_11]

smartnotify 2.0.0 [GLPI 11]

12 Apr 14:02
7a464b3

Choose a tag to compare

Added

  • 5 novas fontes de notificacao: tarefas de tickets, tarefas de problemas, tarefas de mudancas, solucoes ITIL e documentos anexados
  • Filtro por tipo de ator (requerente/observador/tecnico) nas configuracoes de permissoes
  • Sincronizacao cross-tab via BroadcastChannel (com fallback localStorage)
  • Toggle unread: possibilidade de marcar notificacao como nao lida novamente
  • Auto-mark-read por URL: notificacoes marcadas como lidas ao abrir o item ITIL correspondente
  • List indicator: pontos vermelhos animados nas listagens de tickets/problemas/mudancas indicando itens com nao-lidos
  • Timeline separator: divisor "Novas mensagens" na timeline do item ITIL (via hook post_show_item)
  • Cron task automatico para limpeza de notificacoes lidas e logs antigos (SmartnotifyCleanup)
  • Sistema de sons via Web Audio API com 4 tons por prioridade (subtle/default/alert/alarm)
  • Agrupamento de notificacoes por item ITIL (grouping_enabled agora funcional)
  • 5 novas preferencias por usuario para os novos tipos de notificacao

Fixed

  • restrict_interface agora verificado em isUserAuthorized() (antes ignorado)
  • allowed_entities agora verificado em isUserAuthorized() (antes ignorado)
  • mark_read com try/catch para duplicatas UNIQUE KEY (evita erro 500)
  • purge_read usando $DB->delete() em vez de doQuery() raw SQL
  • manual.php com verificacao de permissao canManageModule (antes qualquer usuario autenticado podia enviar)
  • push_enabled default corrigido de 1 para 0 (alinhado com schema)
  • Link "Ver todas" no dropdown escondido para usuarios sem permissao de config

Changed

  • Intervalo de retencao agora usa retention_days do config em vez de -30 dias hardcoded
  • Manual notifications LIMIT agora usa max_notifications do config em vez de 50 hardcoded
  • Resolucao de nomes de usuario em batch (elimina N+1 queries)
  • session_write_close() adicionado em endpoints AJAX para evitar lock de sessao
  • Cache-Control do JS wrapper reduzido de 300s para 60s
  • PWA/Push desabilitado (stub) ate implementacao completa com VAPID keys
  • Tab Integracoes exibe aviso de "em desenvolvimento" para push notifications

[GLPI 11] Esta atualização é para instâncias GLPI 11.
Download: Disponível diretamente pelo plugin NexTool no seu GLPI.
Acesse Nextools > Módulos e clique em Atualizar no card do módulo.
Os artefatos não são distribuídos pelo GitHub.

Etiqueta (filtro): modulo:smartnotify[GLPI_11]

smartassign 1.5.12 [GLPI 11]

31 Mar 01:26
7a464b3

Choose a tag to compare

Corrigido

  • getBillingTier() declarava PAID incorretamente no codigo do modulo (deveria ser FREE conforme catalogo central)

[GLPI 11] Esta atualização é para instâncias GLPI 11.
Download: Disponível diretamente pelo plugin NexTool no seu GLPI.
Acesse Nextools > Módulos e clique em Atualizar no card do módulo.
Os artefatos não são distribuídos pelo GitHub.

Etiqueta (filtro): modulo:smartassign[GLPI_11]

mailanalyzer 3.4.12 [GLPI 11]

08 Apr 19:21
7a464b3

Choose a tag to compare

Corrigido

  • Erro 403 (AccessDeniedHttpException) ao ativar/desativar ou salvar configuração do módulo. Causa: chamada duplicada de Session::checkCSRF() no config.form.php -- no GLPI 11 o Symfony CheckCsrfListener já valida CSRF antes do script, e a segunda verificação consumia o token invalidando a requisição.

[GLPI 11] Esta atualização é para instâncias GLPI 11.
Download: Disponível diretamente pelo plugin NexTool no seu GLPI.
Acesse Nextools > Módulos e clique em Atualizar no card do módulo.
Os artefatos não são distribuídos pelo GitHub.

Etiqueta (filtro): modulo:mailanalyzer[GLPI_11]