Smart layout multicolonna per Aggiungi modulo di piombo
Ristrutturare la pagina in una griglia di alto livello quindi le sezioni compongono orizzontalmente invece di allungare i singoli campi: - Market & Assignment ...
Utilizzare /api/security/members/names per la risoluzione dei nomi assegnati
I filtri endpoint di by-department per il solo TeamMembers attivo, mancante assegnazioni ai membri di base o ai membri inattivi. Passare a /nomi che restituisce...
Aggiungi /names endpoint di ritorno id→ nome per tutti i membri indipendentemente dallo stato
I filtri endpoint di by-department per il solo TeamMembers attivo, ma l'estensione assegnazioni possono fare riferimento ai membri di base o ai membri inattivi....
Fare il miglior contatto Tempo un campo di testo libero
Sostituire il Morning/Afternoon/Evening dropdown su Aggiungi piombo e piombo Visualizza i moduli di modifica con un semplice input di testo in modo che i membri...
Aggiungi modulo di piombo e clearance per il piè di pagina appiccicoso
Getta la larghezza massima 1200px su /leads/new quindi il modulo abbraccia l'area pagina, e paraurti imbottitura in modo che la barra di azione appiccicosa non ...
Aggiungi modulo di piombo a /leads/new
Refactor Aggiungi Piombo da un pannello multi-tab in una rotta dedicata a /leads/new quindi può essere collegato direttamente. Il mercato attuale è passato attr...
Aggiunga... punto
Resi venditeTipo, subTipo, e personalizzatiForms per un mercato da marketId così il modulo Aggiungi piombo può rendere i campi sottotipo e l'assunzione di modul...
Risolvere il nome del display con una corretta priorità in endpoint by-department
Priorità: member.usernameAlias → user.name.formatFull() → user.alias → user.username
Aggiungi mancante èDisplayOnIntake campo a FormField interfaccia e nuovo campo literal
Utilizzare il tipo di stringa per assegnatoMemberId per prevenire la perdita di precisione
Serializzare Lungo come stringa per prevenire la perdita di precisione JS su grandi ID CockroachDB
Aggiungi Display su Intake toggle, sbloccare automaticamente quando necessario è abilitato
Coerce isDisplayOnIntake=true quando è necessario=true in CustomFormService
Aggiungi isDisplayOnIntake per creare/aggiornamento richiesta DTO
Collegare il nome del membro assegnato alla pagina delle impostazioni del telefono
Aggiungi la visualizzazione dei nomi dei membri e unssign pulsante per la scheda di estensioni per-instance
Mostra i nomi dei membri e aggiungi un'azione Unassign alla scheda estensioni di livello org
Configurazione del cavo VOIP per provider + selettori di estensione con l'esecuzione dell'assegnazione
Aggiungere DTO digitati, metodo API senza firma e aggiornare MembershipPermissionsTab VOIP tipi
Aggiungi l'assegnazione del DELETE endpoint a VoipExtensionsController per admin unassign
Aggiungi MemberVoipConfigController per il membro VOIP config con l'assegnazione dell'estensione
Aggiungi i metodi di query findByAssignedMemberId a PhoneExtensionRepository
Nascondi la scheda ATF interamente quando tutti i campi sono bloccati dal modello applicato
Sonda modello master endpoint e fix applicatoModello org ID
- Sostituire applicatoModel.source-based gate con una sonda diretta /api/security/master-model sul montaggio; r.ok=false (409) significa org è regolato da un ti...
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...
Persist casella di posta attiva nei param di query dell'URL
Cambiare le caselle di posta aggiorna l'URL (?mailboxType, ?mailboxId, ?mailbox) così rinfrescante il browser ripristina la stessa casella di posta. MessageBrow...
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...
Maniglia IMAPInputStream in getMessage per evitare ClassCastException
JavaMail può restituire un IMAPInputStream invece di uno String decodificato da part.getContent() quando il contenuto del messaggio non è stato pre-fetched. The...
Mostra banner di offerta attiva con conto alla rovescia dei millisecondi dal vivo
Possiede il server di promozione attivo sulla home page e rende un HeroOfferBanner tra la sottotena e il callout gratuito. Il banner mostra la quantità di scont...
Cavo Disponibile / Interruttore non disponibile per eseguire il backup e correggere il bug di presenza OFFLINE
- Rinominare Paused/Active chip a Disponibile/Non disponibile in NavTop - Prestare la disponibilità iniziale sul montaggio e perseverare con le nuove API me/ava...
Aumentare TTL da 90s a 300s per evitare il falso OFFLINE sulla scheda throttling
Add isAvailable to by-department risposta and me/availability endpoints
Riscrivi tutte le query/mutazioni GQL contro l'introspezione dello schema live
Verificato ogni nome del campo e digitare contro lo schema effettivo FreePBX 17. Set completo di correzioni: Query: - fetchAllExtensions: rimuovere il campo "v...
Passare selezionatoFolder a ThreadDetailView in modo e-mail:fuochi cambiati cartella con una cartella valida
conversazione.folder è sempre non definita perché la conversazione Java ha folderIds (text[]) non un campo di stringa cartella. Questo ha causato il carico. cal...
Corretto il nome del campo di GraphQL per fetchAsteriskDettagli
FreePBX API restituisce "Vuoi dire fetchAsteriskDetails?" — rinominare la salute controllare query e il suo percorso di dati accesso di conseguenza.
Come quello che vedi la spedizione?
Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.