Commit Graph
230 Commits
Author SHA1 Message Date
Christian Vidal Wolf 85794b4b52 fix: add missing SyncStatusPill component to repo 2026-05-15 10:57:39 +02:00
Christian Vidal Wolf cf92b85d17 fix(ui): remove SyncStatusPill from ProductDescriptions SKU column 2026-05-15 10:53:46 +02:00
Christian Vidal Wolf 2944e6958c fix(history): paginate all records, number oldest=1 newest=N, display newest first 2026-05-15 10:51:01 +02:00
Christian Vidal Wolf cf531cfa40 fix(ui): remove yellow/red row backgrounds in PricingView 2026-05-14 20:27:53 +02:00
Christian Vidal Wolf e89f31d9b3 fix(ui): remove yellow/red row backgrounds, keep green only 2026-05-14 20:21:01 +02:00
Christian Vidal Wolf 008a10502b feat(history): add user filter dropdown 2026-05-14 20:15:34 +02:00
Christian Vidal Wolf 7dd899dae6 fix(history): number records oldest=1, newest=N 2026-05-14 18:37:07 +02:00
Christian Vidal Wolfandclaude-flow ca8a98c6c2 feat(history): add record numbering and column names to Change History
- Show total record count and filtered count in subtitle
- Add #N global number to each history entry row
- Add # column index inside each change detail table
- Column header already shown via headers[i] — now labeled "Column"

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-14 18:33:07 +02:00
Christian Vidal Wolfandclaude-flow 9b5932920e feat: add Business Central CPNP sync and expand history access
- Add bc-proxy and bc-export serverless API handlers
- Add businessCentral service with updateCpnpNoInBC and downloadBusinessCentralItemsExcel
- Sync cpnpNo to BC on save (CosmeticItemsView and handleSaveAll)
- Parallelize handleSaveAll with Promise.all
- Fix array index key, a11y click/keyboard handlers, autoFocus
- Grant Change History and Pending Validation access to jingying.shi@craze-group.com

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-14 17:17:10 +02:00
Christian Vidal Wolfandclaude-flow 2961d3f86a fix: persist CPNP No. across refreshes by saving as 'edited' and restoring in merge
- saveRowToSupabase now accepts optional status param (default 'pending')
- CosmeticItemsView saves CPNP with status 'edited' so resetAllPendingRows
  does not affect it and it survives the startup merge
