Используйте PublicChatVisitor displayName для запроса Имя посетителя
Инициированный посетителем запрашивающий жёсткий код билетов члену системы org, поэтому DTO всплывало имя владельца организации в колонке Запросителя. падение Н...
Участник-заявитель поддерживает права gating и двухрежимный вид билета
NavTop: покажите кнопку поддержки для любого права поддержки (агента или участника) - SupportButton: шлюз каждого выпадающего элемента по праву - Создать / Прос...
Добавить права участника-запрашивающего (133-136)
Добавляет четыре новых права на поддержку для неагентов: **************** (133) - CREATE SUPPORT TICKET (134) - REQUEST WEBINAR (135) VIEW MY SCHEDULED WEBINARS...
Добавить кнопку Sync Rights в SecurityRoleManager для организаций верхнего уровня
Кнопка видна только тогда, когда сайт organization.hasParent является ложным. Звонки POST/api/security/roles/sync-rights перезагружает таблицу ролей.
Gate Support/Settings by rights, исправление сетевой копии, загрузка на переключатель вкладок, разделитель nav
- Сетевая карта: обновленное описание с использованием динамической метки заголовка ветки - Карта поддержки: фиксированная 404 с помощью изменения href /help → ...
Извлечь RoleRightsSyncService и добавить конечную точку синхронизации прав
RoleRightsSyncService: централизует логику синхронизации прав на роль для обеих сторон ************************* Таблицы; Стартап и по требованию DataLoader: де...
Сделайте права на роль DTO управляемыми и добавьте синхронизацию прав модели безопасности
- SecurityRoleDTO.fromOrgRole(): перечислить все права Типовые значения с DB Настройки как поиск - новые права появляются с NOT SPECIFIED автоматически ********...
Обратите плохие депсы заголовка и сканирование истории, которые показали имя агента в заголовке
Заголовок чат поддержки нулевой, распространение изменения имени из истории
Добавьте чип типа членства и продвигайте / удаляйте карту статуса членства, удалите поле тайм-аута сеанса
Добавить конечную точку PATCH / членства для продвижения / понижения члена
Добавить нативное обновлениеMemberType и обеспечить запросы TeamMemberRow в MemberRepository
Поддержка чата UX — обновления имен, заголовков, количества уведомлений, datagrid
TicketChat загорается на VisitorNameChanged, когда приходит событие NAME CHANGED WS - ПоддержкаTicketWindow отправляет инструмент: заголовок с запрашивающим име...
Отображайте системные события как дружественный текст в чате поддержки посетителей
События системы NAME CHANGED больше не показывают сырой JSON в пузыре чата. Они отображаются как центрированная курсивная таблетка («Изменяет имя на имя»). Друг...
Показать наложение загрузки AG Grid вместо пустого состояния на странице лидов
Инициируйте состояние загрузки, чтобы сетка показывала «Загрузка приводит ...» до тех пор, пока не завершится первый приём, предотвращая вспышку «Нет найденных ...
Используйте getOrganizationByIdWithFeatures в AppAvailability Перехватчик
Resolves LazyInitializationException on /api/security/leads and all Другие пути, связанные с CRM/POS. Перехватчик называется org.getFeatures(). после закрытия т...
Добавить findByIdWithFeatures, чтобы с нетерпением загрузить Organization.features
JOIN FETCH предотвращает LazyInitializationException доступ за пределами транзакции (например, в AppAvailabilityInterceptor).
Показать город и подразделение посетителя билета гео ряд
Дисплей как «Город, Регион, Страна (IP)» — нули фильтруются таким образом Уменьшается, когда доступны только данные по странам
Экспозиция города и подразделения в гостевом геопоиске
- Расширение георезультатной записи с полями города и подразделения - Switch SupportTicketService.toDTO() для использования GeoLookupService (IP-уровень) Поиск)...
Добавить VisitorCity и VisitorSubdivision для поддержки TicketDTO
Добавьте парам URL вкладки на страницу /account для глубоких ссылок и повышения настойчивости
Состояние вкладки теперь синхронизировано с ****************, поэтому ссылки для конкретной работы вкладок и правильная вкладка остается выбранной на обновлении...
Создайте ошибку в GeoLookupService и добавьте NATS для сообщений агентов
- Исправить несоответствие типа списка в **************** Введите NatsMessageService в MediaController Опубликовать на chat.session.{guid} после того, как агент...
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...
**************** Использует экземпляр для типа MEMBER
Hibernate TYPE(m) = :тип возвращает 0 результатов при привязке к основанию Членский класс в объединенном наследстве. Для типа MEMBER возьмите все и Вместо этого...
Закладка Resolve Members показывает пустой из-за проблемы базового класса Hibernate TYPE
TYPE(m) Hibernate = :type JPQL filter возвращает 0 результатов при связывании Параметром является базовый класс участника (JOINED наследование). Это влияет на К...
Включить Hibernate SQL loging для диагностики возвращающихся запросов участников 0
Временно включенный org.hibernate.SQL=DEBUG, чтобы увидеть, что такое SQL JPQL-запрос генерирует конечную точку подписчиков.
Показать флаг посетителя, страну и IP в заголовке билета
- Добавить VisitorIpAddress, VisitorCountryCode, VisitorCountryName для поддержки - Render flag emoji + название страны + строка IP-адреса в TicketHeader
Показать флаг посетителя и местоположение в заголовке билета поддержки
Введите PublicChatVisitorRepository и GeoLiteLocationRepository в службу поддержки Заселить посетителяIpAddress, VisitorCountryCode, VisitorCountryName в toDTO(...
Добавить диагностическое ведение журнала, чтобы получить конечную точку участника и подписчика
Logs orgId, подсчет результатов запроса и статус на члена активен, чтобы помочь Диагностировать, почему на вкладке «Члены» отображается пустой список.
Отметьте сообщения посетителей как тип VISITOR MESSAGE, добавьте имя отправителя в сообщения GET
- PublicChatService: установите messageType=VISITOR MESSAGE, чтобы интерфейс мог различать Посетитель перекликается с ответами агентов на тему STOMP - MediaCont...
Относитесь к типу VISITOR MESSAGE как к всегда от них в TicketChat
Сообщения посетителей, опубликованные через PublicChatService, содержат сообщение Тип = VISITOR MESSAGE. Явно пометьте их как автора = «они» независимо от участ...
Отголоски Skip VISITOR MESSAGE в LiveSupportPanel STOMP
Сообщения посетителей теперь помечены тэгом messageType=VISITOR MESSAGE. Пропустите их в подписке STOMP, чтобы собственные сообщения посетителя не Повторно появ...
Заменить нативный WebSocket на STOMP/SockJS в LiveSupportPanel
- Добавить пакеты @stomp/stompjs и sockjs-client Подключение к медиа.{domain}/ws/public-chat через SockJS+STOMP WebSocket to api.{domain} - неправильный хост и ...
Исправьте сквозной публичный чат в режиме реального времени через STOMP/NATS
- Удалить требование внутреннего аудита от PublicChatWebSocketInterceptor Таким образом, посетители могут подключаться напрямую, используя только свой сессионны...
Добавить имя отправителя в ChatMessageDto для поддержки имен отображения чата
Проводите фильтр состояния и автоматические шаблоны в списке
- EmailTemplateController.list() теперь принимает ?status= param и фильтры используя существующий запрос репозитория findByOrgIdAndStatus - Автосемена требовали...
Автооткрытая поддержка всплывающих билетов в уведомлении NEW TICKET NATS
Когда приходит новый билет поддержки, бэкэнд теперь отправляет NEW TICKET STOMP в дополнение к PENDING COUNT. Контекст поддержки обрабатывает его с помощью инст...
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
Всегда запускайте тему резервирования на сохранение брендинга; пусть backend разрешает серверную часть домена
Add @Transactional to provision-theme for lazy domain loading; remove hardcoded domain from provision request
Как вы видите судоходство?
Все это приходит в ваше рабочее пространство самостоятельно. Начните с бесплатного плана и прочитайте эту страницу через месяц.
