Streamline issue reporting and automate repairs
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
'use client'
|
||||
|
||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { useRouter } from 'next/navigation'
|
||||
import { authFetch, clearToken, getApiBase, getToken, getEventStreamToken } from '../lib/auth'
|
||||
import AdminShell from '../ui/AdminShell'
|
||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { authFetch, clearToken, getApiBase, getEventStreamToken, getToken } from '../lib/auth'
|
||||
import AdminDiagnosticsPanel from '../ui/AdminDiagnosticsPanel'
|
||||
import AdminShell from '../ui/AdminShell'
|
||||
|
||||
type AdminSetting = {
|
||||
key: string
|
||||
@@ -36,6 +36,7 @@ const SECTION_LABELS: Record<string, string> = {
|
||||
cache: 'Request cache',
|
||||
sonarr: 'Sonarr',
|
||||
radarr: 'Radarr',
|
||||
bazarr: 'Bazarr',
|
||||
prowlarr: 'Prowlarr',
|
||||
qbittorrent: 'qBittorrent',
|
||||
logs: 'Activity log',
|
||||
@@ -83,6 +84,7 @@ const URL_SETTINGS = new Set([
|
||||
'jellyfin_public_url',
|
||||
'sonarr_base_url',
|
||||
'radarr_base_url',
|
||||
'bazarr_base_url',
|
||||
'prowlarr_base_url',
|
||||
'qbittorrent_base_url',
|
||||
])
|
||||
@@ -115,6 +117,7 @@ const SECTION_DESCRIPTIONS: Record<string, string> = {
|
||||
cache: 'Manage saved requests cache and refresh behavior.',
|
||||
sonarr: 'Sonarr connection and the default profile and library location for TV requests.',
|
||||
radarr: 'Radarr connection and the default profile and library location for movie requests.',
|
||||
bazarr: 'Bazarr connection used to find and replace movie and episode subtitles.',
|
||||
prowlarr: 'Prowlarr connection used by Sonarr and Radarr for release searches.',
|
||||
qbittorrent: 'qBittorrent connection used for collector-owned download progress and diagnostics.',
|
||||
requests: 'Control how often requests are refreshed and cleaned up.',
|
||||
@@ -134,6 +137,7 @@ const SETTINGS_SECTION_MAP: Record<string, string | null> = {
|
||||
artwork: null,
|
||||
sonarr: 'sonarr',
|
||||
radarr: 'radarr',
|
||||
bazarr: 'bazarr',
|
||||
prowlarr: 'prowlarr',
|
||||
qbittorrent: 'qbittorrent',
|
||||
requests: 'requests',
|
||||
@@ -361,6 +365,14 @@ const STANDARD_SECTION_GROUPS: Record<
|
||||
keys: ['radarr_quality_profile_id', 'radarr_root_folder'],
|
||||
},
|
||||
],
|
||||
bazarr: [
|
||||
{
|
||||
key: 'bazarr-connection',
|
||||
title: 'Connection',
|
||||
description: 'Bazarr endpoint, API credential, and default language used by subtitle issue repairs.',
|
||||
keys: ['bazarr_base_url', 'bazarr_api_key', 'bazarr_default_language'],
|
||||
},
|
||||
],
|
||||
prowlarr: [
|
||||
{
|
||||
key: 'prowlarr-connection',
|
||||
@@ -430,6 +442,9 @@ const STANDARD_SECTION_GROUPS: Record<
|
||||
}
|
||||
|
||||
const SETTING_LABEL_OVERRIDES: Record<string, string> = {
|
||||
bazarr_base_url: 'Bazarr base URL',
|
||||
bazarr_api_key: 'Bazarr API key',
|
||||
bazarr_default_language: 'Default subtitle language',
|
||||
issue_confirmation_contact_attempts: 'Confirmation emails before auto-close',
|
||||
issue_confirmation_interval_value: 'Confirmation interval',
|
||||
issue_confirmation_interval_unit: 'Interval unit',
|
||||
@@ -993,6 +1008,9 @@ export default function SettingsPage({ section }: SettingsPageProps) {
|
||||
artwork_cache_mode: 'Choose whether posters are cached locally or loaded from the web.',
|
||||
sonarr_base_url: 'Sonarr server URL for TV tracking (FQDN or IP). Scheme is optional.',
|
||||
sonarr_api_key: 'API key for Sonarr.',
|
||||
bazarr_base_url: 'Bazarr server URL used for movie and episode subtitle repairs. Scheme is optional.',
|
||||
bazarr_api_key: 'API key used to ask Bazarr for fresh subtitles.',
|
||||
bazarr_default_language: 'Language code Bazarr should search for by default, such as en.',
|
||||
sonarr_quality_profile_id: 'Quality profile used when adding TV shows.',
|
||||
sonarr_root_folder: 'Root folder where Sonarr stores TV shows.',
|
||||
radarr_base_url: 'Radarr server URL for movies (FQDN or IP). Scheme is optional.',
|
||||
@@ -1067,6 +1085,8 @@ export default function SettingsPage({ section }: SettingsPageProps) {
|
||||
jellyfin_base_url: 'https://jelly.example.com or 10.40.0.80:8096',
|
||||
jellyfin_public_url: 'https://jelly.example.com',
|
||||
sonarr_base_url: 'https://sonarr.example.com or 10.30.1.81:8989',
|
||||
bazarr_base_url: 'https://bazarr.example.com or 10.30.1.81:6767',
|
||||
bazarr_default_language: 'en',
|
||||
radarr_base_url: 'https://radarr.example.com or 10.30.1.81:7878',
|
||||
prowlarr_base_url: 'https://prowlarr.example.com or 10.30.1.81:9696',
|
||||
qbittorrent_base_url: 'https://qb.example.com or 10.30.1.81:8080',
|
||||
|
||||
Reference in New Issue
Block a user