Elimină apelurile de resetare a filtrului vechi după îndepărtarea filtrului de coloană
Drepturile de sprijinire a cererii de aderare și vizualizarea biletelor în două moduri
- NavTop: arată SuportButton pentru orice drept de sprijin (agent sau membru) - SuportButton: poarta fiecare element dropdown de dreapta Cere Webinar, Webinari...
Adaugă drepturile de sprijin ale membrilor (133-136)
Adăugă patru noi drepturi de sprijin pentru membrii neagenți: - *************** (133) - CREATE support TICKET (134) - CERERE WEBINAR (135) - view MY SCHEDULED W...
Elimină filtrele de coloană din filele membrilor și membrilor echipei
Adaugă butonul Sync Rights la SecurityRoleManager pentru orgile de nivel superior
Butonul este vizibil doar atunci când organizația.Are Parent este fals. Apeluri Post /api/security/rols/sync-rights apoi reîncărcați tabelul de roluri.
Suport poarta/Setari dupa drepturi, reparatie copie retea, incarcare pe comutator tab, separator nav
- Card de retea: descriere actualizata pentru a utiliza eticheta titlu ramura dinamica - Card de suport: fix 404 prin schimbarea href /help → /support; poartă d...
Extract RoleRightsSyncService și adăugați criteriul de evaluare a sincronizării
- RoleRightsSyncService: centralizează drepturile de rol sincronizare logică pentru ambele OrgRole Şi... tabele; pornire și cerere - DataLoader: delegaţi la Rol...
Asigură drepturile de rol pe care DTO-urile le-au condus și adaugă sincronizarea modelelor de securitate
- Security Roledto. from OrgRole (): enumerate all Role Right Valori de tip cu DB setările ca căutare - *************** Aceeași abordare bazată pe enum pentru ...
Restaurează deps de titlu rău și istoric scanare care a arătat numele agentului în titlu
Permite mai multe ferestre tichet de sprijin cu deduplicare ticketId
Adăugați cip de tip membru și promovați/demiteți pe Cardul de stare a membrilor, eliminați câmpul de pauză al sesiunii
Adaugă criteriul de evaluare PATCH/tip de membru pentru promovarea/propulsia membrilor
Adăugați update-ul nativTipul de membru și asigurați-văcăîntrebăridemararepentrumembru
Suport chat UX
- TicketChat fires onVisitorNameChanged when Name CHANGED WS event sosește - SuportTicketWindow expedies tool:title with requestorName on charge and privind sch...
Render system events as friendly text in musafir chat
NUME CHANGED evenimente de sistem nu mai arată JSON brut în balonul de chat; afişează ca o pastilă italiană centrată ("Schimbă numele la {numele}"). Alte evenim...
Arată AG Grid încărcare suprapus în loc de stare goală pe pagina conduce
Iniţializează starea de încărcare la adevărat astfel încât reţeaua să arate "Loading conduce..." Până la primul pachet se completează, prevenind un flash de "Nu...
Utilizați getOrganizationById WithFatures in ApppAvailability Interceptor
Rezolvă LazyInitializare Excepție pe /api/securitate / plumb și toate alte căi CRM/POS. Interceptor numit org.getFeatures () după încheierea tranzacției; noua m...
Adăugați găsiByIdWithFatures pentru a încărca cu nerăbdare Organizația.fetures
Alăturați-vă FETCH previne LazyInitializare Excepție atunci când caracteristicile sunt accesat în afara unei tranzacții (de exemplu, în AppAvailabilityIntercept...
Arată orașul și subdiviziunile în rândul geo vizitatorilor biletului
Afișează ca "City, Region, Country (IP) " degradează grațios atunci când sunt disponibile doar date de țară
Expune oraș și subdiviziuni în căutare geo vizitatori
- Extindeți recordul GeoResult cu câmpurile de orașe și subdiviziuni - Switch SupportTicketService.toDTO() to use GeoLookupService (IP-level) Lookup) în loc de ...
Adaugă vizitatorCity și vizitatorSubdivision to Support TicketDTO
Adăugaţi adrese URL la / pagina de cont pentru conectarea profundă şi reîmprospătarea persistenţei
Tab state este acum sincronizat cu ***************** deci link-uri la tab-uri specifice de lucru și tab-ul corect rămâne selectate pe pagina reîmprospătare.
Construiți eroare în GeoLookupService și adăugați NATS publica pentru mesaje de agent
- Fix Opţional vs Lista de nepotrivire de tip în ************* - Injectaţi NatsMessageService în MediaController - Publish to chat.session. agentul și vizitator...
Correct message sides in history and handle visitor name change events
- Use messageType=VISITOR_MESSAGE from API to determine left/right in history load - Add NAME_CHANGED system event rendering in SystemMessage and TicketChat
Real-time chat delivery, message sides, notifications, and name sync
- Keep NATS subscription alive on client unsubscribe to avoid breaking agent real-time delivery - Tag visitor messages with messageType=VISITOR_MESSAGE in getMe...
************** se folosește ca exemplu pentru tipul de membru
Hibernare TIP (m) =:type întoarce 0 rezultate atunci când sunt legate de bază Clasă de membri în moștenirea alăturată. Pentru tipul de membru, aduceți toate și ...
Rezolvă fila de membri care arată gol din cauza Hibernate TIP () clasa de bază
Tip hibernat (m) =:tip filtru JPQL întoarce 0 rezultate atunci când legat parametrul este clasa de bază a membrilor (moştenirea JOINED). Acest lucru afectează c...
Activați Hibernate SQL logare pentru a diagnostica membrii interogarea întoarce 0
Temporar activat org.hibernat.SQL=DEBUG pentru a vedea ce SQL tipul() Interogarea JPQL generează pentru criteriul final al abonaţilor.
Arată steagul vizitatorilor, țara și IP în antetul biletelor
- Adăugaţi vizitatoriIpAddress, visitorCountryCode, vizitatorCountryName to Support TicketDTO type - Render pavilion emoji + numele țării + rândul adresei IP în...
Arată steagul vizitatorilor și locația în antetul biletului de sprijin
- Injectați PublicChatVisitorRepositor și GeoLiteLocationRepositor în SuportTicketService - Populate visitorIpAddress, visitorCountryCode, visitorCountryName in...
Adăugați logare diagnostic pentru a obține membri și abonați obiectivul
Logs orgId, conte rezultat interogare, și pe membru este statutul activ pentru a ajuta Diagnosticați de ce fila membrilor arată lista goală.
Tag-ul de mesaje vizitatori ca tip VISITOR Message, adăugați numele expeditorului pentru a obține mesaje
- PublicChatService: set messageType=VISITOR Message astfel încât frontend poate distinge vizitatori ecouri din răspunsurile agent pe tema STOMP - MediaControll...
Trataţi tipul VISITOR Mesage ca întotdeauna-din-ei în TicketChat
Mesajele vizitatorilor publicate prin PublicChatService transmit mesajeType=VISITOR Message. Semnează-le explicit ca autor. Apare pe partea stângă, chiar dacă m...
Skip VIZITOR Mesage ecouri în LiveSupportPanel STOMP handler
Mesajele vizitatorilor sunt acum etichetate mesajType=VISITOR Mesage by the backend. Sari peste acestea în abonamentul STOMP astfel încât mesajele vizitatorilor...
Înlocuiește WebSocket nativ cu STOMP / SockJS în LiveSupportPanel
- Adăugaţi @stomp/stompjs şi pachete client - Conectează-te la media. WebSocket brut la api. - După conectarea STOMP, abonaţi-vă la /topic/chat/sesiune/{ghid} ş...
Fixează chat public de la un capăt la altul în timp real prin STOMP/NATS
- Elimina cerintele interne de la PublicChatWebSocketInterceptor astfel încât vizitatorii să se poată conecta direct folosind doar sesiunea Token - Include afiș...
Adaugă numele expeditorului la ChatMessageDto pentru nume de chat suport
Filtru de stare sârmă și șabloane auto-semințe necesare pe listă
- EmailTemplateController.list() acceptă acum ?status= param și filtre folosind interogarea depozitului existent ByOrgIdAndStatus - Seminte auto necesare modele...
Auto-deschis bilet de suport popup pe notificarea NEW TICKET NATS
Când ajunge un nou bilet de sprijin, platforma trimite acum un NEW TICKET Mesaj STOMP în plus față de Pending COUNT. SuportContContext se ocupă de ea prin instr...
Three support/chat issues — NATS relay, auto-popup, topic fallback
1. Switch SupportNotificationService and SupportStompRelayController from JetStream to core NATS — the CHAT_MESSAGES stream only covers chat.> so JetStrea...
Allow god-mode users to provision ownerless orgs; prefer FQDNs in domain resolution
Declanşează întotdeauna furnizarea-tema pe branding salva; permite backend rezolva domeniul server-side
Add @Transactional to provision-theme for lazy domain loading; remove hardcoded domain from provision request
Utilizaţi url în loc de href în BreadcrumbJsonLd pentru confirmarea contactului
Ca ceea ce vezi de transport maritim?
Fiecare dintre aceste actualizări aterizează automat în spațiul de lucru. Începe gratuit și urmăriți-l crească săptămână după săptămână.