f263d84a8d
One source of truth for the branded player on desktop (archive) and
mobile. The ArchivePlayer class moves out of app.js into player.js
(name kept; app.js still does `new ArchivePlayer`); the .pjs styles
move out of style.css into player.css. Both archive.html and mobile.html
load the shared module before their own script.
The shared player gains two additive, backward-compatible options:
- live: timeline hidden, only pause/play + fullscreen (mobile Live).
- autohide:false: control bar always visible (touch); desktop keeps
autohide (default true), so desktop archive behaves exactly as before.
Fullscreen is now self-contained (no global toggleFullscreen dep) so it
works on mobile too, with an iOS <video> fallback.
mobile.js drops its duplicated Player class and uses ArchivePlayer.
Verified on .79: /archive 200 loads player.{js,css}; app.js has no
class def; mobile (Host :8443) loads the shared module.
VERSION 0.0.154 -> 0.0.155
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
47 lines
1.7 KiB
HTML
47 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="ru">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>CoRE.Vizion+ — Архив</title>
|
|
<link rel="stylesheet" href="/static/style.css">
|
|
<link rel="stylesheet" href="/static/player.css">
|
|
</head>
|
|
<body data-page="archive">
|
|
<div class="layout">
|
|
<aside>
|
|
<a class="nav-item" href="/" data-nav="live"><span class="ico">▦</span>Live view</a>
|
|
<a class="nav-item active" href="/archive" data-nav="archive"><span class="ico">🗄</span>Архив</a>
|
|
<div class="aside-spacer"></div>
|
|
<a class="nav-item" href="/settings" data-nav="settings"><span class="ico">⚙</span>Настройки</a>
|
|
</aside>
|
|
|
|
<main class="archive-main">
|
|
<aside class="arch-side">
|
|
<div class="arch-cams" id="arch-cams"></div>
|
|
<div class="arch-date">
|
|
<input type="date" id="date" class="arch-dateinput">
|
|
<div class="arch-cal" id="calendar"></div>
|
|
</div>
|
|
</aside>
|
|
<div class="arch-content" id="arch-content">
|
|
<div class="player-wrap" id="player">
|
|
<div class="hint">Кликните по таймлайну ниже, чтобы смотреть запись</div>
|
|
</div>
|
|
<div class="timeline" id="timeline"></div>
|
|
<footer class="grid-bar" id="arch-bar">
|
|
<div class="gb-left"></div>
|
|
<div class="gb-center"></div>
|
|
<div class="gb-right">
|
|
<button class="gb-btn" id="arch-fs" title="Полный экран" aria-label="Полный экран">⛶</button>
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
|
|
<script src="/static/player.js"></script>
|
|
<script src="/static/app.js"></script>
|
|
</body>
|
|
</html>
|