Commit Graph

272 Commits

Author SHA1 Message Date
root 34b01758ef fix(ui): use СуперСам and normal order composition heading 2026-08-06 11:13:40 +00:00
root 74de57f3fc fix(ui): use СуперСам and normal order composition heading 2026-08-06 11:12:47 +00:00
root 9be5f81ffe fix(ui): localize SuperSam name and normalize order headings 2026-08-06 11:11:56 +00:00
root 9e4ce20c96 fix(push): use SuperSam application icon in notifications 2026-08-06 10:15:42 +00:00
root 4768864c08 fix(push): use Supabase database host for sender 2026-08-06 10:07:37 +00:00
root 1922778e0f feat(push): prepare client subscription test contour 2026-08-06 08:56:12 +00:00
root 82eefb2225 feat(push): PushSubscriptionBanner on delivery consent page 2026-08-06 08:30:07 +00:00
root 98ebc935c2 fix(pwa): force SW bump for tab visibility on mobile 2026-08-06 08:12:56 +00:00
root 8faa839056 chore(pwa): bump cache version 2026-08-06 08:03:11 +00:00
root 1f8a8ea2c4 feat(orders): tabbed navigation for logistics blocks (Все + per-block tabs) 2026-08-06 08:03:11 +00:00
root 811e2a1254 chore(pwa): bump cache version 2026-08-06 07:51:32 +00:00
root 3a402f7f74 fix(orders): status summary cards with borders + larger text 2026-08-06 07:51:32 +00:00
root 4459d03932 chore(pwa): bump cache version 2026-08-06 07:48:40 +00:00
root db24e8929c feat(orders): exhaustive timeline + status summary + specific field_change labels 2026-08-06 07:48:40 +00:00
root b1a09ae71a chore(pwa): bump cache version 2026-08-06 07:14:46 +00:00
root 464cc57eb9 feat(orders): progress stepper + fix field_change label 2026-08-06 07:14:46 +00:00
root 15b69102b0 chore(pwa): bump cache version 2026-08-06 07:11:02 +00:00
root 225e961907 fix(logistics): shorten column titles, fit headers without truncation 2026-08-06 07:11:02 +00:00
root 4bf95064bd chore(pwa): bump cache version 2026-08-06 07:06:41 +00:00
root 349a5c5acf fix(logistics): header font size matches table body, bold weight 2026-08-06 07:06:41 +00:00
root db261f96db chore(pwa): bump cache version 2026-08-06 07:01:15 +00:00
root 63a59d42bb feat(logistics): sort every table column 2026-08-06 07:01:15 +00:00
root 24e708901a chore(pwa): bump cache version 2026-08-06 06:52:48 +00:00
root 60d6033085 feat(logistics): improve order workflow and aging 2026-08-06 06:52:32 +00:00
root d11ccd4f76 fix: SMS status — show real delivery state from log, expandable SMS text in history 2026-07-22 14:10:56 +00:00
root a5817110c9 fix: SMS campaign — compact cards + pagination 20/page for logs & manual groups 2026-07-22 12:33:38 +00:00
root d8930925be fix: SMS city profiles — жёсткие цвета вместо CSS variables
- Карточки: #e8f0ec (светло-зелёный) / #0d1a16 (тёмный) — чётко виден на Panel
- Внутренние блоки: #ffffff / #142822 — контраст с карточкой
- Название города: #10211b / #ecf5f2 — тёмный/светлый, жирный
- Все цвета заданы через CSS классы с [data-theme=dark] — без var()
- Toggle: #22c55e / #c8d8d2 — виден в обеих темах
2026-07-22 09:54:36 +00:00
root 2103fe2afe fix: SMS city profiles — inline styles для надёжного контраста
- Карточки профиля: accent-soft (зелёный оттенок) — виден на Panel
- Внутренние блоки: surface-strong (непрозрачный) — контраст с карточкой
- Инпуты: color-base — отличается от карточек
- Все цвета через CSS variables — работают в обеих темах
- Никаких Tailwind классов с var() которые могут не разрешиться
2026-07-22 09:51:56 +00:00
root 69c261cc8f fix: SMS city profiles — контраст цветов для светлой и тёмной темы
- Внешние карточки: --color-surface (полупрозрачный, виден на фоне)
- Внутренние блоки: --color-surface-strong (непрозрачный, контраст)
- Inputs/select: --color-base (отличается от карточек)
- Option элементы: явный bg + color для тёмной темы
- Светлая: карточки голубовато-зелёные, внутри — белые блоки
- Тёмная: карточки чуть светлее фона, внутри — ещё светлее
2026-07-22 08:41:48 +00:00
root 1a60fe07e0 fix: backup-code-s3 retention bash comparison 2026-07-22 06:59:44 +00:00
root f67fe6432d feat: backup code to S3 after deploy
- scripts/backup-code-s3.sh — tar.gz (без node_modules/.git/dist) → S3
- deploy.sh: вызывает backup-code-s3.sh после деплоя
- Retention 30 дней, Beget Cloud Storage
- Также добавить в cron: 0 1 * * *
2026-07-22 06:58:15 +00:00
root 6c9e13d19a fix: SMS city profiles UI — контраст цветов, выравнивание
- bg-[var(--color-surface-strong)] вместо --color-bg внутри карточек
- Карточки профилей: --color-surface-strong, вложенные блоки: --color-surface
- Текст всегда var(--color-text) — виден в светлой и тёмной теме
- Toggle: компактнее (h-5 w-10)
- Выравнивание: flex-wrap, gap, border-t для разделения секций
- SMS ON/OFF badge вместо toggle в строке заголовка
2026-07-22 06:45:39 +00:00
root 484f9efcba feat: SMS city profiles — гибкая конфигурация SMS по городам
- DB: sms_city_profiles (delivery_mode, pickup_mode, second_sms_enabled, paid_storage_enabled, sms_enabled)
- Python first_sms: link mode (согласование) vs notification mode (без ссылки, без 2-й SMS)
- Python second_sms: проверка second_sms_enabled из профиля
- Python paid_storage: проверка paid_storage_enabled из профиля
- Frontend: SmsCityProfilesPanel — выбор режима, кастомный текст, toggle'ы
- Дефолты: Севастополь=link, Ялта=notification без ссылки
- Замена sms_city_rules на sms_city_profiles
2026-07-21 19:55:51 +00:00
root a4ac117b51 fix: paid_storage SMS — убрать фильтр по городам
- Убран sms_allowed_for_city из paid_storage скрипта
- Убрана paid_storage из UI (dropdown + labels)
- Описание обновлено: только 1-е и 2-е SMS
2026-07-21 19:08:22 +00:00
root e2dcf6db72 merge: server updates + sms city rules 2026-07-21 14:58:19 +00:00
root de4ecaad27 feat: SMS city rules — гибкое управление SMS по городам
- DB: sms_city_rules table + sms_allowed_for_city() function + RLS
- Python: фильтр sms_allowed_for_city в first_sms, second_sms, paid_storage
- Frontend: SmsCityRulesPanel — toggle on/off, период дат, комментарии
- Интеграция в SmsCampaignPanel как вкладка 'SMS по городам'
- Поддержка '*' (все города / все кампании)
2026-07-21 14:58:11 +00:00
root a3ffd0c030 sync from mkn8n 2026-07-16 12:43:02 +00:00
root 319761a24c merge: server fixes + suggestions voting 2026-07-16 12:42:31 +00:00
root 6ad969f297 merge: suggestions voting + logistician access from mkn8n 2026-07-16 12:40:43 +00:00
root efe98c09d4 feat: suggestions voting + logistician access
- Add suggestion_votes table (DB migration applied)
- Vote/unvote with optimistic UI update
- Sort suggestions by vote_count desc, then created_at desc
- Add 'Предложения' tab to logistician role
- Vote button shows count, highlighted when voted
2026-07-16 12:30:14 +00:00
root 0f38ce0095 fix: normalizeDateForInput парсит dd.MM.yyyy + customerDate fallback для логистов 2026-07-14 18:52:02 +00:00
root 3b93e755fb fix: логисты могут ставить Доставлено без части дня + дублирующий индекс удалён 2026-07-14 18:48:03 +00:00
root 48e238e634 fix: логисты могут ставить прошедшие даты + dedup триггер 2026-07-14 18:00:35 +00:00
root 052e5e7e86 fix: calendar overlap + allow past dates for logistician
1. CalendarWidget: add relative to calendar container so absolute popup
   positions correctly (no more overlapping with other elements)
