Новый пункт sidebar «Воспроизведение» с кастомным плеером архива по образцу iVMS-4200. Виден всем авторизованным, DVR фильтруются по dvr_access/concept_access. Фаза 1 (single-pane MVP): - Роут /playback: дерево DVR с availability dots, MJPEG video, таймлайн из /api/dvr/<id>/recordings, кастомный календарь (сегодня=зелёный, дни с записями=синий, выбранный=оранжевая обводка) - Центрированные контролы: ⏮ ⏸ ⏭ | « ×1 » | время - Live кнопка слева (красная с pulsing dot), Clip popup с SSE прогрессом, REC кнопка (логика идентична существующей view_dvr recToggle) - Пауза сохраняет кадр через canvas-capture + snap fallback Фаза 2 (multi-pane grid): - Рефакторинг state в panes[] с layout 1/4/9/16 (6/8/13 disabled) - Клик камеры → назначается в активный/первый пустой pane - Sub-stream автоматически при layout>1 (снижение битрейта ×4-8) - Новые камеры стартуют в live; архив — кликом по таймлайну - Sync play/pause/seek/speed/date между всеми pane'ами - Speed resync: рестарт всех pane'ов от master ISO + /speed broadcast Избранное (saved grid views): - Таблица user_pb_views + API GET/POST/PUT/DELETE /api/playback/views - ★ кнопка popup для сохранения, секция «Избранное» в дереве над DVR'ами - Клик применяет layout+камеры, активное подсвечено оранжевым Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
No description provided
Languages
Python
97.4%
C
2.2%
Dockerfile
0.3%