Use admin quality defaults throughout the request pipeline
This commit is contained in:
@@ -1021,11 +1021,11 @@ export default function SettingsPage({ section }: SettingsPageProps) {
|
||||
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_quality_profile_id: 'Applied automatically to every new TV request. Users do not choose a quality profile in the request pipeline. If no Magent default is configured, requests use Seerr’s default.',
|
||||
sonarr_root_folder: 'Root folder where Sonarr stores TV shows.',
|
||||
radarr_base_url: 'Radarr server URL for movies (FQDN or IP). Scheme is optional.',
|
||||
radarr_api_key: 'API key for Radarr.',
|
||||
radarr_quality_profile_id: 'Quality profile used when adding movies.',
|
||||
radarr_quality_profile_id: 'Applied automatically to every new movie request. Users do not choose a quality profile in the request pipeline. If no Magent default is configured, requests use Seerr’s default.',
|
||||
radarr_root_folder: 'Root folder where Radarr stores movies.',
|
||||
prowlarr_base_url:
|
||||
'Prowlarr server URL for indexer searches (FQDN or IP). Scheme is optional.',
|
||||
|
||||
@@ -114,7 +114,6 @@ export default function NewRequestClient() {
|
||||
const [selected, setSelected] = useState<DiscoveryResult | null>(null)
|
||||
const [options, setOptions] = useState<RequestOptions | null>(null)
|
||||
const [loadingOptions, setLoadingOptions] = useState(false)
|
||||
const [profileId, setProfileId] = useState<number | null>(null)
|
||||
const [selectedSeasons, setSelectedSeasons] = useState<number[]>([])
|
||||
const [submitting, setSubmitting] = useState(false)
|
||||
const [operation, setOperation] = useState<OperationProgress | null>(null)
|
||||
@@ -132,7 +131,6 @@ export default function NewRequestClient() {
|
||||
setSearchAttempted(false)
|
||||
setSelected(null)
|
||||
setOptions(null)
|
||||
setProfileId(null)
|
||||
setSelectedSeasons([])
|
||||
setOperation(null)
|
||||
setError(null)
|
||||
@@ -194,7 +192,6 @@ export default function NewRequestClient() {
|
||||
const selectResult = async (item: DiscoveryResult) => {
|
||||
setSelected(item)
|
||||
setOptions(null)
|
||||
setProfileId(null)
|
||||
setSelectedSeasons([])
|
||||
setOperation(null)
|
||||
setError(null)
|
||||
@@ -234,7 +231,6 @@ export default function NewRequestClient() {
|
||||
return
|
||||
}
|
||||
setOptions(payload)
|
||||
setProfileId(payload.destination.defaultProfileId)
|
||||
setSelectedSeasons(payload.media.seasons.map((season) => season.seasonNumber))
|
||||
} catch (caught) {
|
||||
setError(caught instanceof Error ? caught.message : 'Could not load request options.')
|
||||
@@ -254,7 +250,7 @@ export default function NewRequestClient() {
|
||||
}
|
||||
|
||||
const submitRequest = async () => {
|
||||
if (!selected || !options || !profileId) return
|
||||
if (!selected || !options) return
|
||||
if (selected.type === 'tv' && selectedSeasons.length === 0) {
|
||||
setError('Select at least one season.')
|
||||
return
|
||||
@@ -276,7 +272,6 @@ export default function NewRequestClient() {
|
||||
body: JSON.stringify({
|
||||
mediaType: selected.type,
|
||||
tmdbId: selected.tmdbId,
|
||||
profileId,
|
||||
seasons: selected.type === 'tv' ? selectedSeasons : undefined,
|
||||
}),
|
||||
})
|
||||
@@ -480,17 +475,9 @@ export default function NewRequestClient() {
|
||||
</fieldset>
|
||||
)}
|
||||
|
||||
<label className="request-profile-field">
|
||||
<span>Quality profile</span>
|
||||
<select value={profileId ?? ''} onChange={(event) => setProfileId(Number(event.target.value))}>
|
||||
{options.destination.profiles.map((profile) => <option key={profile.id} value={profile.id}>{profile.name}</option>)}
|
||||
</select>
|
||||
<small>Live options from {options.destination.collector}. Seerr will use {options.destination.serverName}.</small>
|
||||
</label>
|
||||
|
||||
<div className="request-submit-bar">
|
||||
<div><span>Delivery route</span><strong>Seerr → {options.destination.collector} → Grizzlyflix</strong><small>Only settings currently accepted by {options.destination.collector} are available.</small></div>
|
||||
<button type="button" onClick={() => void submitRequest()} disabled={submitting || !profileId || (selected.type === 'tv' && selectedSeasons.length === 0)}>
|
||||
<div><span>Delivery route</span><strong>Seerr → {options.destination.collector} → Grizzlyflix</strong><small>Your request uses the default quality set by your administrator.</small></div>
|
||||
<button type="button" onClick={() => void submitRequest()} disabled={submitting || (selected.type === 'tv' && selectedSeasons.length === 0)}>
|
||||
{submitting ? 'Sending request…' : `Request ${selected.type === 'tv' ? 'show' : 'movie'}`}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user