Commit Graph

21 Commits

Author SHA1 Message Date
zeroday 4d01a65859 docs: реестр операторов и privacy@ в уведомлении о куки
Приведение всех четырёх сайтов ООО к единому виду. Полноценная политика здесь
по-прежнему не нужна — форм и сбора данных на сайте нет, — но реквизиты
дополнены записью в реестре операторов (рег. номер 35-26-021324, приказ № 127
от 07.08.2026) и единым адресом privacy@umbyte.ru для вопросов по обработке.
2026-08-26 11:00:13 +03:00
zeroday 0dbbc7487e feat(landing): уведомление о куки и баннер
Баннер сделан по образцу АгроТО, но БЕЗ выбора категорий. На umbyte.ru нет
ни аналитики, ни рекламных пикселей, ни форм — только техническая сессия
админки. Окно настроек с переключателями, которые ничего не переключают,
показывало бы пользователю выбор, которого нет. Две кнопки: «Хорошо» и
«Отклонить», выбор помнится 180 дней.

Рядом /cookies.html — короткое уведомление: что за куки, откуда, на какой
срок, как отказаться, и прямо сказано, что персональные данные посетителей
сайт не собирает (кнопка связи открывает почтовый клиент, форм нет). Поэтому
полноценная политика обработки ПДн здесь не нужна — в отношении посетителей
компания не выступает оператором.

Если появится Метрика или форма обратной связи — берём полный вариант с
категориями из АгроТО, механика хранения совпадает.
2026-08-25 22:40:34 +03:00
zeroday f8730d9d09 fix: тип запроса секций и догоняющая миграция английских колонок
Оба дефекта вскрылись сборкой образа после слияния веток.

1. public.ts: SQL выбирает content_json_en, а описание типа запроса пришло из
   ветки визиток и этой колонки не знало — tsc отказывался собирать. След
   слияния: запрос из одной ветки, тип из другой.

2. Английские колонки (sections.content_json_en, products.title_en/subtitle_en/
   description_en) существуют на боевой базе, но их не создаёт ни одна
   миграция — когда-то добавили руками. На бою работало, на любой ЧИСТОЙ базе
   приложение упало бы на первом запросе /api/content. Заведена 005 с
   IF NOT EXISTS: на бою пусто, на чистой базе создаст.

Проверено на живом сайте: образ собран, контейнер healthy, миграции 004 и 005
применились сами, /api/content отдаёт 4 раздела на двух языках, 2 продукта,
полные реквизиты; страница визитки отвечает 200.
2026-08-25 22:35:20 +03:00
zeroday 29d1386dd9 merge: свести ветку визиток из Gitea с локальной работой по лендингу
Две линии разработки разъехались и месяц жили порознь: в Gitea уехали
электронные визитки с QR-кодом, а в рабочей копии на fortress остались шесть
коммитов, которые до репозитория не дошли и, значит, не попали на сайт —
английская версия с переключателем языков, карточка Бонитировки, логотипы
продуктов, реквизиты компании в подвале, убранная кнопка Telegram, имя
директора латиницей. Плюс незакоммиченное бургер-меню.

Что разрешено вручную:

1. Landing.tsx, блок контактов. Столкнулись наша расстановка (почта главной
   кнопкой с подписью из cta_primary, телефон второй) и правка из Gitea,
   переводящая оба контакта с href на onClick, чтобы адрес и номер не лежали
   в разметке и их не собирали боты. Взято и то, и другое: защита от ботов
   сохранена, порядок и оформление наши, адрес почты в подписи не светится.

2. Коллизия номеров миграций: обе стороны завели номер 003. На живой базе
   применены 001, 002 и 003_business_cards, а 003_product_url_and_requisites
   не выполнялась никогда — она и переименована в 004, чтобы раннер (он
   отслеживает миграции по имени файла) отработал её штатно.

3. package-lock пересобран под слитый манифест, а не выбран со стороны.

