Use getDisplayName for domain, support WORK_ORDER/VENDOR_ORDER link labels
- Engagement detail: show friendly domain label (Retail vs RETAIL) - Engagements tab: domain column uses getDisplayName - Add link labels for WORK_ORDER, VENDOR...
Add Engagements tab, detail page, and dashboard integration
- posApi: add Engagement types, getEngagements, getEngagementById - posDomainLabels: add getEngagementStatusLabel - PipelineEngagementsTab: AG Grid with domain/...
Complete remaining items (validation, product cache, status, recent items, focus); revert lazy load to fix build
Finish remaining plan items – low-stock warning, date filters, plan checkboxes
- Order Create: low-stock warning when adding product with trackInventory - Orders tab: date range filter (last 7 days, last 30 days) - Applications tab: date r...
Phase 4–5 – Dashboard reporting, error handling, a11y
Phase 4 – Dashboard & reporting: - Revenue by period (week, month, quarter) - Order count by status (DRAFT, AUTHORIZED, PAID, CANCELLED, REFUNDED) - Application...
Align Pipeline and Settings UI with commerce backend
- Update order status colors to match backend (DRAFT, AUTHORIZED, PAID, CANCELLED, REFUNDED) - Update application status colors (DRAFT, SUBMITTED, EXPIRED, CANC...
Full-page views, AG Grid, domain support, create screens
- Add getMortgageApplication(id) to posApi - Replace Orders tab: MUI Table -> AG Grid, row click -> /pipeline/orders/[id] - Replace Applications tab: cards -> A...
Enterprise-grade POS UI and API
- posApi: POSApiError class, fetchWithError, structured error handling - useToast + POSToast: centralized snackbar for success/error feedback - posUtils: format...
POS domain config, retail order line items, dynamic pipeline tabs
- Add getPOSConfig/updatePOSConfig to posApi, posDomainLabels utility - Extend createOrder with lineItems, add getOrder, RetailOrderLineItem type - PipelineOrde...
POS restructure: API via APIService, Settings for admin, Pipeline for users
- API proxy: POS requests forward to APIService (relays to SecurityService) - Settings: New POS System section under main settings + /settings/features/pos - PO...
Thêm biểu tượng vào trạng thái và phần mềm lọc thả xuống dưới trên trang đầu
Stabilize connection line physics and mouse proximity
- Only apply mouse proximity force after mouse has moved (avoids 0,0 affecting lines on load) - Guard mouse position with Number.isFinite before use - Clamp con...
Hợp nhất phần tựa nền và lưới cho phần dưới
- Dùng var (--color-primary) cho CRM, E-Mail, phần gạch dưới điện thoại - Dùng lưới 3-column trên lg cho điện thoại và điện thoại (3 lá) cho bố trí nhất định
Sửa đổi thẻ thị trường, trạng thái thị trường, lựa chọn lọc, đầu tiên ID L
- Thẻ thị trường: lọc bằng chì. Thị trường chứng khoán và nhà cung cấp dự án khi chọn thị trường - Trạng thái/ Trạng thái dưới: hãy dùng Statuss sẵn sàng cho cá...
Nút ngược trên đầu trang xem, phục hồi bộ lọc khi quay về từ ô xem
- Thanh đầu: thêm trở lại vào nút dẫn đầu duyệt (Arrowback) trong tiêu đề thông tin chì - Trình quản lý chì: bền bỉ lọc/b để mở phiên chạy trước khi mở đầu - Tr...
Switch to base28, remove 5 and S from alphabet
- Rename toBase30 to toBase28; use 28-char alphabet - Lead/doc formatters now use toBase28 internally
Agent column from assignedEmployee, base30 lead/doc ID formats
- Agent column shows assignedEmployee.fullName or 'Unassigned' - Add assignedEmployee to Lead type; use valueGetter for sort/filter - LeadManager: use toBase30L...
Shared toBase30 in app/utils/base30, use in LeadManager and DocManager
Improve lead grid with base30 IDs, raven icon, All Markets tab, and Market column
- Add toBase30() function for consistent ID representation across LeadManager and DocManager - Fix Grim status icon in tabs to use raven.ico (matching the datag...
Add mouse proximity physics effect to connection lines
- Checks 5 points along the curve for proximity detection - 80px effect radius - lines respond when mouse gets close - Force strength uses inverse square fallof...
Destination task item border matches line animation
- New destinationGlow keyframe animation with 4 phases - Border color animates through amber → gold → white → gold → amber - Matches the flowing gradient animat...
Auto-expand answers and highlight connected items
Answer Input (TaskSideBar): - New answer field appears immediately when typing in last field - Focus stays in current field while typing - Empty placeholder fie...
New answer field maintains focus while typing
- Added local state for new answer input (newAnswerValue) - Input no longer triggers array update on each keystroke - Answer is added on blur or when pressing E...
Auto-expanding answers and consistent background colors
TaskSideBar (Task Item Settings): - Removed "Add Answer" button - Added auto-expanding input field that appears after existing answers - Typing in the placehold...
Restore task item selection while keeping line clicks
- SVG container back to pointer-events-none (allows clicks to pass through) - Hit area paths use pointer-events: stroke (only the line itself is clickable) - Vi...
Add clickable relationship lines with selection and delete
- Lines can now be clicked to select them (with wider hit area for easier clicking) - Selected lines highlight in amber/orange color with animated flowing gradi...
Update sidebar colors and adjust line positions
- TaskSideBar background now uses 18% primary (same as task items) - TaskSideBar text changed to gray-900 for contrast - Input fields use 8% primary background ...
Position logo between background color and grid lines
- Removed duplicate backgroundColor from canvas-container - Background color is on scroll container, logo is fixed above it - Grid lines overlay on top of logo ...
Update task item colors and add centered logo background
- TaskItem background now uses color-mix (18% primary) - 10% darker than canvas - Removed hardcoded bg-white from TaskItem in favor of dynamic primary color - A...
Use primary color from globals.css for canvas background
- Background color uses color-mix to create very light primary (8% primary + white) - Grid lines use color-mix with 15% primary color for subtle contrast - Matc...
Source bullets on top of task items, +15px offset
Visual improvements: - Split SVG into two layers: lines (z-index: 1, behind) and bullets (z-index: 10, on top) - Source bullets now render AFTER task items in D...
Fix connection line source position, improve sag, add smart spawning
Fixes: - Source position now correctly uses offsetX/offsetY from where connection icon was clicked (not hardcoded to task item width) - Both established conne...
Add visual improvements to connection lines
- Add source bullet (circle) at start of each line, at right edge of task item - Arrow now ends at left of title area (vertical center), with 3px gap from borde...
Complete rewrite of connection lines with direct DOM manipulation
Key changes: - Use direct DOM manipulation (setAttribute) instead of React state for line updates - Single rAF loop runs continuously and updates all path eleme...
Fix connection lines during drag and after drop
- Use uncontrolled Draggable (defaultPosition, no position) so DOM updates every frame during drag; sync state only on onStop - Store node positions in state ...
Fix connection lines via DOM position sync (rAF)
- Read node positions from DOM every frame so lines stay attached when source or destination task items are dragged - Remove liveDragPosition; use nodePositio...
Check in all pending changes
- Tasks page: connection lines update during drag (liveDragPosition), contrast fixes (title/task item labels dark on light) - Various app, API, components, and ...
Editable title, rename add button, fix connection line coordinates
- Make automation stream title editable (click title or pencil; autoFocus input) - Rename button to 'Add Task Item To Automation Stream' - Use scroll-container-...
Như những gì anh thấy vận chuyển?
Tất cả những thứ đó đều đến trong không gian làm việc của anh. Bắt đầu với kế hoạch miễn phí và đọc lại trang này trong một tháng.
