Remove placeholder text from preview, allow sending without subject
- Empty email body in preview no longer shows "Start typing your email..." - Subject is no longer required to send — Send button is enabled with just a recipi...
টেমপ্লেটের প্রস্থ বৃদ্ধি করলে, প্রস্থ বৃদ্ধি পাবে
টেমপ্লেটের সোর্স ড্রপ-ডাউন এখন পূর্ণ করুন: ১ স্থান। সম্পাদনা/স্থ বাটন, বাটনের বাটন এবং প্রেরণ করুন শিরোনামগুলি fixed:0.
Wrap email body in template HTML when sending
The send handler was sending raw editor content without the template. Now wraps the body in the full template layout (far bg, margin, near bg, padding, header, ...
Remove horizontal scrollbar and extend preview to full height
- Use padding on the outer far-bg div instead of margin on the inner near-bg div to prevent width:100% + margin overflow - Set overflowX:hidden on the preview...
Repopulate member/org data when switching source scope
The sync ref was set once and never reset, so switching scope left the new scope's config with empty content fields (empty names, email, company, etc.) causing ...
Add "No Template" option to template scope dropdown
Adds a "No Template" option at the top of the template dropdown list. When selected, skips the backend fetch and renders plain email body without any header, si...
Move template dropdown, preview toggle, and attach to footer row
Move template scope dropdown, Editor/Preview toggle, and attachment button from the subject row to the bottom footer bar, aligned left. Draft and Send buttons s...
Fetch member/org data directly instead of through hooks
Removed useUserInfo, useSignatureData, and useImageResolver hooks which each had independent async fetch cycles causing race conditions where memberId/orgId wer...
Use example data in email preview when member/org data not loaded
The preview was rendering empty signatures because member/org data from useSignatureData returns empty strings while loading (or when memberId/orgId are 0). Now...
Always render template preview even without saved backend template
When no template is saved in the backend (404), fall back to DEFAULT_CONFIG instead of showing plain unformatted content. The preview now always renders with at...
Re-render templates client-side with real data in email preview
The preview was showing placeholder text ({{member.firstName}} etc.) because it used the pre-rendered placeholder HTML from the backend. Now the MessageTool: -...
Add template scope dropdown and preview tab to tool window email composer
Add to the MessageTool (tool window email composer, not the standalone MessageComposer): - Template scope dropdown in the subject row: Individual (default), D...
Add template scope selector and preview tab to email composer
- Add template scope dropdown (Organization / Department / Individual User) to the toolbar row, defaulting to Individual User - Fetch the saved template from ...
Wire signature templates to backend for persistent save/load
- Add backendAdapter.ts with bidirectional mapping between frontend SignatureConfig and backend flat entity format - Generate pre-rendered HTML with placehold...
Derive signature content from backend, add social links management
- Remove manual Personal Information, Company Information, and Social Links sections from the signature Content tab — data is now pulled automatically from ...
Simplify source selector, add dirty tracking and unsaved changes dialog
- Remove department/user sub-type selectors — templates are org-level for the organization, all departments, and all users - Remove the avatar icon to the lef...
Move Live Preview label into email header bar, remove Copy HTML button
Live Preview title and icon now sit right-aligned inside the To/Subject header bar. Removed the Copy HTML button and all clipboard logic.
Move source selector into builder header, 2-col templates, wider preview
- Move Source dropdown from top card into the builder panel header bar (matching the Live Preview title position) - Remove Undo and Reset buttons entirely - C...
Add near/far background colors, margin/padding sliders, center email option
Design tab additions: - Near Background color (content area background, default white) - Far Background color (outer email area background, default white) - Mar...
Add image scale sliders, signature image type, and footer alignment
- Add three image source selectors: Header Image, Signature Image, Footer Image (each with None / Member Avatar / Logo Simple / Logo Full options) - Add scale...
Replace photo upload with Header/Footer image source selectors
Replace the drag-and-drop photo upload with two dropdown selectors: - Header Image: None | Member Avatar | Logo Simple | Logo Full - Footer Image: same options ...
Add Header tab with 29 header templates and rename UI labels
- Add "Header" tab with 29 email header templates (banner, accent, branded, decorative categories) plus "No Header" option - Rename "Template" tab to "Signatu...
Prevent live preview panel from overflowing right edge
Change builder and preview panels from fixed flex-basis (55%/45%) to shrinkable flex so the gap between them is properly accounted for.
Add 21 additional email signature templates
Add elegant-border, two-column-grid, banner-top, gradient-accent, card-style, left-aligned-clean, right-photo, centered-minimal, executive, creative-blocks, tec...
Use richTextExtension.configure() instead of RichTextExtension class
RichTextExtension class is not exported from the published @lexkit/editor package. Use the exported richTextExtension instance with .configure().
Remove duplicate ContentEditable — use RichTextExtension's plugin
The richTextExtension already renders its own ContentEditable via RichTextPlugin. Having a second manual ContentEditable created two editable areas. Remove the ...
Rebuild email signature manager with template-based visual builder
Replace the basic Quill rich text editor with a structured, form-driven signature builder featuring 8 professional templates, design customization controls (col...
Overhaul KB editor and article page layouts
Fix editor component: - Wrap in flex column container so toolbar stays fixed and content area scrolls independently - Use position:relative on content wrapper...
প্রদর্শন/ গ্রাহক
PUPlipple বাটন যোগ করো (ছবি বিকৃত করা নিবন্ধের মধ্যে দেখার জন্য) DRFT (RDT) এবং AI চ্যাট থেকে মুছে ফেলা হবে। নিশ্চিতির সাথে মুছে ফেলার বাটন যোগ করুন ডায়লগ। ননp...
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 ...
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 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...
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 ...
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...
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 real-time unread badge updates
ই-মেইল ওয়েবস্কেট (Mebers) ব্যবহার করে একটি অনুরূপ ওয়েবমার্ক সংযোগ তৈরি করা হয়েছে আর আশাবাদীভাবে না পড়া পর্যন্ত চলবে। এখন শেয়ার করা ব্যবহার ই-মেইল ব্যবহারকা...
যেমন তুমি জাহাজ দেখেছ?
প্রত্যেকটা আপডেট স্বয়ংক্রিয়ভাবে আপনার কর্মক্ষেত্র স্বয়ংক্রিয়ভাবে. সপ্তাহের পর সপ্তাহের মধ্যে মুক্ত হয়ে তা দেখতে শুরু করুন।.