Extract BCC recipients from IMAP messages
BCC header is retained on sent folder copies. Now extracted alongside To and CC so the frontend can display it in sent item previews.
Remove legacy /email iframe page
This page only embedded mail.kamocrm.com in an iframe. The built-in email client at /messages replaces it entirely.
Email nav icon now links to /messages instead of legacy /email iframe
The /email page embeds mail.kamocrm.com in an iframe (legacy webmail). The actual built-in email client is at /messages. Updated NavPri to point to the correct ...
Surface actual backend error message on feature toggle failure
Enable/disable now parses the error response body and shows the real error in the toast instead of a generic message. Helps diagnose what's actually failing on ...
Restore org context refresh after toggling completed-stage apps
Without router.refresh(), the org context stayed stale after enabling apps — NavPri, homepage, and settings never showed the newly enabled features. Now refresh...
Gate all feature cards and settings sections by org feature flags
Homepage: Documents card now uses isDocs (not deprecated isStorage/isDocManager), Calendar gated by isEmail, Notes gated by isNotes. Settings page: Commerce se...
Remove router.refresh() from feature toggle to prevent page reset
router.refresh() was causing the page to re-render and reset the active tab back to "Available" on every toggle. The cache invalidation and loadFeatures() call ...
Prevent duplicate apps in features list by excluding all existing types
The available list was only excluding features with enabled=true, so a disabled feature (isActive=false) appeared in both the features array AND the available a...
Invalidate org cache after feature toggle to reflect changes immediately
The org API route caches organization data in Redis for 24h. After enabling or disabling an app, the stale cache caused feature flags to remain false, making se...
Add settings pages for HRS, Docs, Support, KB, Notes, and Chat
Create ComingSoonTab shared component and 6 new feature settings pages with coming soon placeholders, feature flag guards, and help tips. Links from FeaturesMan...
Auto-refresh UI after feature toggle and role changes
FeaturesManager and SecurityRoleManager now call router.refresh() after mutations to re-fetch org context and user session data, reflecting permission and app c...
Auto-refresh Redis session rights after feature/role changes
FeatureController and SecurityRoleController now rebuild the caller's session rights in Redis after enable/disable, role create/update/delete, and recalculate-r...
Gate all nav links and settings pages by org feature flags
NavTop: hide AI chat, softphone, SMS, credits, notes, calendar, and contacts links when their corresponding app is disabled. Settings pages for CRM, Email, Phon...
Implement app management UI with backend integration and dynamic permissions
Rewrite FeaturesManager to use backend API for app enable/disable with root-org gating for in-dev apps. Update NavPri to gate all nav items by org feature flags...
Add FeatureController for org app enable/disable management
REST endpoints for managing organization app features: GET features list, POST enable/disable with CONFIGURE_SYSTEM permission check, root-org-only gating for i...
เพิ่มระบบการจัดการโปรแกรมด้วยประเภทของบริการ, สิทธิ, และการควบคุมคุณสมบัติ
ตั้งค่ารูปแบบบริการใหม่ และ AI CHATHAII SUPPOPRT, เพิ่ม SUPPORT/NOTETS/POS ประเภท, Deprocation Storage/DOICC CESTIIIIIIER / ผู้ตรวจการ เพิ่มข้อมูลรูปแบบบทบาทให...
Sync settings nav with actual tab definitions across all pages
Add missing Mailboxes and CalDav/CardDav entries to email section in both the settings main page and the NavPri slide-out drawer. Fix Account section card linki...
Split mailboxes tab into sub-tabs for primary, aliases, shared
Primary Mailboxes, Email Aliases, and Shared Mailboxes are now each under their own sub-tab within the Mailboxes settings page, matching the existing sub-tab pa...
Provider save field name and mailboxes tab member list endpoint
Provider save for non-configurable types now sends correct field name. Mailboxes tab now uses **************** endpoint which actually exists, instead of non-ex...
Provider GET returns both type and providerType, PUT accepts both
GET /api/email/provider now includes both 'type' and 'providerType' fields in the response for frontend compatibility. PUT now accepts 'type' as a fallback when...
เรียกคืนความทรงจํา ผมไม่ได้ยืนยันการล็อกอินผ่านวาระการเขียน
การเรียกกลับ regress จับภาพอนิจกรรม LOgin ปิดที่ จําฉันให้ดี ฉันโกหกตลอด ใช้กรรมการอ่าน ค่าของ checkbox สด แก้ไขตัวจัดการการออกจากระบบของ Kookies ด้วย ไม่มีเงื่...
Provider save for non-configurable types and mailbox member email mapping
**************** selections now immediately persist via saveProvider API instead of only updating local state. Mailboxes tab now correctly extracts emailAddress...
Add email alias and shared mailbox UI support
Composer "From:" dropdown for switching between primary, alias, and shared mailbox addresses. New "Mailboxes" 6th tab in email settings for org-wide admin manag...
Add email aliases and shared mailbox support
New MailboxManager provider capability interface for alias and shared mailbox CRUD. KamoMailMailboxManager implementation manages dovecot/postfix virtual_users ...
เพิ่มนามแฝงและกล่องจดหมายที่ใช้ร่วมกัน
สร้างคุณสมบัติของ JPA สําหรับอีเมล ISHShema: mailAliasentity (ชื่อเล่นต่อสมาชิก) ใช้งานร่วมกันMailbox Entities (จดหมายใช้ร่วมกันทั้งระบบ org - ทั่วโลก โดยมีใบร...
Fix PRE_TICKET DB constraint + redesign creation form
- Fixed CHECK constraint on support_ticket.status to allow ordinal 14 - Redesigned TicketCreationForm with modern card-based UI: - "How can we help?" landing ...
Add PRE_TICKET status with Start Chat option
- TicketCreationForm: two buttons — "Start Chat" (pre-ticket, no title required, just topic) and "Submit Ticket" (full ticket with title) - TicketHeader: "Con...
Add PRE_TICKET creation and convert-to-ticket endpoint
- createTicket: when preTicket=true, sets status to PRE_TICKET, skips assignment (no title required) - PUT /tickets/{id}/convert: converts PRE_TICKET to NEW, ...
เพิ่มสถานะ preckET และ priicket as for made
สถานะใหม่ ISP TICKET( 14) สําหรับวาระสนทนาครั้งแรกเมื่อผู้ใช้เริ่มใช้งาน พูดคุยโดยไม่ส่งตั๋วอย่างเป็นทางการ สามารถแปลงเป็น ตั๋วเต็มใบ ต่อมาโดยการตั้งค่าชื่อและส...
Extract topics array from { topics: [...] } API response
The GET /api/support/topics endpoint returns { topics: [...] }, not a raw array. All consumers now extract data.topics before using the array.
Open support tool window from error and 404 pages
Replace old /help/ticket/new navigation with tool:open CustomEvent to open the support popup window directly.
Merge pull request #4054 from Yashh56/cache-control
feat: add cache control headers to GET response
Merge pull request #4090 from ****************
feat(funnels): add per-step event property filters
Use settings timezone in revenue chart date range
The revenue chart was using the browser's local timezone instead of the timezone configured in analytics settings. This caused the chart to show different time ...
กําหนดบทบาทปริยายให้กับสมาชิกในการสร้าง
~ตอนนี้เครื่องราชอิสริยาภรณ์กําหนด "จํานวนวัน" (ทุกคน) รับบทจากองค์กร.RollememberID. ** ปัจจุบันมีการมอบหมายทั้ง "Members" (ทุกคน) บทบาทและบทบาท "สมาชิกไทย" จา...
Add POST **************** endpoint
Triggers org-wide member_rights_applied recalculation. Needed after schema migrations or manual DB changes to permissions.
เหมือนที่คุณเห็นการขนส่ง?
ทุก คน ที่ ได้ รับ การ ปรับ ปรุง เหล่า นี้ จะ ลง ไป ใน ที่ ทํา งาน ของ คุณ โดย อัตโนมัติ. เริ่มให้อิสระและดูมันเติบโตสัปดาห์แล้วสัปดาห์เล่า.