Update reviews page to match enriched backend response fields
Use uid as key, articleGuid for navigation, articleTitle for display, and dateSubmitted for date. Matches the new backend response format that includes article ...
Return article guid/title in pending reviews response
The KbArticleReview entity has @JsonIgnore on article, so the pending reviews endpoint was returning reviews without article details (guid, title). Now uses eag...
مضافا إليه الاستفسارات المتعلقة بالاستقصاءات المعلقة مع تفاصيل المادة
أضف ذلك يتساءلون عن (جون) يمكن أن يشمل الكيان الذي يُعاد النظر في قوائم المواد تلك المادة ما يلي: بدون إستقبال الإنزيم.
Surface actual backend error messages in article create/edit
Read errData.error (matching backend JSON format) instead of errData.message. Fix proxy to forward backend JSON errors directly instead of double-wrapping them ...
Add error handling to createArticle endpoint
Wrap createArticle call in try-catch to return proper JSON error responses instead of Spring Boot's default HTML error page.
Add missing richTextExtension to enable editor text input
The RichTextPlugin from richTextExtension is required for the Lexical is silently ignored.
Add ShadCN-inspired editor theme with visible table borders
Add a comprehensive CSS theme for the LexKit editor with styled typography, visible table cell borders, code block styling, blockquote formatting, and syntax hi...
Add shared KB layout with persistent tabs and fix reviews page error
Create app/kb/layout.tsx with KbNavBar tabs shared across Articles, Resources, and Pending Reviews pages. Remove duplicate outer shells and fixed positioning fr...
Replace Plate.js with LexKit editor and add KB resource management
Replace Plate.js editor with LexKit (Lexical-based) including custom Video, Audio, and MediaCard extensions. Add WordPress-style media browser with drag-and-dro...
Add org-level resource management and article-media linking APIs
Rewrite KbMediaService/Controller for org-level media CRUD with paginated listing, search, metadata update, and soft delete. Add article-media link/unlink/sync ...
تناقص عدد وسائط الإعلام التابعة للشركة من المقالات وإضافة دعم إدارة الموارد
العشرون من كبميديا من كبلور (نقل المادة FK)، إضافة KbArticleMedia اضافة العنوان/الوصف/الوصف مواعدة الحقول إلى كبميديا، إضافة MANAGE KB RESOURCES الحق، وتوسيع Kb...
Update navtop email badge when message is marked as read
Dispatch email:folder-changed event after marking a message as read, so MailButton re-fetches the unread count immediately.
Revert email WebSocket URL to same-origin Next.js rewrite path
Use /email-ws on same origin, proxied by Next.js rewrites to EmailService via k8s internal DNS. SockJS HTTP fallbacks (xhr-streaming, xhr-polling) work through ...
Remove hardcoded WebSocket headers from email middleware
Traefik v3 handles WebSocket Upgrade/Connection headers natively. Hardcoding them broke SockJS fallback transports (xhr-streaming, xhr-polling). Now matches med...
Connect email WebSocket directly to email.{domain} subdomain
Next.js rewrites cannot upgrade HTTP connections to WebSocket, causing the STOMP connection to silently fail after 3 retries. Now uses the same direct subdomain...
Auto-cert service not renewing expired SSL certificates
The auto-cert service was importing expired certs from shared storage and skipping Certificate CR creation, so cert-manager couldn't manage renewals. Also fixed...
Add 30s polling fallback for real-time email updates when WebSocket is unavailable
The WebSocket connection silently fails after 3 retries, leaving the UI permanently stale. This adds a 30-second polling interval as a reliable fallback across ...
Rename Team button to Chat Now and change panel to click-only activation
Align branch-setup and automation tabs with billing tab design
Standardize layout patterns across settings tabs: consistent padding, shared EmptyState component, matching table structure and header styles.
Move AI to Enabled Apps section and remove settings slideout search/recents
Remove the search bar and recent items section from the settings slideout panel. Move Artificial Intelligence from main topics to the Enabled Apps section so it...
Use shared EmailWebSocketContext for realtime unread card updates
(ميل بوتون) كان يخلق اتصالاً مكرراً عبر (ويب سوكيت) عن طريق استخدام (إيميل ويب سوكيت) و متفائلة في زيادة العد غير الجاهز الآن يستعمل مشاركة استخدام البريد الإلك...
تبسيط صفحة التطبيق بالرسومات المتاحة/الاحتفالات والنظرة القائمة فقط
إزالة لوحة الإحصائيات، وحانة البحث، ومصفوفات الفئة، والشبكات/القائمة، وملامح الهاتف. يتم تنظيم الطلبات الآن في كتابين و "الرسومات المعدلة" يبحرون إلى / /الإعلان...
Add Emojis, Character Map, and Text Converter tools to calculator menu
- Emojis: browse all emoji categories with search, select to view code points, copy as emoji/HTML/CSS - Character Map: browse Unicode blocks (Latin, Greek, Cyri...
Restyle graphing calculator to light theme and add mode-specific titles and icons
- GraphingMode now uses the same light calcColors scheme as other calculator modes - Graph line colors updated to work on light background - Calculator tool win...
Add dropdowns to navtop mail and calculator icons, show unread email badge
- Mail icon now shows red unread count badge and dropdown with "Create New Email" / "View My Emails" - Calculator icon now has dropdown with all 6 modes (adds p...
Route media feed WebSocket through media.* subdomain with retry limit
useMediaFeedWebSocket was connecting to same-origin /ws (404) instead of media.kamocrm.com. Fix URL construction to match useChatWebSocket pattern and add MAX_R...
Correct KB article field names to match backend entity
Frontend was using wrong field names (dateModified, content, authorName) instead of the actual backend fields (dateUpdated, contentJson, authorMemberId). Also r...
COALESCE type mismatch on security_level — column is varchar not int
The SQL query for user details during session creation was failing with 'incompatible COALESCE expressions: expected 0 to be of type varchar' because **********...
Remove debug logging, add email WS retry limit, proxy email WS through k8s DNS
Remove verbose console.log statements from useUserInfo, NavTop, NavPri, MemberListProvider, SessionManager, sessionMonitor, avatarUtils, and useChatWebSocket th...
Grant all rights when rights list is empty (rights system not yet enforced)
Correct hasRight to match flat rights array format and honor god mode
Session rights are stored as ["VIEW_DASHBOARD", ...] not [{name, setting}]. Also bypass right checks when GD (god mode) is true.
مثل ما ترى الشحن؟?
كل واحد من هذه تحديثات الأراضي في مكان عملك تلقائيا. ابدأوا بالمجان وشاهدوها تنمو بعد أسبوع.