Commit Graph
100 Commits
Author SHA1 Message Date
Christian Vidal WolfandClaude Sonnet 4.6 f3ed3cf147 fix: preserve edited changes after export and on Dropbox reload
resetAllPendingRows was setting status to 'synced' instead of 'edited',
causing the merge logic on reload to skip those rows. Also keep 'edited'
and 'saved' statuses locally after export instead of clearing all.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 16:22:35 +02:00
Christian Vidal Wolf 7de903a184 fix: load saved edits (status edited/pending) from Supabase 2026-04-23 16:16:20 +02:00
Christian Vidal Wolf 56fc7d34c3 fix: load fresh Excel values, only preserve pending edits 2026-04-23 16:14:18 +02:00
Christian Vidal Wolf 6bcf697165 fix: always use fresh Dropbox Excel values on load 2026-04-23 16:12:09 +02:00
Christian Vidal Wolf 605b93c445 fix: sync preserves manually edited items (status edited/pending) 2026-04-23 16:10:01 +02:00
Christian Vidal Wolf c2b229e899 fix: only preserve Supabase if value is different from Dropbox 2026-04-23 16:07:16 +02:00
Christian Vidal Wolf ba5bea44c0 fix: increase synced rows limit to 1000 2026-04-23 16:02:59 +02:00
Christian Vidal Wolf d98665fde0 fix: preserve app edits from Supabase (shows in Change History) 2026-04-23 16:00:21 +02:00
Christian Vidal Wolf 5ad1bff842 fix: use Dropbox values unless there's pending edit 2026-04-23 15:57:33 +02:00
Christian Vidal Wolf dbaf0e76fe Fix: Implement dynamic column re-alignment for data merging.
- Automatically detects if saved data uses the old Excel structure.
- Shifts indices dynamically to ensure UVP and SRP values match current columns.
- Fixes the 2.41 UVP and 4.95 SRP Int discrepancy.
2026-04-23 15:55:13 +02:00
Christian Vidal Wolf ce343a1b1f Fix: Debug API env check. 2026-04-23 15:51:40 +02:00
Christian Vidal Wolf 1b28399b76 Fix: Final attempt at migration script fix.
- Removed 'new' keyword before error object.
- Reverted to sequential processing to ensure stability.
- Improved error reporting.
2026-04-23 15:46:54 +02:00
Christian Vidal Wolf 31b2451835 Fix: Improve migration script for database re-alignment.
- Added robust error handling.
- Optimized database updates with Promise.all.
- Broadened status check to ensure all affected rows are captured.
2026-04-23 15:46:10 +02:00
Christian Vidal Wolf 54dfc24239 Fix: Re-align database indices after column insertion in Excel.
- Created a migration API route to shift data indices >= 12.
- Resolved discrepancy where UVP was showing LP Onl values due to column shift.
2026-04-23 15:43:40 +02:00
Christian Vidal Wolf 68d8d67f95 UI: Change status of restored rows from 'pending' to 'synced' to remove distracting yellow highlights. Now previously saved work appears with a normal background while still being correctly loaded from the database. 2026-04-23 15:09:00 +02:00
Christian Vidal Wolf 397023b00d Fix: Restore missing user edits by refining the data merge logic.
- Migrated 126 manual edits to 'edited' status.
- Updated App.tsx to merge rows with 'edited' or 'synced' status.
- Protected manual edits from being overwritten by automated Dropbox syncs.
2026-04-23 15:04:43 +02:00
Christian Vidal Wolf 360baa7f10 feat: increase history limit to 500 entries 2026-04-23 15:00:08 +02:00
Christian Vidal Wolf b14cfe00f0 feat: fullscreen mode for all tabs + fix Dropbox/Supabase sync priority 2026-04-23 14:53:43 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 e7a3a4619d UI: Add multi-select filter dropdown to Type column in Pricing view
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 13:31:39 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 f545776e15 UI: Add 'Check Anna' column to Pricing Units view
Mirrors Check Ying with its own checkbox and note editor (pink theme).
Stored in virtual columns ANNA_CHECK (105) and ANNA_NOTE (106).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 13:02:14 +02:00
Christian Vidal Wolf aca37c4a99 Feature: Add ITEM TO LOGISTIC column to Pricing Units tab.
- Integrated new column after TYPE.
- Enabled inline editing with auto-save.
- Added field to the full row EditPanel.
- Configured dynamic column detection in types.ts.
2026-04-23 12:58:51 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 617eb00edb UI: Rename 'Check' column to 'Check Ying' in Pricing view
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 12:58:11 +02:00
Christian Vidal Wolf 1c3da9024c Fix: Update Dropbox sharing link to the new version provided by the user. Restores auto-load functionality in both dev and production. 2026-04-23 12:50:40 +02:00
Christian Vidal Wolf f6ef573f3a Auth: Implement automatic session refresh logic to prevent 'JWT expired' errors. The app now handles token renewal in the background, allowing users to save changes without interruption. 2026-04-23 12:37:04 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 e0484354b9 Security: Add HTTP security headers via vercel.json
Adds HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy,
and Permissions-Policy to all responses. CSP allowlist includes only
Supabase and Dropbox as external connect targets.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 10:04:33 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 2e4ab35f37 Security: Restrict API endpoints to allowed origin (CORS)
Both Vercel serverless functions now enforce CORS, returning 403 for
requests from any origin other than craze-data-check.vercel.app.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 10:02:47 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 dec24f52f4 Security: Enable RLS support by passing user JWT in Supabase requests
Replaced hardcoded anon key as Bearer token with authHeaders() helper
that uses the authenticated user's access_token when available, enabling
Row Level Security policies to identify the calling user correctly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 09:59:46 +02:00
Christian Vidal Wolf 7a32605189 Fix: Import missing 'cn' and 'X' in App.tsx. Resolves blank screen runtime error. 2026-04-22 20:40:32 +02:00
Christian Vidal Wolf b5ea911e43 UI: Implement Maximize mode for tables. Added a 'MAXIMIZE' button to TopBar and an 'X' close button in fullscreen mode. Hides sidebar and header to provide maximum screen space for data tables. 2026-04-22 20:38:06 +02:00
Christian Vidal Wolf bf98e4e4ba UI: Add resizable columns to Matrix View. Users can now adjust column widths by dragging, improving data visibility in the All Data view. 2026-04-22 17:09:46 +02:00
Christian Vidal Wolf f01b720c05 UI: Enable 'Enter' key to apply filters in ColumnFilterPopover. Improved search usability by allowing quick selection and application of filters from the keyboard. 2026-04-22 17:06:35 +02:00
Christian Vidal Wolf d43d9931c6 Fix: Implement dynamic column detection to handle Excel structure changes (insertion of PM Classification). This fixes the Missing data error in Pricing Units and other views. 2026-04-22 16:52:59 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 8471a69529 fix: detect Units/Outer column dynamically instead of hardcoded index
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 16:37:50 +02:00
Christian Vidal Wolf 81f0e76c3b fix: update dropbox sharing link to the new version 2026-04-22 16:17:07 +02:00
Christian Vidal Wolf eec500f737 fix: improve dropbox loading resilience and fix dev proxy 2026-04-22 16:09:00 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 e7f88c67e6 feat: add filter to Issues column in Pricing view
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 14:39:04 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 db25ea793d fix: Issues column shows only NW > GW weight errors
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 14:37:01 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 2c08a6593a feat: add Issues column to Pricing view showing unit/weight errors per row
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 14:34:10 +02:00
Christian Vidal Wolf 10a2b3effd fix: include empty values in missing data view filters 2026-04-22 14:31:41 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 4460213da3 feat: detect NW > GW weight errors in Pricing Units tab
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 14:31:16 +02:00
Christian Vidal Wolf a1b046feb1 feat: include empty classification in missing data view and improve pricing view column detection 2026-04-22 14:29:38 +02:00
Christian Vidal Wolf 9d169a0bdd Add pagination to Pricing tab
Load data in batches of 100 products per page with navigation controls
2026-04-21 11:25:20 +02:00
Christian Vidal Wolf 99ad4f7d25 feat: add sorting to Pricing Units table 2026-04-21 09:32:15 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 f15871f89f feat: add TYPE column to Pricing view with autocomplete suggestions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 09:24:02 +02:00
Christian Vidal Wolf 77819f5d3a fix: restore row status on undo and improve change detection 2026-04-21 09:05:14 +02:00
Christian Vidal Wolf 2b994e3c86 feat: implement resizable columns in Pricing Units tab 2026-04-21 09:03:01 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 9b861f1c19 fix: remove yellow highlight when modification is reverted to original value
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 09:01:17 +02:00
Christian Vidal Wolf 6a864a4c35 Fix column resize - make handle more visible and add pointer-events 2026-04-21 08:56:37 +02:00
Christian Vidal Wolf 3462ac9991 feat: update Dropbox source URL and implement smart dirty-checking for row highlight 2026-04-21 08:55:50 +02:00
Christian Vidal Wolf 964bb62838 Fix column resizing in Pricing table
Improve resize logic with proper mouse delta calculation
2026-04-21 08:49:02 +02:00
Christian Vidal Wolf b4cb7cbe57 Add column resizing in Pricing table
Drag column borders to resize width like Excel
2026-04-21 08:40:54 +02:00
Christian Vidal Wolf d8c65a22f9 fix: improve contrast between validated and pending states and fix instant background removal 2026-04-21 08:36:06 +02:00
Christian Vidal Wolf d8f3dfbed3 Enable multi-select in Pricing search dropdown
Search dropdown now allows selecting multiple products with checkboxes and Apply button
2026-04-21 08:30:14 +02:00
Christian Vidal Wolf ed9e8ba3ab Fix Refresh button to bypass browser cache
Use cache: 'no-store' and cache buster to force fresh data load
2026-04-20 20:39:23 +02:00
Christian Vidal Wolf 03b98c9aed Add tooltip preview on hover for notes in Pricing tab
Show note content in popup when hovering over the notes icon
2026-04-20 20:35:46 +02:00
Christian Vidal Wolf 9878efb2ca feat: enhance PricingView search bar with a searchable dropdown list 2026-04-20 20:34:28 +02:00
Christian Vidal Wolf ecf1c7831c Add Hard Refresh button to TopBar
Button triggers reload of all data from Dropbox source
2026-04-20 20:30:21 +02:00
Christian Vidal Wolf 369e37c8f5 Filter out old launch dates before Dec 2025 in Missing Data tabs 2026-04-20 20:24:39 +02:00
Christian Vidal Wolf 66a42ad1a0 Add Launch Date Inconsistencies and Upcoming Launch Date tabs
- Add Launch Date Inconsistencies tab: shows when Ready to Order > Launch Date
- Add Upcoming Launch Date tab: alerts when launch is within 180 days (yellow) or 120 days (red)
- Show days until launch countdown
2026-04-20 18:48:30 +02:00
Christian Vidal Wolf db696d2816 feat: redesign PricingView with manual validation check and notes, and add Matrix columns 2026-04-20 18:46:50 +02:00
Christian Vidal Wolf 111a44ae82 Add close X button to filter popover
Add X button in top-right corner to close filter dropdown
2026-04-20 17:15:41 +02:00
Christian Vidal Wolf b76b64b044 Add Excel-like filter conditions to column filters
Add Condition tab with: equals, not equals, contains, starts with, ends with, greater than, less than, between
2026-04-20 17:05:24 +02:00
Christian Vidal Wolf af2ed8a037 Add dynamic column filters to all pricing columns
Add filter dropdowns to SRP, UVP, and container columns in Pricing tab
2026-04-20 17:01:47 +02:00
Christian Vidal Wolf 5f96272182 Add column filters for Units/Outer and Outer W/L/H in Pricing tab
Add dropdown filters to filter by specific values in Units/Outer, Outer W, Outer L, Outer H columns
2026-04-20 16:57:02 +02:00
Christian Vidal Wolf 67a0466627 Refine AI button labeling logic: only use 'Translate' for same-field cross-language content 2026-04-20 16:53:21 +02:00
Christian Vidal Wolf 4c39c9ec53 Add Outer W, L, H columns to Pricing tab
Display outer box dimensions next to Units/Outer column in pricing view
2026-04-20 16:51:54 +02:00
Christian Vidal Wolf dab6ccf723 Update short description AI prompts with character limits and improved translation logic 2026-04-20 16:50:21 +02:00
Christian Vidal Wolf 23074ed42f Fix ColumnFilterPopover single-click and drag-selection interaction 2026-04-20 16:42:07 +02:00
Christian Vidal Wolf 1d9e77038a Add Details DE/EN to description columns filter
Include DETAILS columns in description filter for Present/Missing filtering and improve empty value handling
2026-04-20 16:37:33 +02:00
Christian Vidal Wolf b6b60e7dfb Hide stats header in TopBar for non-descriptions tabs
Only show Total, Missing DE/EN Long/Short, Fully Complete header when viewing Product Descriptions tab
2026-04-20 16:35:40 +02:00
Christian Vidal Wolf 86c3ace6f8 Add dropdown selector for individual row field changes in Dimensions tab
- Added dropdown that shows unique values from the group (outer/units/moq)
- Click icon to open dropdown and select value to change single row
- Icon turns green on hover (emerald color)
- Replaces sync all icon with ChevronDown dropdown icon
2026-04-20 11:46:55 +02:00
Christian Vidal Wolf f358b61229 fix: resolve ReferenceError in DimensionsView by moving useEffect after variable declaration 2026-04-16 12:03:39 +02:00
Christian Vidal Wolf cbfd5f573d feat: implement excel-style drag-to-select and shift-click in Dimensions and filters 2026-04-16 12:01:59 +02:00
Christian Vidal Wolf 19ca75c1b9 Fix drag selection with refs 2026-04-16 11:55:30 +02:00
Christian Vidal Wolf dc46f91e7b Add drag selection to filter dropdowns 2026-04-16 11:52:57 +02:00
Christian Vidal Wolf 3369fc90ed fix: force showPicker for date inputs and add dark mode support 2026-04-14 18:58:07 +02:00
Christian Vidal Wolf 7c7258d87c feat: implement native date pickers and YYYY-MM-DD format in Missing Data view 2026-04-14 18:55:23 +02:00
Christian Vidal Wolf d4512aa4e6 Improve date column detection in Missing Data filters 2026-04-14 17:17:43 +02:00
Christian Vidal Wolf a1402316e0 Add date range filter with calendar picker for Launch Date and Ready to Order 2026-04-14 17:13:47 +02:00
Christian Vidal Wolf 78df66be24 Add date picker for launch and ready to order fields 2026-04-14 17:09:12 +02:00
Christian Vidal Wolf f4f69633ce Add classification dropdown in Missing Data edit panel 2026-04-14 17:06:06 +02:00
Christian Vidal Wolf 4771a9b160 Fix: Improve AI description completeness and increase Gemini token limit to 4096 2026-04-14 11:23:49 +02:00
Christian Vidal Wolf 4533a98ddf Add multi-select filters to Missing Data view using ColumnFilterPopover 2026-04-12 22:27:04 +02:00
Christian Vidal Wolf 31921666ad Remove missingClass tab, keep only missingLaunch 2026-04-12 22:23:43 +02:00
Christian Vidal Wolf a5d4305006 Fix columnUniqueValues dependency to use columns before it's defined 2026-04-12 18:38:47 +02:00
Christian Vidal Wolf dce4588d0c Add dropdown filters to Missing Data view with unique values 2026-04-12 18:36:19 +02:00
Christian Vidal Wolf fd5d7458b9 Add column filters to Missing Data view and include Classification in editable columns 2026-04-12 18:32:08 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 39869edcef feat: replace global EditPanel with focused 3-field panel in Missing Data
When editing from Missing Data view, only Classification, Launch Date
and Ready to Order fields are shown in a lightweight slide-in panel.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 15:23:23 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 ce9e91bad1 feat: add Edit button to each row in Missing Data view
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 15:19:20 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 7eeccdaf8c feat: add Missing Data module as new sidebar entry
Replaces the tab approach with a dedicated 'Missing Data' module in the
sidebar. The module has two sub-tabs: 'Missing Classification' and
'Missing Launch Date'. Shows SKU, Name, Classification, Launch Date and
Ready to Order columns. Includes a local Excel serial date formatter so
dates that slipped through the App.tsx pre-processing are rendered
correctly instead of showing as raw numbers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 15:11:57 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 fdf878a4f8 feat: add Missing Class / Launch tab to Article Details
Adds a new 'Missing Class / Launch' tab in Article Details that surfaces
items where Classification is empty or Launch Date is blank/01-01-1900.
The tab shows Classification, Launch Date, and Ready to Order columns for
quick reference. Column indices for Launch Date and Ready to Order are
resolved dynamically from the Excel headers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 15:02:52 +02:00
Christian Vidal Wolf d1f1c9a467 feat: restrict History and Pending Validation tabs to master user 2026-04-11 15:00:58 +02:00
Christian Vidal Wolf 7ecd1c45d0 UI: Add group verification for Dimensions inconsistencies and persist to DB 2026-04-11 11:48:56 +02:00
Christian Vidal Wolf 0e797e06bb feat: add voice-to-text input using Web Speech API 2026-04-11 11:34:57 +02:00
Christian Vidal Wolf 5104dfd59d chore: install buzz package for Python-style type checking 2026-04-11 11:31:58 +02:00
Christian Vidal Wolf 385ea2972c feat: increase default page size from 25 to 100 in ProductDescriptions and ArticleDetails 2026-04-11 11:18:58 +02:00
Christian Vidal Wolf aebf46493b UI: Increase column widths for description headers to prevent cutoff 2026-04-11 11:15:41 +02:00
Christian Vidal Wolf dcdf50593d Comprehensive audit: Replace backend JWT dependency universally with anon key and strict cache rules 2026-04-10 19:56:42 +02:00
Christian Vidal Wolf d9cc1f4506 Fix silent failure on getAllSyncedRows by forcing anon key 2026-04-10 19:52:30 +02:00
Christian Vidal Wolf d3c90120f4 Force anon key on getHistory and expose errors visually 2026-04-10 19:48:33 +02:00