root
1cab6c886e
fix: tab-aware agreed banner — show delivery form when switching tabs, not stale pickup banner
2026-06-12 13:25:29 +00:00
root
fb5728ba43
fix: order numbers clickable+copy, expandable sub-accounts, preserve delivery address on pickup switch, opaque calendar, tab-aware date label
2026-06-12 13:19:57 +00:00
root
005d4467bc
Apply 7 UI fixes: center badges, hide not-ready, customer address for pickup, compact calendars, confirm modals, hide driver panel for pickup, format dates
2026-06-12 12:49:48 +00:00
root
fe2d8c4e9b
fix: restore deleted data preparation vars in AdminDashboard (TDZ crash)
2026-06-12 12:21:23 +00:00
root
498faca24d
feat: delivery/pickup switching in admin card + address field
...
- Added delivery address input field in manual agreement form (visible when delivery type)
- Pickup switching clears delivery_address in DB, delivery switching preserves/updates it
- useOrderGroups passes deliveryType, deliveryAddress, pickupDate, pickupTimeSlot to API
- orderGroupRepository: updateOrderGroupDeliveryChoice now handles delivery_type and address
- Pickup orders: address cleared, pickup_date/pickup_time_slot saved
- Delivery orders: address saved, pickup fields cleared
- Updated tests to match new payload structure
2026-06-12 08:23:41 +00:00
root
9aef4d49c0
fix: pickup display — detect from source_orders.ship, show correct labels, hide placeholder address
...
- orderGroupRepository: detect pickup from source_orders.ship='САМОВЫВОЗ' and address='САМОВЫВОЗ'
- orderGroupRepository: set effectiveDeliveryType='pickup' when source data indicates pickup even if DB says 'delivery'
- orderGroupRepository: clear deliveryAddress when it's just 'САМОВЫВОЗ' placeholder
- OrderDetailPanel: dynamic header 'Карточка группы самовывоза' vs 'Карточка группы доставки'
- OrderDetailPanel: subtitle now includes orderNumbers for visibility
- OrderDetailPanel: label changed from 'Номер счёта' to 'Заказ' with '+N сч.' for sub-bills
- GroupDetailPage: neutral 'Группа не найдена' instead of 'Группа доставки не найдена'
- Added pickup-specific test case
2026-06-12 08:14:20 +00:00
root
ec9b28fa6f
fix: resolve merge conflict - remove duplicate order declaration in GroupDetailPage
2026-06-12 07:48:20 +00:00
root
55422ec65a
feat: add skeleton loading states across all pages
...
- New Loading.jsx component library (Skeleton, SkeletonPanel, SkeletonPage, SkeletonTable, Spinner, LoadingBlock)
- Dashboard: SkeletonTable/SkeletonPage during isLoading
- OrdersTable, LogisticsReadinessBoard, DriverDeliveryPlanner: show skeleton instead of empty state
- ChatTimeline, DeliverySlotsPicker, GroupDetailPage: skeleton while loading
- AdminDashboard, StopWordsPanel, UserManagementPanel, ErrorLogPanel, ActionLogPanel: skeleton during initial load
- NotificationSettings: skeleton for push toggle and notification preferences
- ClientDeliveryPage: skeleton bars instead of text-only loading
2026-06-12 07:46:58 +00:00
root
69a2023ec1
feat: suggestions panel for employees + admin review
2026-06-10 18:24:58 +00:00
root
7e43f9e990
feat: requires_address status + address input for pickup-to-delivery switch
...
- New status: requires_address (Требуется адрес) in deliveryWorkflow
- ClientDeliveryPage: address input shown when delivery chosen without address on file
- OrderDetailPanel: requires_address status badge + address input for manager
- confirm_delivery_choice_by_token RPC: p_delivery_address param, sets requires_address status
- Edge function: delivery_address passed to RPC
- deliveryInvitationApi: deliveryAddress param
- CHECK constraint: requires_address, address_required added
- PickupSlotsPicker: styled storage conditions info block
2026-06-10 14:52:17 +00:00
root
c774c6a362
feat: add pickup analytics — RPC, hook, PickupStatsPanel, dashboard integration
2026-06-10 12:32:51 +00:00
root
3651dbb484
chore: cleanup
2026-06-10 12:12:10 +00:00
root
813852ff45
fix: JSX structure errors + orderGroupRepository syntax
2026-06-10 12:12:04 +00:00
root
e05613ac1d
feat: add pickup (самовывоз) delivery type
...
- New status pickup in delivery workflow
- DB: delivery_type, pickup_date, pickup_time_slot columns
- Client page: tabs Доставка/Самовывоз with PickupSlotsPicker
- PickupSlotsPicker: today/tomorrow/day-after with half-day slots
- Storage notice: free 2 workdays, then 300₽/day
- OrderDetailPanel: delivery type tabs, pickup date/time, status button
- Edge function: delivery_type/pickup fields in confirm-delivery-choice
- RPC: confirm_delivery_choice_by_token updated for pickup
- orderGroupRepository: full pickup field mapping
2026-06-10 12:02:46 +00:00
root
3c22eb71ab
fix: case-insensitive stop word matching
2026-05-28 19:55:57 +00:00
root
50f504c2ff
fix: city regex requires mandatory dot+space — no more Гор→ор, Годная→одная
2026-05-28 11:05:38 +00:00
root
9e992d8280
fix: extractCity uses known cities list instead of first-chunk heuristic
2026-05-28 10:57:03 +00:00
root
2d1bca9cb4
fix: default city=Севастополь when not specified
2026-05-28 10:33:38 +00:00
root
6f29948f8a
fix: remove Группы tab from logistician, remove Справка, Телефон→Город, Заказы→Водитель, add city filter
2026-05-28 10:29:13 +00:00
root
bb439a4d93
fix: clean action log — no UUID/ID duplicates, smart expanded row
2026-05-28 10:22:31 +00:00
root
a5b9dc1153
fix: ternary syntax in assignDriver logPayload
2026-05-28 10:18:29 +00:00
root
1e0344ee34
fix: action log — resolve UUID to names, show old→new, add oldValue for driver reassignment
2026-05-28 10:17:29 +00:00
root
581a275bc0
fix: action log — readable driver names, no duplicate columns, meaningful descriptions
2026-05-28 10:11:57 +00:00
root
805ceca152
fix: 8 bugfixes — current undefined, auth email, sequential statuses, problem dialog, action log details, KPI layout, date sort, driver lock
2026-05-28 10:03:19 +00:00
root
2ee437e83e
fix: add Ошибки tab to admin nav + already fixed client→supabase in ErrorLogPanel
2026-05-27 15:33:06 +00:00
root
7dfdd91798
fix: comprehensive error logging — all errors now captured in client_error_logs
...
- safeSupabaseCall: logs caught errors via logError
- AuthContext: logs sendOtp, verifyOtp errors
- ErrorLogPanel: fixed client→supabase reference in delete functions
- AuthContext: sets window.__supersam_user_id__ on auth state change
2026-05-27 15:30:33 +00:00
root
dac8450586
feat: action_logs — журнал действий сотрудников с фильтрами
2026-05-27 15:12:46 +00:00
root
8f50a68687
feat: delivery_date_source tracking + manual date in analytics funnel
2026-05-27 14:59:57 +00:00
root
f90b476bfd
fix: hide delivery choice flow after save, remove confusing hero block
2026-05-27 14:40:20 +00:00
root
136e5c826a
fix: parseOrderList collects ALL source orders, edge fn returns orderItems
2026-05-27 14:36:00 +00:00
root
d0f2a72dda
feat: stop words CRUD + client-side filtering
2026-05-27 14:28:52 +00:00
root
a764213a77
feat: logistics board as grouped tables with column headers
2026-05-27 14:16:00 +00:00
root
f8c6c538b7
compact: logistics readiness cards — single-line on desktop, stacked on mobile
2026-05-27 14:12:39 +00:00
root
0930ea9c26
fix: back button uses browser history instead of hardcoded /dashboard
2026-05-27 14:06:54 +00:00
root
db555bbf55
remove: drop readiness column from orders table
2026-05-27 14:03:57 +00:00
root
d43dd04e9b
feat: add orders table tab for logistician role
2026-05-27 13:59:21 +00:00
root
8dcab4da77
fix: show delivery date card for agreed+ statuses, not just agreed
2026-05-27 12:57:31 +00:00
root
470270118b
fix: driver_assigned status on assign + driver column in table
2026-05-27 12:48:48 +00:00
root
58dc110007
feat: allow admin/logistician to re-edit delivery date after agreement
2026-05-27 12:44:43 +00:00
root
1f285ea718
feat: driver assigned confirmation block in delivery card
2026-05-27 12:41:17 +00:00
root
19bed475ee
feat: delivery date in table+card, driver assign preserves agreed status
2026-05-27 12:39:02 +00:00
root
9ec7d8e8ae
fix: assign driver preserves agreed+ statuses instead of downgrading to driver_assigned
2026-05-27 12:34:41 +00:00
root
a8d54699ff
fix: restrict agreed/driver_assigned status buttons, show hints instead
2026-05-27 12:26:21 +00:00
root
0f32d6d73a
feat: URL-based navigation via ?tab= param for shareable links
2026-05-27 12:21:32 +00:00
root
15f2ab3cde
refactor: PATCH user via supabase client, not edge function
2026-05-27 12:12:44 +00:00
root
fd3f738b9f
fix: no default role, placeholder for role dropdown
2026-05-27 12:01:45 +00:00
root
cee5acab1d
fix: modal styling - solid bg, full-width dropdown, labels
2026-05-27 11:59:43 +00:00
root
e04485c446
feat: add-user modal dialog — compact, centered, backdrop
2026-05-27 11:53:54 +00:00
root
696f275567
fix: simple add-user form — 3 fields + small button
2026-05-27 11:50:12 +00:00
root
9009ffdfb0
feat: manage-users edge function, admin CRUD via API instead of direct supabase.auth.admin
2026-05-27 11:28:53 +00:00
root
b9b227e524
feat: UserManagementPanel — themed dropdown, inline edit name/email/role
2026-05-27 11:23:37 +00:00
root
bb6708e94b
fix: mega_admin in GroupDetailPage + OrderDetailPanel role checks
2026-05-27 11:19:43 +00:00
root
c59a806c2c
fix: mega_admin role in UI checks + fix UserManagementPanel client→supabase
2026-05-27 11:17:41 +00:00
root
58a96355f1
fix: replace createClient with shared supabase singleton in useAdminStats and errorLogger
2026-05-27 10:59:37 +00:00
root
2fea387d43
fix: use shared supabase client with auth session in admin panels
...
- UserManagementPanel: replace createClient() with supabase from supabaseClient
- ErrorLogPanel: same — reuse authenticated supabase singleton
- Remove production_lead role from ROLES/ROLE_LABELS/ROLE_TONES
- Remove service_role key dependency — RLS handles auth
- Fixes: admin Users tab showing empty (RLS couldnt resolve auth.uid())
2026-05-27 09:50:07 +00:00
root
c996805122
fix: duplicate client declaration
2026-05-27 08:55:35 +00:00
root
f4a4082677
fix: remove service_role from ErrorLogPanel - use anon key + RLS
2026-05-27 08:54:49 +00:00
root
3934e6a872
feat: error log panel - delete, export JSON/CSV, select rows
2026-05-27 06:14:33 +00:00
root
f451add13c
fix: replace assign_driver RPC with direct supabase update
2026-05-26 19:55:35 +00:00
root
41e36299b7
fix: persist signed-out flag in sessionStorage to block auto-login after logout
2026-05-26 17:53:21 +00:00
root
8a8446bfec
fix: prevent session restore after signOut with signedOutRef flag
2026-05-26 14:43:43 +00:00
root
844f052462
fix: kill session on signOut, .maybeSingle() for 406, remove StrictMode
2026-05-26 14:36:50 +00:00
root
cbc6242613
fix: remove TS annotations from jsx file
2026-05-25 15:34:03 +00:00
root
ca6f160073
feat: secure auth storage - obfuscated sessionStorage instead of plaintext localStorage
2026-05-25 15:32:17 +00:00
root
cf18ecb6ff
fix: funnel show all steps, center KPI, top nav, roles RU, admin users tab
2026-05-25 13:17:24 +00:00
root
0d5fb1b79a
mobile: responsive admin dashboard
2026-05-25 12:57:46 +00:00
root
79e1173dd3
funnel: outcomes only, SMS separate panel
2026-05-25 12:47:57 +00:00
root
011dd08f08
bump: SW cache v4 to force cache invalidation
2026-05-25 12:41:25 +00:00
root
40b28be0ee
fix: automation funnel — correct data logic, remove emojis, rename to Воронка согласования
2026-05-25 12:31:58 +00:00
root
89d6a01b68
feat: add PWA install button to header
2026-05-22 14:10:08 +00:00
root
a04e8edb6e
feat: auto-restore push subscription + bump SW cache v3
2026-05-22 11:18:58 +00:00
root
5f88b2ca65
feat: role-based notification settings, push via DB trigger
2026-05-22 11:11:01 +00:00
root
f099cf20d8
fix: update VAPID public key to match server-side keys
2026-05-22 10:59:39 +00:00
root
bcf6f9d16f
fix: JSX syntax error in Navigate component
2026-05-22 10:49:48 +00:00
root
dc9d7de60f
feat: push notifications + PWA notifications UI
...
- VAPID keys generated for web push
- push_subscriptions, notifications, notification_preferences tables
- DB triggers: auto-notify on order status change, driver assignment
- Edge functions: send-push-notification, subscribe-push, unsubscribe-push
- Frontend: NotificationBell, NotificationSettings components
- usePushNotifications hook (subscribe/unsubscribe push)
- useNotifications hook (fetch + realtime + mark read)
- Service worker: push event handler + notification click
- AppShell: notification bell in header
- DashboardPage: wired notifications
- manifest.webmanifest: name updated to SuperSam
- Caddyfile: CSP allows wss:// + fcm push
2026-05-22 10:48:33 +00:00
Codex
43c5f75055
feat: delivery page improvements and driver shipment workflow
...
- OrderCompositionPanel: flatten nested source_orders into product list, collapsed by default
- DeliverySlotsPicker: single-line heading 'Доставка завтра · 22.05.2026' instead of two-line
- OrderDetailPanel: add logistics status change panel, reorder sections (delivery date → driver → status → paid storage)
- OrderDetailPanel: require delivery date before assigning driver
- GroupDetailPage: dedicated route /dashboard/group/:groupId instead of modal
- DashboardPage: navigate to group detail page instead of opening modal
- DriverDeliveryPlanner: remove 'agreed' status, add city filter pills, group by status within dates
- DriverDeliveryPlanner: show delivery address instead of order numbers/ready count/SMS
- DriverShipmentPanel: new component with per-item checkboxes, ship-all, comments for unshipped items
- OrderDetailPanel: driver sees shipment panel + status buttons; 'delivered' requires all items shipped or commented
- Driver status: start from 'Назначено вам' (driver_assigned), not 'agreed'
- Remove duplicate header from GroupDetailPage
2026-05-22 12:53:43 +03:00
Codex
9abfbff654
feat: show order composition collapsed with product list from source_orders
...
- OrderCompositionPanel now collapsed by default with position count badge
- Flattens all products from source_orders into a single list
- RPC migration to extract items from source_orders (needs DB deploy)
- Edge Function updated to include source_orders items
- Removed Edge Function enrichment hack from fetchDeliveryInvitation
2026-05-21 14:18:10 +03:00
Codex
e6dc1972fb
feat: show full order composition on delivery page
...
- Extract OrderCompositionPanel as standalone component
- Support nested order items with sub-positions from source_orders
- Enrich order items from Edge Function when RPC only has invoice refs
- Update RPC SQL to extract product items from source_orders
- Update Edge Function to include source_orders items in invitation
- Add detail rows (account, customer) when no order items available
2026-05-21 11:52:46 +03:00
Codex
6244749545
feat: unify manual_required status and driver label
...
- orderGroupViews: unify notification manual_required + pending delivery_status into single "Требуется ручное управление" status
- LogisticsReadinessBoard: use status:manual_required in funnel instead of delivery:manual_confirmation_required
- DriverDeliveryPlanner: show "Назначено вам" for driver_assigned instead of "Назначен водитель"
- Add sync-manual-status.sql trigger patch for backend
2026-05-20 16:25:06 +03:00
Codex
838c4cb7ae
feat(paid-storage): bypass stale RPC for paid_storage transitions
...
- OrderDetailPanel: paid_storage bypasses update_delivery_status RPC
- Repository: direct table update for paid_storage entry/exit
- LogisticsBoard: collapsible sections ordered by funnel
- SQL: updated paid_storage schema patch
- LoginPage: hide dev quick-login in production
2026-05-20 16:25:06 +03:00
Codex
c8fbe95bd1
feat(paid-storage): inline confirmation + cancel action + status display
...
- Replaced window.confirm with inline confirmation panel in app style
- Shows confirmation block with 'Yes, transfer' / 'Cancel' buttons
- After transfer: shows 'Transferred to paid storage' with date and yellow indicator
- Added cancel button to revert from paid_storage back to pending_confirmation
2026-05-20 16:25:06 +03:00
Codex
140fbc8122
fix(logistics): pass group.id instead of group object to onSelectSet
2026-05-20 16:25:06 +03:00
Codex
a2196d232b
feat(order-detail): collapsible order composition with table layout
...
- Extracted IIFE into CollapsibleOrderComposition component to fix React hooks error
- Состав заказа свернут по умолчанию, разворачивается по клику
- Позиции отображаются в табличном виде (grid 1fr + auto)
- Количество и единицы измерения не обрезаются (whitespace-nowrap)
- Парсинг работает из source_orders, order_list, order_list_structured
2026-05-20 16:25:06 +03:00
Codex
0d3be0502c
fix(order-detail): show positions from order_list column
...
- parseOrderList now checks orderList first (Supabase), then orderListStructured, then sourceOrders
- removed debug output from UI rendering
- added flexible field fallbacks for position name/quantity/unit
2026-05-20 16:25:06 +03:00
Codex
874e9b3885
fix: debug order composition parsing and add visible error info
2026-05-20 16:25:06 +03:00
Codex
458414636d
fix: parse order composition from source_orders field
2026-05-20 16:25:06 +03:00
Codex
3728ed0e95
fix: include order_list fields in queries and map to frontend object
2026-05-20 16:25:06 +03:00
Codex
0056e71b39
fix: add explicit text color and order composition to OrderDetailPanel
2026-05-20 16:25:06 +03:00
Codex
f6bbfe1ba2
fix: add explicit text color to OrderDetailPanel value fields for dark theme visibility
2026-05-20 16:25:05 +03:00
Codex
b9c6bb2810
fix: RLS recursion, driver UI, auth errors, status counts
...
- Fix infinite RLS recursion in users policies via current_role_name()
- Add is_admin() helper and simplify users select policies
- Fix order_groups insert for service_role (n8n integration)
- Fix status option counts in dropdown (LogisticsReadinessBoard)
- Add driver delivery status buttons (loaded, on_route, delivered, problem, cancelled)
- Replace driver date range filters with single date picker + date pills
- Hide SMS/internal data from driver view in OrderDetailPanel
- Fix Edge Function error messages in OTP flow (read error.context body)
- Add update_delivery_status RPC for driver workflow
- Remove customer column from order_groups fetch (DB schema mismatch)
- UI: swap filter/search positions, limit modal width, status label cleanup
2026-05-20 16:25:05 +03:00
Codex
496abc761b
fix(delivery): simplify public choice flow
2026-05-14 21:10:27 +03:00
Codex
fc74241378
fix(delivery): show invoice refs in client flow
2026-05-14 12:51:25 +03:00
Codex
eeb2620547
fix(delivery): switch public flow to rpc
2026-05-13 18:59:30 +03:00
Codex
7e399f2517
fix(delivery): tighten public flow
...
Filter client delivery slots to tomorrow and the day after,\nkeep invalid delivery times out of the UI, and show a clearer\nerror state when saving fails.
2026-05-13 18:59:30 +03:00
Codex
633973142d
fix(delivery): load links and schedule SMS
2026-05-13 18:59:30 +03:00
Codex
b79de7afba
feat(delivery): auto-create invitation links
...
Add a Supabase trigger that creates delivery invitations and writes delivery_link on order_groups changes. n8n can now consume link_ready rows without calling the edge function first.
2026-05-13 18:59:30 +03:00
Codex
684424dd25
feat(order-groups): wire driver delivery flow
2026-05-13 18:59:30 +03:00
Codex
f2230f3277
Add logistics UI actions and demo login buttons
...
- Fix bug in transfer-to-logistics: body.note was incorrectly used for delivery_agreement_status
- Add quick actions section in OrderDetailPanel for status changes (visible to role)
- Add driver assignment buttons for logistician/admin
- Add demo login buttons for all roles (works with real Supabase config)
- Add loginAsDemoUser function to AuthContext for quick demo login
2026-05-13 18:59:30 +03:00
Codex
e29a51e7ea
Harden auth and delivery endpoints
2026-05-13 18:59:30 +03:00
Codex
5dcfa80940
Polish demo UI and delivery filters
2026-05-13 18:59:30 +03:00
root
d44d944517
Add deployment config files and supabaseClient lock fix
2026-05-03 16:44:58 +00:00
Codex
b3b8657b43
fix: merge saved delivery status into choice block
2026-04-16 19:34:57 +03:00
Codex
a867bf5464
fix: remove duplicate saved choice block
2026-04-16 18:18:45 +03:00
Codex
5142ff30db
fix: persist saved client delivery choice
2026-04-16 18:04:45 +03:00
Codex
de0cf49490
fix: show saved client delivery choice
2026-04-16 17:41:46 +03:00
Codex
31388f267d
fix: make client delivery selection explicit
2026-04-16 17:23:43 +03:00
Codex
3b4b6648ff
fix: make client flow load without edge function
2026-04-16 17:00:31 +03:00
Codex
ffc7f3a97d
fix: speed up otp login
2026-04-16 16:30:36 +03:00
Codex
a5113a2ed5
feat: simplify delivery roles and docs
2026-04-16 13:31:17 +03:00
Codex
c28c826601
feat: show client order items in delivery flow
2026-04-16 12:42:41 +03:00
Codex
ca72a4e662
feat: document product and wire real client flow
2026-04-14 23:20:50 +03:00
Codex
b147d632e8
feat: add role switch login and clean production copy
2026-04-14 23:01:02 +03:00
Codex
49e60d48c1
feat: complete delivery workflow updates
2026-04-13 16:32:18 +03:00
Codex
1798e3acfd
refactor: align delivery flow with 1c imports
2026-04-13 16:24:04 +03:00
Codex
a534d53e61
feat: tighten email otp auth flow
2026-04-09 22:35:13 +03:00
Codex
b40a4a553e
Initial import
2026-03-14 18:40:54 +03:00