يضاف المرفق الأول صفحات مع الاستخدام، ومقدمي الخدمات، والبرمجيات المتعددة الكلور، والخانات الأمنية
Ensure Junk and other system folders always appear in sidebar
Adds guaranteed system folders (INBOX, Sent, Drafts, Junk, Trash, Archive) to the folder tree even if they don't exist on the IMAP server yet.
Move handleBulkReportSpam after getSelectedRefs to fix declaration order
Wire spam reporting into MessageBrowser with toast and state handling
Add tooltips to WYSIWYG toolbar buttons in New Email tool
Applies title attributes to all Quill toolbar buttons and pickers after mount: Bold, Italic, Underline, Strikethrough, Text Color, Background Color, Heading, Al...
Dynamically update tool window title from email subject
Add tool:title event to the tool window system. The New Email tool dispatches it as the subject field changes, showing the subject as the window title (abbrevia...
Add New Email tool icon to NavTop bar
Adds a mail icon button to the left of the Softphone button that opens the New Email tool window.
Auto-refresh message list when draft is saved or email is sent
MessageTool dispatches email:folder-changed events after saving a draft (Drafts) or sending an email (Sent). MessageBrowser listens and refreshes if the affecte...
Match message tool color scheme to other tools and rename to New Email
Switch from dark theme to the light theme used by chat/calculator tools: light gray gradients, white inputs, var(--color-primary) accents. Rename tool from "New...
Restore full WYSIWYG toolbar options in message tool
Adds back headers, strike, background color, alignment, and image options. Toolbar wraps onto two lines when in compact (non-maximized) mode via flex-wrap.
Mark messages as read on IMAP server and refresh folder counts
Clicking a message now calls PUT **************** with seen:true on the backend, persisting the read state to IMAP. Sidebar folder unread counts refresh after m...
Integrate New Message composer into tool window system
Replace the standalone fullscreen/mini composer windowing with the shared tool window infrastructure (minimize, maximize, hexheads). MessageSystem.openNewMessag...
Move useState hook before early returns to fix React error #300
useState(syncing) was declared after conditional early returns, violating React's rules of hooks.
Quick reply send button - remove client OTK, add credentials and feedback
The quick reply was sending a client-generated OTK header that the proxy doesn't use (proxy generates its own). Removed the unnecessary OTK call, added credenti...
LabelPicker now fetches and displays current message labels
- Added getMessageLabels API call to emailApi - LabelPicker fetches applied labels on mount via GET endpoint - Toggle updates local state immediately for respon...
Wire up remaining unwired UI elements in messages page
- FolderSidebar: folder options button now opens rename/delete menu - FolderSidebar: Folder Settings button renamed to Manage Folders, toggles create folder - F...
Wire up quick reply Send Reply and Cancel buttons
The quick reply textarea and buttons were static with no state or onClick handlers. Now properly sends replies via the email API and clears the textarea on canc...
Add sync conversations button for backfilling from IMAP
Shows a "Sync Conversations" button when no conversations are found, triggering bulk indexing of existing IMAP messages into conversation view.
Open doc editor tab synchronously to avoid popup blocker
window.open() after an async fetch is blocked by browsers because it's no longer in the user-gesture context. Open a blank tab immediately on click, then naviga...
Add DOCS_EDITOR to fallback org features in layout and API route
The layout's server-side org fetch often uses the fallback org (no auth context during SSR), which was missing DOCS_EDITOR. This prevented the New Document butt...
Add New Document button to NavTop with DocsService integration
Adds DOCS_EDITOR app type (ID 16), NewDocumentButton component with document type picker popover, API proxy route for DocsService, and NavTop integration gated ...
Add search UI, virtual scrolling, IndexedDB caching, and offline mode
- Add SearchBar with operator autocomplete, saved/recent search suggestions - Add AdvancedSearchPanel with structured field-based query builder - Add VirtualMes...
Add enterprise email organization — labels, filters, shortcuts, quick actions
Plans 2-3: conversation threading views, email API layer with zustand store, label picker, filter rule builder, smart folder modal, keyboard shortcuts with help...
Add email HTML sanitization and CSS isolation via Shadow DOM
Replace raw dangerouslySetInnerHTML in MessageBrowser with a sanitized email renderer that uses DOMPurify + css-tree for HTML/CSS filtering and a closed Shadow ...
Resolve TypeScript errors in useEmailWebSocket hook
- Remove non-existent connectHeaders property from Client options - Replace client.active with client.connected for @stomp/stompjs compatibility
Rewrite email components to use real EmailService API
- FolderSidebar: fetch folders via API, real create folder, WebSocket refresh - MessageBrowser: real message fetch/search/star/delete with optimistic updates - ...
Add EmailService + email client design spec
Comprehensive design for new EmailService Java microservice and fully functional email client UI at /messages, connecting to existing Postfix/Dovecot mail stack...
Match create button styling to existing global.css pattern
Use component={Link} with href, var(--color-primary) colors, and consistent sizing to match the existing Orders and Applications buttons.
Move create buttons to right side of pipeline tab toolbars
Remove duplicate left-side buttons where right-side ones already existed, and reposition newly added buttons to the right after other toolbar controls.
Add "New" create buttons to all pipeline tab toolbars
Each pipeline tab now has a create button in its toolbar for quick record creation.
Give pipeline datagrid columns explicit widths with one flex column
Replace minWidth/maxWidth ranges with explicit width values so columns are properly sized for their data. Each grid has exactly one descriptive column with flex...
Remove toolbar margin gap between sub-tab row and datagrid
Remove mb:1 from toolbar wrapper in Commitments and Orders tabs, and add py:3px to the sub-tab panel for breathing room.
Remove padding from pipeline tab wrappers so datagrid matches sub-tab width
Seamless sub-tab and datagrid panel styling on pipeline market tabs
Remove the content Card wrapper for market tabs so there's no unnecessary panel behind the datagrid. Style the sub-tab row with rounded top / square bottom corn...
مثل ما ترى الشحن؟?
كل واحد من هذه تحديثات الأراضي في مكان عملك تلقائيا. ابدأوا بالمجان وشاهدوها تنمو بعد أسبوع.