diff --git a/webui/index.html b/webui/index.html index 48268eb0..92fe0871 100644 --- a/webui/index.html +++ b/webui/index.html @@ -5133,12 +5133,23 @@ - +

Video Source

Checking…
+
+ + + + + + Which libraries the video side scans. + +

API Configuration

@@ -5300,21 +5311,6 @@ Select which music library to use (doesn't affect config file)
- -
- - - - - - Which libraries the video side scans. - -
diff --git a/webui/static/video/video-settings.js b/webui/static/video/video-settings.js index 4b5d1dda..7f70caf5 100644 --- a/webui/static/video/video-settings.js +++ b/webui/static/video/video-settings.js @@ -28,24 +28,27 @@ .then(function (d) { renderServer(host, d || {}); }) .catch(function () { renderServer(host, {}); }); } - function srvBtn(id, label, active) { - return ''; + } + return ''; } function renderServer(host, d) { var plex = !!d.plex, jelly = !!d.jellyfin; + var html = '
' + + srvOpt('plex', 'Plex', plex, d.server) + srvOpt('jellyfin', 'Jellyfin', jelly, d.server) + '
'; if (!plex && !jelly) { - host.innerHTML = '
No video server connected. ' + - 'Connect Plex or Jellyfin under Server Connections ' + - 'below to scan and browse your video library. (Navidrome and Standalone are music-only.)
'; - } else if (plex && jelly) { - host.innerHTML = '
' + - srvBtn('plex', 'Plex', d.server) + srvBtn('jellyfin', 'Jellyfin', d.server) + '
' + - '
Both are connected — pick which one the video side uses.
'; + html += '
Neither is connected yet. Set up Plex or Jellyfin in ' + + 'Music → Settings → Server Connections — the video side reuses those credentials.
'; } else { - host.innerHTML = '
' + - 'Video uses ' + (plex ? 'Plex' : 'Jellyfin') + '
'; + html += '
The video side uses this server, independent of Music. ' + + 'Greyed-out options aren\'t connected — set them up in Music settings.
'; } + host.innerHTML = html; } function pickServer(id) { fetch(SERVER_URL, { diff --git a/webui/static/video/video-side.css b/webui/static/video/video-side.css index 48163c35..484e7ba9 100644 --- a/webui/static/video/video-side.css +++ b/webui/static/video/video-side.css @@ -140,6 +140,12 @@ body[data-side="video"] [data-music-only] { body[data-side="video"] [data-stg="library"]:not([data-video-only]) { display: none !important; } +/* The video side has its OWN server section (Video Source above) and reuses the + shared Plex/Jellyfin credentials — so hide music's Server Connections group + entirely on the video side. Video never configures or selects the MUSIC server. */ +body[data-side="video"] .settings-group[data-stg="connections"]:not([data-video-only]) { + display: none !important; +} /* ── Dashboard header: match music, minus the sweep animation ──────────── */ /* The header reuses music's .dashboard-header markup/CSS for an identical look; @@ -1479,6 +1485,9 @@ a.vd-guest:hover .vd-guest-name { color: rgb(var(--vd-accent-rgb)); } } .vid-source-btn:hover { background: rgba(255, 255, 255, 0.12); color: #fff; } .vid-source-btn.active { background: rgba(56, 189, 248, 0.9); border-color: transparent; color: #fff; } +.vid-source-btn--off { opacity: 0.45; cursor: not-allowed; } +.vid-source-btn--off:hover { background: rgba(255, 255, 255, 0.06); color: rgba(255, 255, 255, 0.8); } +.vid-source-off { font-size: 11px; opacity: 0.85; } /* library: no-server gate banner */ .video-noserver {