diff --git a/Plugin/unraid/Varaverk.page b/Plugin/unraid/Varaverk.page index a3e872e..67a6515 100644 --- a/Plugin/unraid/Varaverk.page +++ b/Plugin/unraid/Varaverk.page @@ -225,7 +225,7 @@ $_vv_ai = vv_ai_ui_on(); if ($_vv_ai) $validTabs[] = 'ai'; if (!in_array($tab, $validTabs)) $tab = 'monitor'; -$tabLabels = ['monitor' => 'Monitor', 'scheduler' => 'Scheduler', 'docker' => 'Docker', 'watchdog' => 'Watchdog', 'partnership' => 'Partnership', 'fallback' => 'FallBack', 'arrs' => 'Arrs', 'rsync' => 'Rsync', 'auth' => 'Auth Stack', 'settings' => 'Settings', 'ai' => 'AI']; +$tabLabels = ['monitor' => 'Monitor', 'scheduler' => 'Scheduler', 'docker' => 'Docker', 'watchdog' => 'Watchdog', 'partnership' => 'Partnership', 'fallback' => 'FallBack', 'arrs' => 'Media Stack', 'rsync' => 'Rsync', 'auth' => 'Auth Stack', 'settings' => 'Settings', 'ai' => 'AI']; // Cache stamp for the stylesheet and script below. Both are served straight off the plugin // directory at a path that never changes, so a browser holding an old copy keeps using it after diff --git a/Plugin/unraid/include/confform.php b/Plugin/unraid/include/confform.php index 118904d..31edf23 100644 --- a/Plugin/unraid/include/confform.php +++ b/Plugin/unraid/include/confform.php @@ -116,8 +116,12 @@ const VV_UI_SECTION_SURFACES = [ 'route' => 'Rsync tab → Rsync settings'], ['match' => 'fallback|tier', 'tab' => 'Fallback', 'route' => 'Fallback tab → Fallback settings'], - ['match' => 'arr|sonarr|radarr|lidarr', 'tab' => 'Arrs', - 'route' => 'Arrs tab → Arr settings'], + // The tab covers the whole media pipeline now, not only acquisition: the arrs, the jobs that + // run over the same files (play state, permissions, the cleaner), and the servers that play + // them. These sections were reachable only through the Settings catch-all, which is a long way + // to go for a setting named after the page you are already looking at. + ['match' => 'arr|sonarr|radarr|lidarr|media|play state|emby|jellyfin|plex', 'tab' => 'Media Stack', + 'route' => 'Media Stack tab → Media settings'], ['match' => 'docker', 'tab' => 'Docker', 'route' => 'Docker tab → Docker settings'], @@ -179,7 +183,7 @@ const VV_UI_PAGE_ROUTES = [ 'also' => ['HOSTN_DISCORD_WEBHOOK', 'HOSTN_STORAGE_MODE_INTERNAL']], 'fallback.php' => ['route' => 'Fallback tab'], 'rsync.php' => ['route' => 'Rsync tab'], - 'arrs.php' => ['route' => 'Arrs tab'], + 'arrs.php' => ['route' => 'Media Stack tab'], 'watchdog.php' => ['route' => 'Watchdog tab'], 'docker.php' => ['route' => 'Docker tab'], ]; diff --git a/Plugin/unraid/pages/arrs.php b/Plugin/unraid/pages/arrs.php index a7467c5..03549ca 100644 --- a/Plugin/unraid/pages/arrs.php +++ b/Plugin/unraid/pages/arrs.php @@ -1,7 +1,7 @@
- Arrs + Media Stack
@@ -150,7 +150,11 @@ require_once dirname(__DIR__) . '/include/ai_chat.php'; // The conf sections this page is about, drawn by the shared renderer. They were reachable // only from the Settings tab's catch-all, which is a long way to go for a setting named // after the page you are already looking at. -vv_conf_ui_card('vv-cf-arrs', 'arr|sonarr|radarr|lidarr', 'Arr settings'); +// +// The match mirrors VV_UI_SECTION_SURFACES in confform.php and has to keep mirroring it: that +// constant is what tells the assistant where to send someone, and this is what the page actually +// draws. The two disagreeing means being given directions to a card that is not there. +vv_conf_ui_card('vv-cf-arrs', 'arr|sonarr|radarr|lidarr|media|play state|emby|jellyfin|plex', 'Media settings'); ?>