video settings: hide music API Configuration, add video API placeholders

On the video side the API Configuration section (Spotify/Tidal/Deezer/etc.) is
all music — hidden now (group marked data-music-only). In its place, a video API
Configuration group (data-video-only) with disabled TMDB + TVDB placeholders for
the metadata sources we'll likely use. Music side unchanged.
This commit is contained in:
BoulderBadgeDad 2026-06-14 00:34:42 -07:00
parent 7c8f06f427
commit e982b19bc5
3 changed files with 29 additions and 1 deletions

View file

@ -207,6 +207,13 @@ def test_video_library_mapping_ui_present_and_video_only():
assert 'body[data-side="video"] #plex-library-selector-container' in css
def test_video_side_hides_music_api_config_and_shows_placeholders():
css = _CSS_PATH.read_text(encoding="utf-8")
assert 'body[data-side="video"] [data-music-only]' in css # music API hidden on video
assert "data-music-only" in _INDEX # the music API group is marked
assert "TMDB API Key" in _INDEX and "TVDB API Key" in _INDEX # video placeholders
def test_video_settings_module_referenced_and_isolated():
assert "video/video-settings.js" in _INDEX
stripped = _VSETTINGS_JS.strip()

View file

@ -4288,7 +4288,7 @@
<!-- Left Column - API Configuration -->
<div class="settings-left-column">
<!-- API Configuration -->
<div class="settings-group" data-stg="connections">
<div class="settings-group" data-stg="connections" data-music-only>
<h3>API Configuration <button class="stg-accordion-toggle" onclick="toggleAllServiceAccordions(this)">Expand All</button></h3>
<!-- Metadata Source Selection (first — tells user what they're configuring for) -->
@ -4739,6 +4739,22 @@
</div>
</div>
<!-- Video API Configuration (placeholders; shown only on the video
side in place of the music API services). -->
<div class="settings-group" data-stg="connections" data-video-only>
<h3>API Configuration</h3>
<div class="form-group">
<label>TMDB API Key</label>
<input type="text" placeholder="The Movie Database — movie &amp; TV metadata" disabled>
<small style="color: #999; font-size: 0.9em; display: block; margin-top: 5px;">Coming soon — primary movie/TV metadata source.</small>
</div>
<div class="form-group">
<label>TVDB API Key</label>
<input type="text" placeholder="TheTVDB — TV series metadata" disabled>
<small style="color: #999; font-size: 0.9em; display: block; margin-top: 5px;">Coming soon — TV metadata source.</small>
</div>
</div>
<!-- Server Connections -->
<div class="settings-group" data-stg="connections">
<h3>Server Connections</h3>

View file

@ -129,6 +129,11 @@ body[data-side="video"] #jellyfin-library-selector-container,
body[data-side="video"] #navidrome-folder-selector-container {
display: none !important;
}
/* Music-only settings sections (e.g. the music API services) are hidden on the
video side; their video counterparts carry data-video-only. */
body[data-side="video"] [data-music-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;