summaryrefslogtreecommitdiff
path: root/web/css/player.css
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-03 19:17:04 +0300
committerPaul Buetow <paul@buetow.org>2026-05-03 19:17:04 +0300
commit30c2b0fe8232cc748ab2bded6ab4d76febe32425 (patch)
tree985578b326a1ff8fe7af395bf08471857376b8fc /web/css/player.css
parent687b86cdeef2192272f0945ddd496322a9113f9e (diff)
fix(admin): fix rescan goroutine lifecycle and race on shared ScanProgress
- Protect adminService scan state (cancel func + progress pointer) with sync.Mutex. - Allocate fresh ScanProgress per trigger and pass it to the scanner, eliminating races on the previously shared progress struct. - Cancel previous scan context before starting a new one. - Add tests for cancellation, fresh progress per scan, concurrent triggers, and empty progress when never started. - Fix race-prone tests by polling Running==true before waiting for completion.
Diffstat (limited to 'web/css/player.css')
-rw-r--r--web/css/player.css21
1 files changed, 21 insertions, 0 deletions
diff --git a/web/css/player.css b/web/css/player.css
index c6070f9..0f468f9 100644
--- a/web/css/player.css
+++ b/web/css/player.css
@@ -137,6 +137,27 @@
background: var(--player-stage-bg);
}
+/* Image viewer inside player */
+.player .media-image {
+ width: 100%;
+ height: 100%;
+ object-fit: contain;
+ display: block;
+ transition: transform 0.15s ease;
+ user-select: none;
+}
+.player .media-image.hidden {
+ display: none;
+}
+
+/* Show/hide controls per media type */
+.player.has-image .video-only {
+ display: none !important;
+}
+.player:not(.has-image) .image-only {
+ display: none !important;
+}
+
/* Overlay controls */
.player .controls {
flex: 0 0 auto;