Disposição inteligente de várias colunas para adicionar o formulário de chumbo
Reestruturar a página em uma grade de topo para que as seções componham horizontalmente em vez de esticar campos individuais: - Mercado e atribuição usa um int...
Usar /api/security/members/names para resolução do nome atribuído
Os filtros de endpoint by-department apenas para membros ativos da equipe, faltando atribuição de membros de base ou de membros inactivos. Mudar para /nomes que...
Adicionar /names endpoint retornando id→name para todos os membros, independentemente do estado
Os filtros de endpoint by-department apenas para membros ativos da equipe, mas extensão As atribuições podem remeter membros de base ou membros inactivos. Usar ...
Criar o Melhor Contacto Temporizar um campo de texto livre
Substituir o dropdown da manhã/tarde/noite no adicionar chumbo e chumbo Ver os formulários de edição com uma entrada de texto simples para que os membros possam...
Largura total Adicionar forma de chumbo e folga para rodapé pegajoso
Largue a largura máxima de 1200px em /leads/new de modo que o formulário abrange a área da página, e estofamento de fundo para que a barra de ação pegajosa não ...
Adicionar um formulário de chumbo em /leades/novo
Refactor Adicionar Chumbo de um painel multi-tab em página em uma rota dedicada em /leades/new para que possa ser ligado diretamente. O mercado actual passou ?m...
- Não. endpoint
Returns salesType, subType e customForms for a market by marketId so o formulário Adicionar Chumbo pode renderizar campos de sub-tipo e formulários personalizad...
Resolver o nome da exibição com a prioridade correta no endpoint by-department
Prioridade: member.usernameAlias → user.name.formatFull() → user.alias → user.username
Adicionar falta éDisplayOnIntake field para FormField interface e novo campo literal
Usar o tipo de texto para o membro designado para evitar perda de precisão
Serialize Long como string para evitar a perda de precisão JS em grandes IDs do BarataDB
Adicionar o Visualizador ao Comutar a Entrada, bloqueando automaticamente quando necessário estiver ativado
Coerce isDisplayOnIntake=true when isRequired=true in CustomFormService
Ligar o nome de membro atribuído à página de configuração do telefone
Adicionar a exibição de nome de membro e desatribuir botão à página de extensões por instance
Mostrar os nomes dos membros e adicionar a acção Sem atribuir à página de extensões de nível org
Configuração VOIP de fio para fornecedores + seletores de extensão com execução de atribuição
Adicionar DTOs digitados, não atribuir o método API e atualizar os tipos de membrosPermissionsTab VOIP
Adicionar o endpoint de atribuição DELETE ao VoipExtensionsController para administração sem atribuição
Adicionar o membroVoipConfigController para a configuração do membro VOIP com atribuição de extensão
Adicionar findByAtributedMethods MemberId query to PhoneExtensionRepository
Ocultar cartão ATF inteiramente quando todos os campos são bloqueados pelo modelo aplicado
Ponto final do modelo mestre da sonda e correção aplicadaModelo org ID
- Substituir o portão aplicadoModel.source baseado em uma sonda direta de /api/security/master-model na montagem; r.ok=false (409) significa a org é governado p...
Gate censorship tab options by applied model constraints
- Hide EDIT MASTER MODEL button when org is governed by a branch type (use appliedModel.source instead of unreliable org context branchTypeID) - Hide ATF fiel...
Persista na caixa de correio ativa nos parâmetros de pesquisa de URL
Mudando caixas de correio agora atualiza o URL (?mailboxType, ?mailboxId, ?mailbox) tão refrescante o navegador restaura a mesma caixa de correio. O Navegador d...
Mark-as-read and message fetch for shared/member mailboxes
Classic mode now loads shared mailbox messages via the correct /messages/{folder} endpoint (was calling the non-existent /conversations endpoint). Fetching a fu...
Mark-as-read for shared and member mailboxes
EmailController.setFlags now accepts an optional mailboxId query param and routes through resolveProviderWithMailbox so member-mailbox flags are set against the...
Show accurate provider connection status from isConnected field
Replaces the old logic that showed "Connected" for any provider with no sync error (including brand-new providers that were never tested). New three-state badg...
Persist connection test result to isConnected field
- test() endpoint saves isConnected=true/false to DB after every health check - update() resets isConnected to null when configJson changes (credentials may h...
Add isConnected field to VoipProviderInstance
Nullable Boolean: null = never tested, true = last test passed, false = failed. Requires KamoInitializerService schema migration to add IS_CONNECTED column.
Use extensionId as external ID, not Relay node id
FreePBX returns the same Relay id (ZXh0ZW5zaW9uOg== = "extension:") for every extension because the id field is not populated. Using it caused all extensions to...
Lidar com IMAPInputStream no getMessage para evitar ClassCastException
JavaMail pode retornar um IMAPInputStream em vez de uma string decodificada de part.getContent() quando o conteúdo da mensagem não foi pré-fetched. A moldes dir...
Mostrar banner de oferta ativa com contagem decrescente de milissegundos ao vivo
Fetches o lado ativo do servidor de promoção na página inicial e renderiza um HeroOfferBanner entre a sub-linha e a chamada gratuita para sempre. O banner mostr...
Conexão disponível/indisponível para backend e corrigir bug de presença OFFLINE
- Renomear o chip pausado/ativo para disponível/indisponível em NavTop - Obter disponibilidade inicial na montagem e persistir comuta através da nova API de eu/...
Aumente o TTL de 90s para 300s para evitar falsos OFFLINEs na frenagem de tabulações
Adicionar éDisponível para resposta de by-department e me/availability endpoints
Reescreva todas as consultas/mutações do GQL contra a introspecção do esquema ao vivo
Verifiquei cada nome e tipo de campo contra o esquema atual do FreePBX 17. Conjunto completo de correcções: Consultas: - obterAllExtensions: remover o campo 'v...
Passe selectedFolder to ThreadDetailView so email:folder- changed fires with a valid folder
conversation.folder é sempre indefinido porque o Java ConversationEntity tem folderIds (text[]) não um campo de string de pastas. Isto fez com que o loadThread ...
Correct GraphQL field name to fetchAsteriscoDetalhes
A API do FreePBX retorna "Você quis dizer fetchAsteriscoDetalhes?" — renomear a saúde verificar consulta e seu acessor caminho de dados em conformidade.
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.