Rozwiązywanie karty Członków pokazujących puste z powodu problemu klasy podstawowej Hibernate TYPE()
Hibernate's TYP(m) -:: Typ filtr JPQL zwraca 0 wyników, gdy jest związany Parametr jest podstawową klasą członków (dwudzieła JOINED). To wpływa na Punkt końcowy...
Włącz Hibernate SQL logging do diagnozowania zapytania członków zwracających 0
Tymczasowo włączona org.hibernate.SQL-DEBUG, aby zobaczyć, co SQL the TYPE() Zapytanie JPQL generuje dla członków-subskrybent punktów końcowych.
Pokaż flagę dla odwiedzających, kraj i adres IP w nagłówku biletów
- Dodaj visitorIpAddress, odwiedzającyCokrajod, odwiedzającyCountryName do SupportTicketDTO typu - Render flaga emoji + nazwa kraju + wiersz adresu IP w TicketH...
Pokaż flagę dla odwiedzających i lokalizację w nagłówku biletu wsparcia
- Wstrzyknąć PublicChatVisitorRepository i GeoLiteLocationRepository do SupportTicketService - Populate visitorIpAddress, odwiedzającyCokrad, odwiedzającyCountr...
Dodaj rejestrowanie diagnostyczne, aby uzyskać punkt końcowyMembersAndSubscribers
Logs orgId, liczba wyników zapytań i naczłonkowanie is-members Status to help Diagnozuj, dlaczego zakładka posłów pokazuje pustą listę.
Oznacz wiadomości odwiedzające jako typ VISITOR_MESSAGE, dodaj nadajnikName do wiadomości GET
- PublicChatService: ustawione messageType-VISITOR_MESSAGE, aby Frontend mógł się rozróżnić Odzwierciedla echa odpowiedzi agentów na temat STOMP - MediaContro...
Traktuj typ VISITOR_MESSAGE jak zawsze z nich w TicketChat
Wiadomości odwiedzających publikowane za pośrednictwem PublicChatService przenoszą komunikatType-VISITOR_MESSAGE. Wyraźnie zaznaczcie je jako autor-twór' niezal...
Pomiń VISITOR_MESSAGE echos w obsłudze LiveSupportPanel STOMP
Wiadomości dla odwiedzających są teraz oznaczone messageType-VISITOR_MESSAGE przez backend. Pomiń te w subskrypcji STOMP, aby własne wiadomości odwiedzającego n...
Wymień natywny WebSocket STOMP/SockJS w LiveSupportPanel
- Dodaj pakiety .stomp/stompjs i sockjs-klient - Połącz się z mediami.-domain/ws/public-chat przez SockJS+STOMP zamiast Surowy WebSocket do api.-domain, który...
Naprawiać czat publiczny w czasie rzeczywistym przez STOMP / NASS
- Usuń wewnętrzny wymóg z PublicChatWebSocketInterceptor Aby odwiedzający mogli połączyć się bezpośrednio przy użyciu tylko za pomocą sessionToken - Dołącz wy...
Podsłuchij filtr stanu i automatyczne ziór wymagane szablony na liście
- EmailTemplateController.list() akceptuje teraz ?status-param i filtry Używanie istniejącego zapytania repozytorium findByOrgIdAndStatus - Automatyczne nasie...
Auto-otwarty bilet wsparcia wyskakującego okienka na NEW_TICKET NATS
Kiedy pojawi się nowy bilet wsparcia, backend wysyła teraz NEW_TICKET Komunikat STOMP oprócz PENDING_COUNT. SupportCountContext Obsługuje go, wysyłając narzędzi...
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...
Zezwalaj użytkownikom trybu god-mode na zapewnienie org bez właściciela; preferować FQDN w rozdzielczości domeny
Zawsze uruchamiaj temat zapisu na brandingu; niech backend rozwiąże po stronie serwera domeny
Write contact form description as chat message on public ticket creation
The description was only stored on the ticket entity and never appeared in the chat window. Added writeTextMessage() helper and call it after the system event s...
Oddzielny numer biletu / rzędy odznaki od tytułu w TicketHeader
Tytuł dzielił się teraz flex row z numerem biletu i dwoma Odznaki, powodując ich odcięcie. Teraz numer biletu i odznaki zajmują Własny kompaktowy rząd, a tytuł ...
Dodaj stronę potwierdzaną /kontaktową z animowanym bohaterem, osią czasu i CTA
Zastąp komunikat sukcesu w linii w formularzu kontaktowym dedykowaną premią Strona z potwierdzeniem: animowany znak kontrolny SVG z pęknięciem cząstek, "What Ha...
Uchwyt na klucze biletów w odpowiedzi na listę biletów wsparcia
MediaService zwraca bilety: [...], sumElementy ? ale frontend Sprawdzone tylko dla data.content, powodując, że lista zawsze renderuje pustą.
Użyj PATCH /org/Aid / kolory do zapisywania marki, aby uniknąć zniunkowej awarii booleanowej
Dodaj PATCH /org/'id'/colors endpoint, aby bezpiecznie zaktualizować tylko pola palety kolorów
Prawidłowy port MEDIASERVICE_URL od 443 do 80 dla formularza kontaktowego
Usługa ClusterIP tylko eksponuje port 80; przy użyciu 443 z http spowodował ConnectTimeoutURor na każdym formularzu kontaktowym.
Dodaj sekcję ustawień org (strefa czasowa, wiek req, flagi zawartości, opis, alias); usuń przyciski Podgląd/AddDomain
Przeprojektuj LabelManager — edycja sekcji inline, naprawę uszkodzonego zapisu, domyślnie tylko do odczytu
Przepisywanie etykietManager.tsx z wzorami odczytu/edit. Naprawia zepsutą oszczędność Przycisk (validateForm zablokował zapisy, ponieważ pola kontaktowe / firmy...
Dodaj walidator domeny KamoMail, aby zablokować międzystolec adresy e-mail
Przedstawia komponent KamoMailDomainValidator, który sprawdza, w warstwie serwisowej, czy przesłana domena e-mail pasuje do zweryfikowanej domyślnej domeny org....
Enforce Ograniczenie domeny KamoMail w skrzynce pocztowej, alias i tworzeniu wspólnej skrzynki pocztowej
Gdy KamoMail jest dostawcą poczty e-mail, członkowie mogą tworzyć tylko skrzynki pocztowe, aliasy i udostępnione skrzynki pocztowe przy użyciu zweryfikowanej do...
Przeczytaj logoFullExt z config.json dla dynamicznego rozszerzenia logo
Odczytaj logoFullExt from config.json; fix site.webmanifest path to favicon subdirectory
Przeczytaj logoFullExt z config.json dla dynamicznego rozszerzenia logo
Orgowanie tematów — WebSocket hak, panel rezerwowy, okablowanie LabelManager, wyzwalacz DNS, bg resize, kontekst ThemeConfig
Dodaj przepisy tematyczne — wydawca NATS, punkt końcowy, przesłanie logo
Dodaj poleFullExt do podmiotu organizacji; dodaj listęObjects do MinIOStorageService
Ukryj zdanie modelu bezpieczeństwa dla Członków, naprawić odznakę nakładkę na karty typu branch
Użyj klucza sesji memberID i włącz CreatorType w krzykliwej odpowiedzi na grupy gałęzi
Dodaj findBranchTypeID zapytań z pochodnie do OrganizationRepository
Obsługuje nowy /branch-typy/a--, punkt końcowy w SecurityService w celu sprawdzenia, czy rodzaj oddziału ma aktywne orgi przed usunięciem.
Dodaj punkty końcowe GET /branch-types/kreatable i /-id/usages punkty końcowe
/krealny typy gałęzi zwrotów filtrowanych przez typ twórcy dzwonionego (OWNERS/TEAM_MEMBERS/MEMBERS) za pośrednictwem AppliedModelEnforcementService. /-id/usag...
Skreślenie typu rozgałęzienie osłony przed aktywnymi użyciami org
Przed usunięciem chipa typu gałęzi, frontend teraz dzwoni Jeśli istnieją jakieś orgi, to pokazuje dialogowe informacyjne wymieniające je i instruuje administrat...
Użyj poprawnego klucza sesji "memberID" zamiast "MID"
KSessionService przechowuje identyfikator członka pod kluczowym "dentyfikatorem", ale oba - i Administratorzy czytali session.get ("MID"), który zawsze zwracał ...
Napis biletowy na żywo na NavTop — SupportCoContext subskrybuje NATS via STOMP, odznaki oczekujące na liczenie
Live pending support ticket count via NATS — notify org owner on new tickets, add pending-count REST endpoint
Ustaw nazwę właściciela orgAlias na tworzeniu i naprawiać alias członkowski kontaktowy z witryną
Jak to, co widzisz żeglugę?
Każda z tych aktualizacji automatycznie ląduje w miejscu pracy. Zacznij za darmo i obserwuj, jak rośnie tydzień po tygodniu.