Commit Graph
38 Commits
Author SHA1 Message Date
NotBigGhostandClaude Fable 5 7b61443fb9 UI: единое подтверждение удаления через ConfirmDialog
- админка, записи: удаление партии раньше срабатывало сразу по клику на
  иконку и показывало «Удалено» даже при ошибке — теперь модалка
  подтверждения и честная обработка ошибок;
- ачивки и dev-удаление аккаунта: window.confirm заменён на ConfirmDialog
  (в приложении принят именно он);
- настройки группы: удаление участника — с подтверждением.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 17:40:53 +03:00
NotBigGhostandClaude Fable 5 d2c0feafcc UI: единый Switch для булевых опций вместо смеси чекбоксов и свитчей
Новый компонент Switch (разметка .switch из global.css). Применён:
- создание группы: дополнения теперь свитчи, как в настройках группы;
- настройки группы: базовые дополнения показываются, как при создании
  (включены, заблокированы, подпись «всегда включено»), а не скрываются;
- админка: «Группировать по группам» и флаг «выбыл» в правке партии.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 17:38:46 +03:00
NotBigGhostandClaude Fable 5 cbf3cfc6e6 UI: единый PlayerLink — ники игроков кликабельны во всех местах просмотра
Новый компонент PlayerLink (ссылка на /u/:id, кликабельно всё поле строки,
stopPropagation для вложенности в кликабельные карточки). Применён:
- Leaderboard и общая статистика (рефакторинг ручных Link);
- страница партии: результаты и состав;
- настройки группы: список участников;
- список партий и незавершённые на главной (карточки button -> div,
  т.к. ссылки внутри button — невалидная разметка).
«пригласил: X» в приглашениях остаётся текстом — в API нет id пригласившего.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 17:37:19 +03:00
NotBigGhostandClaude Opus 4.8 1e19038b7c Справка: страница /help с описанием подсчёта очков игроков + пункт «Справка» в боковом меню
Новая страница /help: формула League Points, нормировка по числу игроков, ничьи,
выбывшие = последнее место, порог 3 партии для топа, прочие показатели. Текст
соответствует services/scoring.py. Задел под будущие правила и подсказки.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 23:14:12 +03:00
NotBigGhostandClaude Opus 4.8 75feb9d15a UI: рандом фракции — «Рандом всем» тоже анимируется; плавное замедление барабана и пауза 0.5с перед выбором
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 17:50:31 +03:00
NotBigGhostandClaude Opus 4.8 0745d07887 UI: кнопка «Меню» надёжно открывается на мобильных (onClick вместо pointerup + touch-action)
Открытие бокового меню переведено на нативный onClick: на тач-устройствах
pointerup часто не приходит из-за pointercancel, из-за чего меню не открывалось.
Долгое удержание (10с → админка) оставлено на таймере и подавляет этот клик.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 17:48:08 +03:00
NotBigGhost cec3aa25a6 Мелкие правки вёрстки 2026-06-26 17:44:28 +03:00
NotBigGhostandClaude Opus 4.8 712dc529c3 UI: список партий группы — дата серой, ники и номера мест белым текстом (контраст)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:59:28 +03:00
NotBigGhostandClaude Opus 4.8 395b134c9b UI: поле «О себе» больше нельзя растягивать (resize: none)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:58:32 +03:00
NotBigGhostandClaude Opus 4.8 7269afcd4e UI: подтверждение перед отменой незавершённой и удалением сыгранной партии (модалка)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:57:35 +03:00
NotBigGhostandClaude Opus 4.8 4d365a373b UI: рандом фракции — убрана подпись «случайная», добавлена анимация-барабан названий в строке
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:56:12 +03:00
NotBigGhostandClaude Opus 4.8 1438a17441 Партии: «выбывшие» игроки (красный крестик) = последнее место
Выбор места при завершении партии получает опцию «✕ выбыл»; выбывшему
авто-проставляется общее последнее место (ничья последнего ранга), плюс флаг
eliminated для отрисовки красным крестиком. В результатах и списке партий
выбывшие показываются крестиком и идут в конец. Подсчёт очков не меняется
(используются обычные числовые места).

