Intelligentes Multi-Spalten-Layout für Lead-Formular hinzufügen
Restrukturieren Sie die Seite in ein Top-Level-Raster so Abschnitte horizontal zusammensetzen statt der Dehnung einzelner Felder: - Markt & Zuordnung verwendet...
Verwenden Sie /api/security/members/names für die Namensauflösung vongeordneten Mitgliedern
Die by-department-Endpunkt-Filter nur für aktive Teammitglieder, fehlen Zuweisungen an Mitglieder oder inaktive Mitglieder zu gründen. Wechseln Sie zu /names, k...
Hinzufügen /Names Endpoint Rückkehr-ID-Name für alle Mitglieder unabhängig von Staat
Die by-department Endpoint Filter nur für aktive Teammitglieder, aber Erweiterung Zuweisungen können sich auf Mitglieder oder inaktive Mitglieder beziehen. Verw...
Machen Sie Best Contact Time zu einem Freitext-Feld
Ersetzen Sie den Morning/Afternoon/Evening Dropdown auf dem Add Lead und Lead Bearbeitungsformulare mit Klartexteingabe anzeigen, damit Mitglieder spezifische A...
Vollbreite Leitungsform und Freigabe für klebrige Fußgänger hinzufügen
Lassen Sie die 1200px max-Breite auf /bles/neu, so dass die Form überspannt den Seitenbereich, und Bump Bottom Polsterung, so dass die klebrige Aktionsleiste ni...
Single-Lead Add Lead-Formular bei /leads/new
Refactor Add Lead aus einer in-page Multi-Tab-Seanne in eine dedizierte Route bei /leads/new, so dass es direkt verlinkt werden kann. Der aktuelle Markt ist vor...
************-Endpunkt hinzufügen
Gibt SalesType, SubType und CustomForms für einen Markt nach marketId so zurück die Lead-Form hinzufügen kann Untertypfelder und Einnahme-Benutzerdefinierte For...
Display-Name mit der richtigen Priorität im by-department endpoint
Priorität: member.usernameAlias - user.name.formatFull() - user.alias . user.username
Hinzufügen fehlendes istDisplayOnIntake-Feld zu FormField-Schnittstelle und neue Feld-literal
Verwenden Sie String-Typ für zugewiesenMemberId, um Präzisionsverlust zu verhindern
Serialisieren Sie Long als String, um JS-Präzisionsverlust auf großen CockroachDB-IDs zu verhindern
Anzeige auf Einnahme-Keehe hinzufügen, Auto-Lock, wenn erforderlich aktiviert ist
Coerce isDisplayOnIntake=true, wenn erforderlich=true in CustomFormService
Link zugewiesener Mitgliedsname zu ihrer Telefon-Einstellungen-Seite
Mitgliedsnamen-Anzeige und Unsign-Button zu den Registerkarten pro Instanz hinzufügen
Mitgliedernamen anzeigen und Unassign-Aktion zu org-Level-Erweiterungen hinzufügen
Wire VOIP-Konfiguration an Provider+Extension Selektoren mit Zuweisung Durchsetzung
Fügen Sie getippte DTOs, unsign API-Methode hinzu und aktualisieren MembershipPermissionsTab VOIP-Typen
DELETE-Zuweisungs-Endpunkt zu VoipExtensionsController für Admin hinzufügen unassign
MemberVoipConfigController für Mitglied VOIP config mit Erweiterungsauftrag hinzufügen
Die Abfragemethoden von findByAssignedMemberId zu PhoneExtensionRepository hinzufügen
ATF-Karte vollständig aussperren, wenn alle Felder durch aufgetragene Modelle gesperrt sind
Probe Master-Modell Endpunkt und fix angewendetModell org ID
- Ersetzen Sie angewendetesModell.source-basiertes Gate mit einer direkten Sonde von /api/security/master-Modell auf Mount; r.ok=false (409) bedeutet die org ...
Aktualisierung von Locale Übersetzungen und hash [überspringen ci]
Gate Zensur Tab Optionen durch angewandte Modell Einschränkungen
- Hide EDIT MASTER MODEL-Taste, wenn org durch einen Zweigtyp geregelt wird (AnwendengemitteltModel.source anstelle von unzuverlässigen Org context branchType...
Aktive Mailbox in URL-Abfrageparams
Das Umschalten von Postfächern aktualisiert jetzt die URL (?mailboxId, ?mailboxId, ?mailbox) so aktualisieren Sie den Browser stellt die gleiche Mailbox. Messag...
Mark-as-Lese und Nachrichten-Steigerung für gemeinsame/Mitglieder-Postfächer
Klassischer Modus lädt jetzt geteilte Mailbox-Nachrichten über die richtige /messages/{folder] Endpunkt (rief die nicht existierenden /Konversationen auf Endpun...
Mark-as-read für gemeinsame und Mitglieder-Postfächer
EmailController.setFlags akzeptiert jetzt eine optionale MailboxId Abfrage param und Routen durch resolveProviderWithMailbox, so dass Mitglieds-Mailbox-Flaggen ...
Genauer Provider-Verbindungsstatus von isConnected anzeigen
Erändert die alte Logik, die "Connected" für jeden Anbieter ohne Synchronisation zeigte Fehler (einschließlich brandneuer Anbieter, die nie getestet wurden). N...
Bestehendes Verbindungstestergebnis zu isConnected
- test() Endpoint saves isConnected=true/false to DB nach jedem Gesundheitscheck - update() Resets ist zum Nullen verbunden, wenn sich configJson ändert (Krehen...
Hinzufügen istConnected-Feld zu VoipProviderInstance
Nullable Boolean: null = nie getestet, true = letzte Prüfung bestanden, falsch = gescheitert. Erfordert KamoInitializerService Schemas Migration, um IS_CONNECTE...
Verwenden Sie extensionId als externe ID, nicht Relay-Node
FreePBX liefert die gleiche Relay-ID (ZXh0ZW5zaW9uOg== = "extension:") für jede Erweiterung, weil das ID-Feld nicht bevölkert ist. Mit ihm verursachte alle Erwe...
Behandeln Sie IMAPInputStream in getMessage, um ClassCastException zu verhindern
JavaMail kann einen IMAPInputStream anstelle eines dekodierten Strings von part.getContent(), wenn der Inhalt der Nachrichten nicht vorab abgerufen wurde. Die d...
Aktives Angebot Banner mit Live-Millisekunden-Countdown anzeigen
holt sich die aktive Promotion-Server-Seite auf der Startseite und macht eine HeroOfferBanner zwischen der Unterzeile und dem Free-Forever Callout. Das Banner z...
Wire Verfügbar/Unverfügbare Schalter auf Backend und beheben OFFLINE Präsenz Bug
- Umbenennen Paused/Aktiv-Chip in NavTop verfügbar/Nichtverfügbarkeit - Erste Verfügbarkeit auf mount und persist toggles über neue me/verfügbarkeit API abrufen...
Erhöhen Sie TTL von 90ern auf 300er, um falsche OFFLINE bei der Tab-Tedrängelung zu verhindern
Hinzufügen istAntwort für die Abteilung und die Endpunkte für mich/verfügbarkeit
Hinzufügen ist verfügbares Feld für Mitgliederverfügbarkeit toggle
Rewrite all GQL Abfragen/Mutationen gegen Live-Schema-Introspektion
Verifizierte jeden Feldnamen und Typ gegen das eigentliche FreePBX 17 Schema. Vollständige Reihe von Korrekturen: Anfragen: - fetchAllExtensions: Entfernen Sie...
Passe ausgewähltFolder an ThreadDetailAn so email:folder-changed fires with a valide folder
conversation.folder ist immer undefiniert, weil die Java ConversationEntity hat OrdnerIds (text[]) und kein Ordner-String-Feld. Dies führte zu loadThread zu ruf...
Korrigieren GraphQL Feldnamen zu holenAsteriskDetails
FreePBX API gibt "Hat du damit gemeint fetchAsteriskDetails?" Prüfen Sie die Abfrage und den Datenpfad-Zugangsoder entsprechend.
Wie, was Sie sehen Versand?
Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.