2. OrderDetailPanel: logistician/admin/manager can select past dates
   (3 months back) for retroactive delivery closing
3. canGoBack always true for logistician — can navigate to past months
4. Existing past delivery dates are preserved (not reset to tomorrow)
2026-07-13 14:42:36 +00:00
root c86e0e1ea6 fix: SMS labels — clarify delivered means SMS delivered to phone, not goods
1-е SMS: «✓ доставлено» → «✓ получено клиентом»
2-е SMS: added «✓ получено клиентом»
«ждём подтверждения» → «ждём ответ оператора»
2026-07-13 14:32:19 +00:00
root 5818b94bbe fix: remove duplicate status displays
1. Remove delivery status from info grid (already shown as Badge in header)
2. Remove SMS notification Badge from SmsStatusCard header (timeline shows it)
3. Remove inline hint on blocked buttons — keep only warning banner below
2026-07-13 14:21:57 +00:00
root 9cf7cfbdf4 fix: unique Traefik middleware name for HTTP->HTTPS redirect
Previous redirect-to-https middleware name conflicted with other
containers (n8n, gitea), causing HTTP router to fail with 404 instead
of redirecting to HTTPS. Renamed to supersam-redirect.
2026-07-13 13:53:20 +00:00
root b2dc1a3310 fix: restore filter persistence in LogisticsReadinessBoard
Filters (query, displayStatus, city, deliveryType, dateFrom/To) now
persist to localStorage and restore on page reload.
2026-07-13 13:38:46 +00:00
root 755385cf0e fix: StatusActionPanel smart hints + driver name lookup + logistician can edit shipment + completed label
1. StatusActionPanel: all buttons clickable (no more manual:false blocking)
   - Click on current status shows actual state: "Водитель уже назначен: Иван"
   - "Назначен водитель" clickable even if already assigned
   - "Согласовано" clickable even if already agreed
2. Status indicators: green badges ✓ Дата согласована / ✓ Водитель: имя
   + warning badges if missing
3. DriverAssignmentPanel: look up driver name from drivers list if
   assignedDriverName is empty (Supabase join failed)
4. DriverShipmentPanel: now visible to logistician/admin too — can edit
   shipment data (fix wrong driver checkboxes)
5. SmsStatusCard: add completed label ("Завершено")
2026-07-13 13:16:48 +00:00
root 17f93a65ae fix: logistics UI — problem badge overlap, driver name, SMS labels, shipment report
1. LogisticsReadinessBoard: problem badge on separate line (no overlap)
2. DriverAssignmentPanel: show "Водитель назначен" instead of "Неизвестно"
   when driver name not resolved from join
3. SmsStatusCard: "confirmed" label = "Клиент согласовал дату" (not "Согласовано")
4. StatusActionPanel: when currentStatus=problem, all status buttons clickable
   (logistician can resolve problem by setting any status)
5. DriverShipmentReport: show ALL items — green check for delivered,
   red cross for not delivered, with reason comments
2026-07-13 13:07:03 +00:00