Бэкенд: модель MatchParticipant.eliminated + миграция 0009 (идемпотентная);
схемы (place стал необязательным, +eliminated); match_service (хелпер
_resolve_finish_places, finish/update); проброс eliminated в роутерах и stats.
Фронт: выбор места с крестиком в MatchDetailPage и AdminMatchEdit, отрисовка в
результатах и MatchList, стиль .place-badge.eliminated; регенерация schema.d.ts.
Тесты: завершение с выбывшим (последнее место, засчитан), все-выбывшие → 422.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:54:37 +03:00
NotBigGhostandClaude Opus 4.8 cd7e5d16b4 UI: дополнения группы — горизонтальные тумблеры вместо галочек; строка базовой игры скрыта
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:43:10 +03:00
NotBigGhostandClaude Opus 4.8 c39c96d5dc UI: убран выбор группы из вкладки аккаунта (остаётся на странице группы)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:42:05 +03:00
NotBigGhostandClaude Opus 4.8 28c0358b45 UI: вместо кнопки «Назад» — кликабельное название игры, ведущее на главную
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:41:34 +03:00
NotBigGhostandClaude Opus 4.8 d32237975d UI: секретный вход в админку — удержание кнопки меню 10с; убраны видимые кнопки входа админа
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:40:49 +03:00
NotBigGhostandClaude Opus 4.8 460b57e792 UI: кнопка «Меню» (гамбургер) в нижней панели → боковое меню справа (плашка аккаунта + Выйти)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:39:20 +03:00
NotBigGhostandClaude Opus 4.8 6196c39d25 UI: круг создания партии — крупнее, полукруг, по центру разделяет слоты, смещён вниз и на передний план
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:36:54 +03:00
NotBigGhostandClaude Opus 4.8 f4286ffa6c Уведомления: persistent + live (push-to-invalidate → pull)
Новая система уведомлений поверх готовой SSE-шины: события пишутся в БД,
живут 72 часа и чистятся (при чтении списка + фоновой задачей), всплывают
сверху экрана в момент прихода, доступны через колокольчик в правом верхнем
углу (бейдж непрочитанных + панель).

Типы: приглашение в группу (→ /group), старт/финиш партии участникам кроме
инициатора (→ /match/{id}). Титулы — готовый хелпер-задел (не подключён, т.к.
выдача титулов игрокам ещё не реализована).

Бэкенд: модель Notification + миграция 0008 (идемпотентная), notification_service,
notify.notifications_changed, роутер /api/notifications (GET + /read), триггеры
в groups/matches, фоновая чистка в lifespan, защита hub.publish от закрытого loop.
Фронт: useNotifications/useMarkNotificationsRead, NotificationBell/Panel/Toaster,
перекомпоновка top-bar, стили; useServerEvents знает тип notifications.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 15:16:40 +03:00
NotBigGhostandClaude Opus 4.8 2500ca575b Реал-тайм через SSE (push-to-invalidate): живые приглашения/партии, авто-обновление без перезагрузки
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 22:52:41 +03:00
NotBigGhostandClaude Opus 4.8 16452f7bbe Партии: оптимистичная блокировка (version) — устаревшие правки/отмена отклоняются (фикс гонки завершить-vs-отменить)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 22:39:20 +03:00
NotBigGhost 9c4535e8c1 отладка прикрепления файлов 2026-06-17 22:07:52 +03:00
NotBigGhostandClaude Opus 4.8 043595beff Админ: управление медиа партии (добавление/удаление в любой момент)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 21:38:06 +03:00
NotBigGhostandClaude Opus 4.8 8ac1b5acef Партии: фото в общем комментарии (до 10), загрузка при завершении
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 21:34:39 +03:00
NotBigGhost 020c694a44 Убрана подсветка нажатия 2026-06-17 20:51:11 +03:00
NotBigGhost 1cb2fb2bea Правка вёсртки окна админа, форма редактирования партии на весь экран 2026-06-17 20:47:42 +03:00
NotBigGhostandClaude Opus 4.8 87c7f48a3e Группы: статистика игроков — все участники (несыгравшие отдельным блоком), строка кликабельна целиком
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 20:11:32 +03:00
NotBigGhostandClaude Opus 4.8 366742d6da Группы: добавление (приглашение) со страницы чужого профиля
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 20:09:19 +03:00
NotBigGhostandClaude Opus 4.8 a5c54512a5 Группы: приглашения вместо авто-добавления (согласиться/отказаться)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 20:07:20 +03:00
NotBigGhostandClaude Opus 4.8 66370c7df4 Группы: плашка + для создания группы в списке Мои группы
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 19:56:54 +03:00
NotBigGhost e3a78301c2 Исправлен баг, из-за которого не отображалась кнопка входа через telegram 2026-06-17 19:24:46 +03:00
NotBigGhostandClaude Opus 4.8 c4065962e2 Редактор ачивок в админке + файловое хранилище ачивок (задел под титулы)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 17:41:20 +03:00
NotBigGhostandClaude Opus 4.8 96daddae05 Кастомизация профиля (о себе, аватар) и просмотр профилей других игроков + общая статистика
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 17:27:24 +03:00
NotBigGhost b302ec769a переименовывание аккаунтов админом 2026-06-17 16:43:43 +03:00
NotBigGhost 3291c67b2c Добавлена функция удаления аккаунтов с каскадным удалением из всех записей для дева 2026-06-17 16:34:29 +03:00
NotBigGhost 865c967d5e Добавлена форма изменения ника при регистрации аккаунта на случай, когда уже существует аакунт с ником, совпадающим с ТГ тегом регистрируемого аккаунта 2026-06-17 16:17:14 +03:00
NotBigGhost b04fbb2e17 Завершена настройка домена для дева, теста и прода. Соединение через ssh-туннель 2026-06-16 19:15:54 +03:00
NotBigGhost 56b5d09a4d v0.1 - макет интерфейса, аутентификация через логин, аккаунт админа, создание партии в 2 этапа, базовые настройки профиля и группы, переключение между группами, статистика 2026-06-16 17:41:06 +03:00