- Re-added CPNP_NO to editableColumns so the merge restores it from Supabase

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-12 16:03:12 +02:00
Christian Vidal Wolfandclaude-flow a0b793b797 fix: save CPNP No. directly to Supabase on confirm, no Save All required
Bypasses the pending queue timing issue by calling saveRowToSupabase
directly after onSaveRow. Shows a spinner while saving. Alert on error.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-12 15:59:17 +02:00
Christian Vidal Wolfandclaude-flow 73118ea4c3 fix: show existing CPNP No. value in table cell, click to edit
Items with a CPNP number now display it in green. Empty cells still show
the dashed 'Click to fill...' button. Both are clickable to edit inline.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-12 12:27:00 +02:00
Christian Vidal Wolfandclaude-flow 1b4918a385 fix: prevent CPNP_NO from being overridden by dynamic column detection
CPNP_NO must stay hardcoded at index 107. Removed it from COLUMN_PATTERNS
and added guard to skip empty patterns in resolveColumnIndices.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-12 12:19:09 +02:00
Christian Vidal Wolfandclaude-flow 889e98b0ca fix: restore CPNP No. from Supabase and simplify column filter matching in Cosmetic Items
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-12 12:15:27 +02:00
Christian Vidal Wolfandclaude-flow 60224931bc fix: normalize filter comparison with trim and exact set match in Cosmetic Items tab
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-12 12:12:49 +02:00
Christian Vidal Wolfandclaude-flow d69acd5872 fix: skip column filter when all values selected in Cosmetic Items tab
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-12 12:08:21 +02:00
Christian Vidal Wolfandclaude-flow 19b02812bd feat: enable sorting and filtering on CPNP No. column in Cosmetic Items tab
Show all cosmetic products regardless of CPNP status. Column filter on
CPNP No. lets user isolate items with empty value.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-12 11:53:54 +02:00
Christian Vidal Wolfandclaude-flow 7d37d4777b fix: ensure saved changes persist across app refreshes by updating status logic and merge check
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-12 11:51:39 +02:00
Christian Vidal Wolf b182ef6037 feat: enable sorting and filtering on CPNP No. column in Cosmetic Items tab 2026-05-11 08:48:32 +02:00
Christian Vidal Wolfandclaude-flow e303c759d7 feat: remove Classification column from Cosmetic Items tab
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-08 13:30:59 +02:00
Christian Vidal Wolfandclaude-flow 1556aea081 feat: add Cosmetic Items tab with inline CPNP No. editing
New sidebar tab for cosmetic product lines (INKEE, BATH FUN, TOP FASHION,
SENSES, BODYNESS) filtered to items with empty CPNP No. Column filters on
Item Available allow toggling zero/non-zero stock. CPNP_NO added as virtual
column (index 107) stored in Supabase.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-08 13:28:39 +02:00
Christian Vidal Wolf d9b9664a9d feat: implement auto-resize textareas in EditPanel for descriptions and details 2026-05-07 08:55:18 +02:00
Christian Vidal Wolfandclaude-flow e7b954ecb4 feat: apply check via header checkbox after drag-selecting rows
After dragging to select rows, checkboxes appear in the Check Ying
and Check Anna column headers showing the count of selected rows.
Clicking one marks or unmarks that column for all selected rows,
then clears the selection. Footer shows a hint with a cancel button.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-04-28 09:34:42 +02:00
Christian Vidal Wolf 1c68e35ec4 feat: standardize Weight Issues filter to use ColumnFilterPopover 2026-04-28 09:34:12 +02:00
Christian Vidal Wolfandclaude-flow 8e1a533ea2 feat: drag-to-check rows in PricingView (Excel-style)
Dragging the mouse over rows now directly toggles Check Ying on all
covered rows on mouseup. The check value (on/off) is determined by
the state of the first row touched, so dragging over unchecked rows
marks them and vice versa. Rows light up blue during the drag to
show what will be affected.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-04-28 09:26:48 +02:00
Christian Vidal Wolf db35c0233f feat: add Excel-style filters to Check columns and fix TS lint errors 2026-04-28 09:22:34 +02:00
Christian Vidal Wolf 3d89b2538a fix: add missing column patterns to types 2026-04-28 09:22:03 +02:00
Christian Vidal Wolf 69f9773410 feat: add MOQ filtering and sorting in PricingView 2026-04-28 09:21:24 +02:00
Christian Vidal Wolf 712a9dac16 feat: add MOQ column to PricingView positioned after container columns 2026-04-28 09:18:43 +02:00
Christian Vidal Wolf d23f4e625a fix: refactor tooltips to use global state to prevent crash and duplicate function error 2026-04-27 14:54:09 +02:00
Christian Vidal Wolf 601a02117f fix: use Portal for hover tooltips to prevent table container overflow clipping 2026-04-27 14:50:13 +02:00
Christian Vidal Wolf 557cb537a9 fix: render check ying and check anna hover tooltips downwards to prevent header clipping 2026-04-27 14:46:57 +02:00
Christian Vidal Wolf 5e9ab45191 refactor: use React Portals for note modals to ensure foreground visibility 2026-04-27 14:40:39 +02:00
Christian Vidal Wolf 0fa845e814 fix: increase z-index for modals and popups in PricingView to ensure foreground visibility 2026-04-27 14:37:05 +02:00
Christian Vidal Wolf a2bb2f2307 fix: improve filter popover positioning and reliability across all views 2026-04-25 09:14:25 +02:00
Christian Vidal Wolf cd621de5d3 fix: implement exhaustive safety checks for filters and sorting to prevent white screen crashes 2026-04-24 20:26:36 +02:00
Christian Vidal Wolf a452283fbb fix: resolve JSX syntax error (unclosed span tag) in PricingView 2026-04-24 20:22:55 +02:00
Christian Vidal Wolf d50ecc9506 fix: add Item to Logistic filter and apply missing safety checks to dimension filters 2026-04-24 20:21:45 +02:00
Christian Vidal Wolf dcbaaea055 fix: resolve white screen crash in PricingView filters by adding comprehensive safety checks 2026-04-24 20:19:01 +02:00
Christian Vidal Wolf 127363a308 refactor: remove AI Settings button and modal from TopBar 2026-04-24 17:33:47 +02:00
Christian Vidal Wolf 4b7c1a2dad fix: hardcode Gemini API key for all users and disable personal overrides 2026-04-24 17:29:17 +02:00
Christian Vidal Wolf 9655da8164 refactor: eliminate automatic 'End of Life' (EOL) logic and yellow highlighting for OOC products with no stock 2026-04-24 17:24:47 +02:00
Christian Vidal Wolf 91fe855434 feat: allow applying filters with Enter key 2026-04-24 17:20:47 +02:00
Christian Vidal Wolf ef9cd53558 fix: resolve crash by adding missing second argument to createPortal 2026-04-24 17:15:08 +02:00
Christian Vidal Wolf d06285ddaa fix: portal all filter popovers to prevent occlusion by sticky columns 2026-04-24 17:13:12 +02:00
Christian Vidal Wolf e96d245f59 fix: ensure filter dropdowns are not covered by pinned columns 2026-04-24 17:08:23 +02:00
Christian Vidal Wolf 6057a16229 fix: remove overflow-hidden from pinned td cells to allow filter popover visibility 2026-04-24 16:21:56 +02:00
Christian Vidal Wolf 37aeee0dc7 fix: ensure filter popover z-index above pinned columns 2026-04-24 16:16:37 +02:00
Christian Vidal Wolf 92183dd942 fix: z-index filters above pinned columns 2026-04-24 16:13:30 +02:00
Christian Vidal Wolf 8d00b7372f feat: make search filters independent per tab while maintaining persistence 2026-04-24 16:09:49 +02:00