Comment
- tạo raRetailOrder: kiểm tra yêu cầu - tạo Lâm: kiểm tra vô số, số lượng > 0, unitPrice > = 0 hợp lệ hó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...
Resolve Map type inference in POS controllers for CI compilation
- Use explicit Map<String, Object> in ResponseEntity Map.of() calls - Fixes 'incompatible types: inference variable V has incompatible bounds' when mixing DTO...
Add POS controllers for retail products, inventory, and orders
- RetailProductController: CRUD for products - RetailInventoryController: inventory stock management - POSController: orders and mortgage applications
DataLoader IOException import and mock lead assignment FK errors
- Add missing java.io.IOException import for copyJavaEnumsToNextJS - Use saveLead instead of saveLeadWithAssignment for mock data to avoid lead_assignments FK...
Thêm thực thể miền PRS/invenry, DTOs, repos và dịch vụ
- Thêm đậu POS (sai, cho thuê, thế chấp, dài hạn, nhà cung cấp) - Thêm RetailProcing, RetailInvenoryStock, Retail Order, Mortgage App DTOs - Thêm tiền tố, phục ...
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
Update Traefik routes: themes.* assets now only load from k1m1 minio instead of balancing across k0m1, k1m1, and k2m1
Merge pull request #4006 from ****************
feat: add SKIP_BUILD_GEO env variable
Use i18n for board component strings, show controls in edit mode, require website before editing
- Replace raw strings with useMessages hook in BoardColumn and BoardComponentSelect - Show WebsiteControls on edit screen so users can test filters - Disable bo...
Add board component selector with live preview
Allows users to select and inject analytics components into board cells. Includes component registry, renderer, selector modal with category menu, config fields...
Add Web Vitals performance tracking (LCP, INP, CLS, FCP, TTFB)
End-to-end performance metrics tracking: dedicated database table with percentile aggregation, tracker collection behind data-perf attribute, /api/send handling...
Fix team boards not appearing after creation
Board creation from team context was not passing teamId to the API, causing boards to be saved as personal boards instead of team boards.
Add UserButton to SideNav, refactor NavButton into TeamsButton
- Create UserButton component at bottom of SideNav with Settings, Language, Theme, Admin, and Logout menu items - Move **************** out of NavButton into ...
Translate all 51 locale files, reducing untranslated keys from 6,017 to 862.
12 batch translation scripts covering all language families: East Asian, Romance, Germanic, Nordic, Slavic, Other European, South/Southeast Asian, Tamil, Sinhal...
Add 46 missing translation keys to all locale files.
These keys existed in messages.ts but were missing from the JSON files, previously relying on react-intl defaultMessage fallback.
Simplify i18n: remove old react-intl artifacts, rename formatMessage to t, replace FormattedMessage with t.rich().
- Rewrite messages.ts to plain string key maps (remove MessageDescriptor) - Rewrite useMessages hook to expose t from useTranslations() directly - Rename format...
Fix website reports route type error and pass teamId to board WebsiteSelect.
Remove invalid 3rd parameter from GET handler and parse report type from query params instead. Pass teamId to WebsiteSelect in BoardEditHeader so it shows team ...
Replace react-intl with next-intl and consolidate lang files.
Migrate i18n from react-intl to next-intl, eliminating the formatjs compilation pipeline. Translation files now live as nested JSON in public/intl/messages/ (si...
Rename session recording to session replay across the codebase.
Renames all files, components, database schema, API routes, hooks, messages, and build config from "recording" to "replay" terminology.
Thêm tính năng thu âm phiên chạy dựa trên rrweb.
Bản thu toàn bộ phiên chạy với rrweb cho việc thu và rrweb- player phát lại. Gồm: Bản tóm tắt Prisma cho mô hình kiểm tra phiên chạy, đã tách Name kết thúc điểm...
trở lại prsma giản đồ để mới nhất, thêm css toàn cầu cho thanh cuộn, sửa css
Biến số hệ thống CSS cũ phân tán thành hệ thống thiết kế mới.
Thành phần hành trình, ccs toàn cầu, và biến tất cả các cũ tham chiếu Tính chất tự chọn (- cơ sở màu- *, --primary-color, --text- base) rằng không còn tồn tại t...
Sửa lỗi nút lùi trên WebsiteNav bằng cách mặc định trạng thái bên cạnh là sai.
Đội sửa chữa bảng điểm kết thúc gọi TeamPixels thay vì bắt TeamBoards.
Bỏ trang mục bảng thành từng thành phần riêng và loại bỏ việc ghi lại lỗi.
RapRaw, BoardColumn, boardViewHeader, boardEditHeader, và Liên kết bảng thành tập tin riêng. Gỡ bỏ giao diện 9 Từ Boody và BofProvider.
Liên kết WebsiteNavSection vào WebsiteNav và sửa các đèn flash cuộn.
Di chuyển thanh bên vẽ logic vào WebsiteNav với propro lật ngược vì vậy SideNav sử dụng trực tiếp WebsiteNav thay vì mã duplicating. Thêm tràn ngập ẩn để ngăn c...
Fix WebsiteSelect showing empty value on initial load.
Fall back to queried website name when local state hasn't been set yet, since useState only captures the initial value which is undefined before the query resol...
Fix CompareTables select width, WebsiteSelect min height, and MetricCard gap.
Combine WebsiteNav into SideNav when viewing a website.
Replace the separate 240px WebsiteNav sidebar with website navigation integrated into the main SideNav. When a websiteId is active, SideNav shows a back arrow, ...
Như những gì anh thấy vận chuyển?
Mỗi một bản cập nhật này đều được tự động cập nhật trong không gian làm việc của bạn. Bắt đầu tự do và xem nó lớn lên tuần này qua tuần khác.