Gate Support/Settings by 권리, 수정 네트워크 복사, 탭 스위치에 로드, nav 배당
- 네트워크 카드 : 동적 지점 제목 라벨을 사용하는 업데이트 설명 - 지원 카드 : href /help → /support를 변경하여 고정 404; isSupport + VIEW SUPPORT에 의해 게이트 - 설정 카드 (homepage) : 0 설정 관련 권리를 가진 회원을위한 숨...
지원 채팅 UX - 이름 업데이트, 제목, 알림 카운트, datagrid
- NAME CHANGED WS 이벤트가 도착했을 때 TicketChat 화재 onVisitorNameChanged - SupportTicketWindow는 공구를 파견합니다: 짐과에 requestorName를 가진title 이름 변경; 페이지 새로 고침없이 실시간 업데이트 티켓 상태 ...
Render system event as friendly text in 방문자 지원 채팅
NAME CHANGED 시스템 이벤트는 더 이상 채팅 버블에 JSON을 표시하지 않습니다. 그들은 중심의 italic pill로 표시 ("이름을 {name}로 변경). 다른 시스템 이벤트는 조용히 무시됩니다.
지도 페이지에 빈 상태 대신 AG Grid 로드 오버레이 표시
True로 로드 상태를 초기화하기 때문에 그리드는 "로드 리드 ..."를 보여줍니다. 첫 번째 fetch가 완료 될 때까지, "No lead found"의 플래시 방지.
AppAvailability의 getOrganizationByIdWithFeatures 사용 회사연혁
/api/security/leads 및 모든 것에 LazyInitializationException을 해결합니다. 다른 CRM/POS-gated 경로. org.getFeatures()라는 인터셉터 거래 종료 후; 새로운 방법 eagerly fetches 기능 읽기 전용 거래 안쪽에 단일...
FindByIdWithFeatures eagerly 로드 Organization.features에 추가
JOIN FETCH는 기능이 있을 때 LazyInitializationException을 방지합니다. AppAvailabilityInterceptor에서 거래 (예: AppAvailabilityInterceptor) 밖에 접근.
GeoLookupService에서 오류를 작성하고 에이전트 메시지에 대한 NATS 게시를 추가
- 옵션 수정 대 목록 유형 잡기 *********** - NatsMessageService를 MediaController에 주입 - 채팅에 게시.session.{guid} 에이전트가 메시지를 작성한 후 대리인과 방문자는 페이지를 새로 고침 없이 STOMP를 통해 즉시 그것을 보십시오
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) = :type은 0개의 결과를 기본으로 설정할 때 반환합니다. 회원 클래스 가입 상속. MEMBER 유형의 경우, 모두 fetch 필터 !(m 인스턴스 TeamMember) 대신.
Resolve 회원 탭은 Hibernate TYPE() Base-class 문제로 비어 있는 것
Hibernate's TYPE(m) = :type JPQL 필터가 0 결과를 반환합니다. 매개 변수는 기본 회원 클래스 (JOINED 상속)입니다. 이 영향을 회원 구독 종료. findByOrganizationId() +로 교체 exampleof TeamMember filter in J...
태그 방문자 메시지로 VISITOR MESSAGE 유형, add senderName to GET 메시지
- PublicChatService: messageType=VISITOR MESSAGE를 설정하여 프론트엔드를 구분할 수 있습니다. STOMP 주제에 대한 에이전트 응답에서 방문자 에코 - MediaController.getMessages: sender 포함 이름 필드 그래서 에이전트는...
TicketChat의 항상부터
PublicChatService를 통해 게시된 방문자 메시지는 messageType=VISITOR MESSAGE를 수행합니다. Explicitly 마크 this as author='them' 관계없이 memberId 그래서 그들은 항상 에이전트의 memberId가 시스템 구성원을 일치하...
LiveSupportPanel STOMP 핸들러의 Skipors MESSAGE 에코
방문자 메시지는 이제 태그 messageType=VISITOR MESSAGE 로 backend. STOMP 구독에서 이것을 건너 뛰기 그래서 방문자의 자신의 메시지는하지 않습니다 응답을 지원하는 경우 왼쪽에 다시 나타나십시오.
상태 필터 및 목록에 자동 입력된 필수 템플릿
- EmailTemplateController.list()는 이제 ?status= param 및 필터를 허용합니다. 기존 findByOrgIdAndStatus 저장소 쿼리 사용 - 초기 묘목을 놓은 orgs에 대한 Auto-seeds 필수 템플릿 (seedForOrgIfMisssing ...
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
Add @Transactional to provision-theme for lazy domain loading; remove hardcoded domain from provision request
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...
TicketHeader의 제목에서 별도의 티켓 번호/배지 행
타이틀은 티켓 번호와 두 개의 nowrap flex 행을 공유했습니다. 배지, 그것을 잘라 내기. 지금 티켓 번호 및 배지 occupy 자신의 컴팩트한 행과 제목은 전체 폭 행을 최대로 가져옵니다. 감싸기의 2개의 선.
지원 표 명부 응답에 있는 표 열쇠를 취급하십시오
MediaService 반환 { 티켓: [...], totalElements } 하지만 frontend 데이터만 검사합니다. 콘텐츠는 항상 빈을 렌더링하는 목록을 발생시킵니다.
Add PATCH /org/{id}/colors endpoint to safely update only color palette fields
MEDIASERVICE URL 포트 443에서 80까지의 연락처 양식
ClusterIP 서비스는 포트 80만 노출; 443을 사용하여 http가 발생 ConnectTimeoutError 모든 연락처 양식 제출.
Use memberID session key and include creatorType in creatable branch-types response
Use correct session key 'memberID' instead of 'MID'
KSessionService stores member ID under key 'memberID' but both **************** and OrganizationController were reading session.get("MID") which always returned...
Set org owner usernameAlias on creation and fix website-contact member alias
Exclude master model from models list; add debug log to child-org creation check
SecurityModelController now filters out the org's master model (identified by org.getMasterModelID()) from the /api/security/models response — it is managed exc...
Read session rights as List<String> names, not CSV of integer IDs
Session rights are stored as a JSON array of RoleRightType name strings. Both **************** and OrganizationController were casting them to String (causing C...
BranchSetupManager의 연령대 체크 박스에 더블 투글을 중지
Box onClick and Checkbox onChange 두 번의 클릭으로, 두 번의 클릭으로 국가 변경 FormControlLabel에서 propagation을 중지하십시오. 1개의 핸들 화재.
StackingOrdersManager에서 MUI v7 Grid size prop 사용
MUI v7 Grid2는 크기 객체 prop로 xs/sm/md를 대체했습니다.
StackingOrdersManager에서 deprecated MUI Grid 아이템 prop 제거
MUI Grid v2는 아이템 prop을 떨어졌다; 그리드에서 크기 props를 직접 사용합니다.
배너 텍스트 wobble 방지 카운트 다운 폭을 안정화
Tabular-nums를 가진 고정 폭 monospace 콘테이너는 배치를 막습니다 카운트다운 자리로 이동하면 50ms마다 변경됩니다.
Align model-editor SERVICE TYPES 와 백엔드 서비스형 enum
편집기의 앱 목록은 백엔드 ServiceType enum에서 무시했습니다. - 8개의 비선형 앱(AI SUPPORT, SUPPORT, KNOWLEDGE BASE, 참고, POS, DOCS, MEET, CALCULATOR). - DOC MANAGER, DOC CLASSIFIER 포함 3개...
AppConfig 교체는 upsert-only, 결코 payload 부과에 삭제하지 않습니다
이전 동작은 어떤 기존의 app-config 행을 삭제한다. serviceType 결제가 완료되지 않았습니다. 즉, 부분적인 페이로드를 침묵으로 설정 데이터 손실 : 20 ServiceTypes의 15에 대해 알고있는 UI 5개의 행을 떨어뜨리고, 효과적으로 그 앱을 강제로 NOT AV...
FeatureRequests i18n 키가 올바른 홈 네임스페이스로 이동
Keys는 namespace에 대해 실수로 배치되었습니다. 섹션이 표시됩니다. 번역된 텍스트 대신 원시 키 문자열.
