История изменений
Полная история развития сайта
4 марта 2026 г.
1Статистические SQL view переведены на SECURITY INVOKER, чтобы RLS всегда применялся для API-запросов и убрать риски из Security Advisor
22 февраля 2026 г.
7Админка тренировок: новая вкладка Команды с drag-and-drop распределением в 2 колонки, слотом вратаря и слотами по ролям (нападающий/защитник/без позиции); такая же группировка добавлена на публичной странице тренировки
Исправлено выравнивание карточек игроков при бейдже Гость (единая высота строки)
Опция «Может в ворота» для полевых игроков, которые также играют в воротах — появляются и в слоте GK, и в полевых линиях
Исправлен баг с NULL slug при обновлении счёта турнирных матчей (триггер в базе данных)
Сортировка игроков по имени вместо номера во всех списках (админ-панель, состав, редактор матчей)
Увеличен модал видео голов на десктопе (мин 1000px); убраны бейджи позиций с карточек игроков в grid-виде
Гостевые игроки (is_guest) теперь отображаются в редакторе матчей для голов и ассистов
16 февраля 2026 г.
1URL без языковых префиксов: язык автоматически определяется по настройкам браузера (Accept-Language) и сохраняется в cookie. Старые ссылки с /ru/ и /en/ автоматически перенаправляются
15 февраля 2026 г.
9SEO-дружественные URL: все публичные страницы используют читаемые slug вместо UUID (напр. /games/2025-02-15-vs-zvezda-home, /roster/stefan-milosevic)
Поле slug во всех админ-формах с автогенерацией, ручным редактированием и проверкой уникальности
Редактор тренировки переделан на вкладки (Инфо, Посещаемость, Матч) с split view посещаемости на десктопе
Вкладка Состав в редакторе матча: выбранные игроки отображаются списком сбоку на десктопе
Статистика теперь показывает всех игроков из составов, а не только набравших очки (общая и турнирная)
Ввод штрафных минут (PIM) в событиях матча, короче название вкладки
Поддержка буллитов в турнирных матчах + SO метка на всех карточках результатов
Редизайн редактора матча: объединённые вкладки, визуальный скорборд, ограниченная ширина
Статистика игроков на странице турнира + универсальная таблица статистики с аватарами
14 февраля 2026 г.
3Редизайн ввода голов: упрощённая форма (автор + ассисты), прогрессивный показ на мобильном
Вкладка голов в редакторе матча + отображение авторов голов на постере результата
Исправлено отображение логотипа соперника для турнирных игр
13 февраля 2026 г.
14Унифицирован попап редактирования игрока: одинаковый дизайн на публичных страницах и в админке
Полная SEO-оптимизация: метаданные для всех страниц, Open Graph теги, robots.txt, sitemap.xml, манифест, JSON-LD структурированные данные, мультиязычные hreflang ссылки
Исправлен атрибут lang на HTML элементе — теперь меняется в зависимости от выбранного языка
Липкие заголовки на всех страницах админки, убран лишний скролл
Страница тренировок: ближайшая тренировка выделена, остальные в сворачиваемых секциях
Быстрое редактирование матчей, тренировок и игроков прямо с публичных страниц для админов
Добавлена роль тренера для членов команды
Улучшен выбор страны с автодополнением и флагами
Переработаны карточки турнирных матчей, разделён список матчей
Турнирные матчи перенаправлены в единый редактор игр
Спиннеры загрузки заменены на skeleton-компоненты
Динамические импорты, Map lookups, error boundary для производительности
Улучшена безопасность базы данных и RLS-политики
LoadingErrorEmpty применён на всех admin-страницах, SelectWithNone для команд
12 февраля 2026 г.
13Vercel Web Analytics интегрирован в приложение
Тесты доступности, исправления мобильного отображения, улучшения WCAG
Удаление команд и редизайн сетки команд с большими аватарами
Admin-ссылка добавлена в header с условной видимостью
Улучшен редактор расстановки с отображением всех линий и мобильным стилем
Диалог обрезки аватара с зумом и панорамированием
Полные имена с никнеймами в турнирном составе
Стандартизированные заголовки admin-страниц через AdminPageHeader
Заменены захардкоженные строки i18n-переводами в admin-панели
Исправлен баг бесконечной перезагрузки в редакторе расстановки
HockeyRink объединён с GameLineupEditor в режиме readOnly
Полировка компонента расстановки: размеры кругов, аватары, мобильный layout
Финализация дизайна карточек матчей и редизайн редактора матчей
11 февраля 2026 г.
17Единая структура страниц матчей с 5 вкладками для всех типов матчей
Добавлено редактирование базовых полей для обычных матчей
Все захардкоженные строки заменены i18n-переводами
Admin edit ссылка добавлена на GameMatchCard с улучшенным responsive-дизайном
Мобильная горизонтальная навигация и Playwright e2e-тесты
Улучшено управление игроками и визуальный дизайн команды
Упрощено создание аккаунтов игроков и улучшен процесс тренировок
Заявленный состав для турниров с выбором расстановки
Расширено управление тренировками: расписание, статусы и детали матча
Редизайн хоккейной площадки: вертикальное полуполе с ледовой поверхностью
Улучшена таблица игроков в admin-панели
Редизайн лендинга с новыми визуалами и логотипом команды
Улучшено отображение расстановки на площадке с автосохранением
Замена таблицы Opponents на Teams и миграция базы данных
Критические исправления авторизации и admin-панели
Исправления сессий, удаления игроков, ESLint-ошибок и DOM nesting errors
Исправлен cookie maxAge вместо невалидного свойства lifetime
10 февраля 2026 г.
5Редизайн редактора расстановки с визуальными позициями, добавлены турниры
Логотип команды добавлен на все брендированные элементы
Редактирование игроков, тренировочные команды и визуализация площадки
Улучшен UI всех страниц, подготовка к деплою на Vercel
Начальная настройка проекта — сайт хоккейной команды HC Propeleri