Проверено: tsc чист, vite build проходит, 118 модулей, 241 КБ.
2026-08-25 22:27:25 +03:00
zeroday 18a0888c13 feat(landing): бургер-меню и переключатель языка
Работа лежала незакоммиченной в рабочей копии на fortress. Фиксирую как есть,
до слияния с веткой визиток, чтобы не потерять при разборе расхождения.
Заодно подняты vite 5.4.10 -> 5.4.21 и plugin-react 4.3.3 -> 4.7.0.
2026-08-25 22:23:49 +03:00
admin 3199b681a2 feat(landing): настоящие логотипы продуктов и карточки в их фирменных цветах
Две одинаковые серые плитки не давали понять, что это разные приложения,
а у Бонитировки стояла служебная заглушка вместо логотипа.

- logo_url и brand_color у продукта; логотипы взяты из самих приложений;
- фон и рамка карточки — мягкий градиент фирменного цвета, ссылка тоже;
- в шапке было «1 — ФЛАГМАНСКИЙ ПРОДУКТ», стало «2 — ПРОДУКТА В PRODUCTION».
2026-08-20 00:15:21 +03:00
admin b117f3a740 feat(landing): второй продукт — Бонитировка
Компания с одним продуктом читается как случайный проект; два продукта в
смежных нишах агропрома показывают специализацию. Бонитировка работает на
живых хозяйствах и имеет свой сайт — по статусу это тоже production.
Добавлена иконка оценочного листа.
2026-08-20 00:10:26 +03:00
admin e2eee024a6 fix(landing): убрана нерабочая кнопка Telegram
Адрес вёл в никуда — нерабочая кнопка на сайте хуже, чем её отсутствие.
Главным действием стала почта, рядом телефон. Оба контакта совпадают с теми,
что указаны на agroto.ru и в договорах.
2026-08-20 00:05:45 +03:00
admin ae71f9c64b feat(landing): имя директора латиницей в английской версии 2026-08-19 23:58:15 +03:00
admin 0c295386fa feat(landing): английская версия сайта с переключателем языков
Нужна для проверки компании иностранными партнёрами и магазинами приложений:
проверяющий должен понять, кто мы и чем заняты, не зная русского.

- переводы лежат в тех же строках БД (products.*_en, approach_items.*_en,
  sections.content_json_en, settings.company_name_en/company_address_en),
  админка остаётся одна;
- фронт откатывается на русский ПО КАЖДОМУ ПОЛЮ отдельно — недопереведённая
  секция не оставляет пустого места на странице;
- выбор языка запоминается в localStorage, проставляется <html lang>.
2026-08-19 23:55:45 +03:00
admin ad901c1ee4 feat(landing): ссылка на сайт продукта и реквизиты компании в подвале
Нужно для подтверждения принадлежности сайта компании: по реквизитам
организацию проверяют контрагенты и магазины приложений, а ссылка связывает
ООО «Умный Байт» с его продуктом АгроТО.

- products.site_url (миграция 003), отдаётся в /api/content;
- в карточке продукта — ссылка на сайт;
- в подвале — ИНН, КПП, ОГРН, юр. адрес, генеральный директор, почта и телефон.
  Значения лежат в settings, правятся через админку без пересборки.
2026-08-19 23:43:48 +03:00
admin 3d4bed91ec card: кнопка QR-кода визитки (локальная генерация, без внешних сервисов) 2026-07-07 18:44:43 +03:00
Nik 6f9752023d card: кнопка видима (убран нерабочий fade, opacity по умолчанию) 2026-06-08 12:00:15 +03:00
Nik 28cc4ca0e0 card: fix невидимой кнопки (конфликт анимаций reveal/holo) 2026-06-08 11:16:02 +03:00
Nik f41450eca8 card: кнопка «Добавить в контакты» + надёжное открытие vCard на iOS 2026-06-08 11:00:18 +03:00
Nik 80f0367e72 Электронные визитки: таблица + API + публичная страница /card/:slug + раздел в админке с загрузкой фото 2026-06-08 00:05:26 +03:00
Nik 3a2404295d chore: убрать docker-compose.yaml с секретами из git 2026-06-07 19:37:32 +03:00
Nik b22bf3dee3 landing: динамический счётчик продуктов, телефон, защита email/телефона от ботов 2026-06-07 19:37:02 +03:00
admin f2d7a6cf4c fix: track applied migrations to prevent duplicate seeds on restart 2026-05-13 10:02:30 +03:00
admin 02e96d2ac5 feat: remove telegram button from CTA section 2026-05-13 09:49:18 +03:00
admin 9e21350def Initial commit — Умный Байт landing 2026-05-13 09:32:45 +03:00