mirror of
https://github.com/sct/overseerr.git
synced 2025-09-17 17:24:35 +02:00
fix(ui): show warning if user has both a default non-4K server and a non-default 4K server (#1478)
This commit is contained in:
@@ -28,6 +28,7 @@ const messages = defineMessages({
|
|||||||
ssl: 'SSL',
|
ssl: 'SSL',
|
||||||
default: 'Default',
|
default: 'Default',
|
||||||
default4k: 'Default 4K',
|
default4k: 'Default 4K',
|
||||||
|
is4k: '4K',
|
||||||
address: 'Address',
|
address: 'Address',
|
||||||
activeProfile: 'Active Profile',
|
activeProfile: 'Active Profile',
|
||||||
addradarr: 'Add Radarr Server',
|
addradarr: 'Add Radarr Server',
|
||||||
@@ -36,6 +37,8 @@ const messages = defineMessages({
|
|||||||
'At least one {serverType} server must be marked as default in order for {mediaType} requests to be processed.',
|
'At least one {serverType} server must be marked as default in order for {mediaType} requests to be processed.',
|
||||||
noDefaultNon4kServer:
|
noDefaultNon4kServer:
|
||||||
'If you only have a single {serverType} server for both non-4K and 4K content (or if you only download 4K content), your {serverType} server should <strong>NOT</strong> be designated as a 4K server.',
|
'If you only have a single {serverType} server for both non-4K and 4K content (or if you only download 4K content), your {serverType} server should <strong>NOT</strong> be designated as a 4K server.',
|
||||||
|
noDefault4kServer:
|
||||||
|
'A 4K {serverType} server must be marked as default in order to enable users to submit 4K {mediaType} requests.',
|
||||||
mediaTypeMovie: 'movie',
|
mediaTypeMovie: 'movie',
|
||||||
mediaTypeSeries: 'series',
|
mediaTypeSeries: 'series',
|
||||||
});
|
});
|
||||||
@@ -43,7 +46,7 @@ const messages = defineMessages({
|
|||||||
interface ServerInstanceProps {
|
interface ServerInstanceProps {
|
||||||
name: string;
|
name: string;
|
||||||
isDefault?: boolean;
|
isDefault?: boolean;
|
||||||
isDefault4K?: boolean;
|
is4k?: boolean;
|
||||||
hostname: string;
|
hostname: string;
|
||||||
port: number;
|
port: number;
|
||||||
isSSL?: boolean;
|
isSSL?: boolean;
|
||||||
@@ -59,7 +62,7 @@ const ServerInstance: React.FC<ServerInstanceProps> = ({
|
|||||||
hostname,
|
hostname,
|
||||||
port,
|
port,
|
||||||
profileName,
|
profileName,
|
||||||
isDefault4K = false,
|
is4k = false,
|
||||||
isDefault = false,
|
isDefault = false,
|
||||||
isSSL = false,
|
isSSL = false,
|
||||||
isSonarr = false,
|
isSonarr = false,
|
||||||
@@ -77,7 +80,7 @@ const ServerInstance: React.FC<ServerInstanceProps> = ({
|
|||||||
<li className="col-span-1 bg-gray-700 rounded-lg shadow">
|
<li className="col-span-1 bg-gray-700 rounded-lg shadow">
|
||||||
<div className="flex items-center justify-between w-full p-6 space-x-6">
|
<div className="flex items-center justify-between w-full p-6 space-x-6">
|
||||||
<div className="flex-1 truncate">
|
<div className="flex-1 truncate">
|
||||||
<div className="flex items-center mb-2 space-x-3">
|
<div className="flex items-center mb-2 space-x-2">
|
||||||
<h3 className="font-medium leading-5 text-white truncate">
|
<h3 className="font-medium leading-5 text-white truncate">
|
||||||
<a
|
<a
|
||||||
href={serviceUrl}
|
href={serviceUrl}
|
||||||
@@ -86,10 +89,15 @@ const ServerInstance: React.FC<ServerInstanceProps> = ({
|
|||||||
{name}
|
{name}
|
||||||
</a>
|
</a>
|
||||||
</h3>
|
</h3>
|
||||||
{isDefault && <Badge>{intl.formatMessage(messages.default)}</Badge>}
|
{isDefault && !is4k && (
|
||||||
{isDefault4K && (
|
<Badge>{intl.formatMessage(messages.default)}</Badge>
|
||||||
|
)}
|
||||||
|
{isDefault && is4k && (
|
||||||
|
<Badge>{intl.formatMessage(messages.default4k)}</Badge>
|
||||||
|
)}
|
||||||
|
{!isDefault && is4k && (
|
||||||
<Badge badgeType="warning">
|
<Badge badgeType="warning">
|
||||||
{intl.formatMessage(messages.default4k)}
|
{intl.formatMessage(messages.is4k)}
|
||||||
</Badge>
|
</Badge>
|
||||||
)}
|
)}
|
||||||
{isSSL && (
|
{isSSL && (
|
||||||
@@ -274,10 +282,9 @@ const SettingsServices: React.FC = () => {
|
|||||||
mediaType: intl.formatMessage(messages.mediaTypeMovie),
|
mediaType: intl.formatMessage(messages.mediaTypeMovie),
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : !radarrData.some(
|
||||||
!radarrData.some(
|
|
||||||
(radarr) => radarr.isDefault && !radarr.is4k
|
(radarr) => radarr.isDefault && !radarr.is4k
|
||||||
) && (
|
) ? (
|
||||||
<Alert
|
<Alert
|
||||||
title={intl.formatMessage(messages.noDefaultNon4kServer, {
|
title={intl.formatMessage(messages.noDefaultNon4kServer, {
|
||||||
serverType: 'Radarr',
|
serverType: 'Radarr',
|
||||||
@@ -290,6 +297,17 @@ const SettingsServices: React.FC = () => {
|
|||||||
},
|
},
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
|
) : (
|
||||||
|
radarrData.some((radarr) => radarr.is4k) &&
|
||||||
|
!radarrData.some(
|
||||||
|
(radarr) => radarr.isDefault && radarr.is4k
|
||||||
|
) && (
|
||||||
|
<Alert
|
||||||
|
title={intl.formatMessage(messages.noDefault4kServer, {
|
||||||
|
serverType: 'Radarr',
|
||||||
|
mediaType: intl.formatMessage(messages.mediaTypeMovie),
|
||||||
|
})}
|
||||||
|
/>
|
||||||
)
|
)
|
||||||
))}
|
))}
|
||||||
<ul className="grid max-w-6xl grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-3">
|
<ul className="grid max-w-6xl grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-3">
|
||||||
@@ -301,8 +319,8 @@ const SettingsServices: React.FC = () => {
|
|||||||
port={radarr.port}
|
port={radarr.port}
|
||||||
profileName={radarr.activeProfileName}
|
profileName={radarr.activeProfileName}
|
||||||
isSSL={radarr.useSsl}
|
isSSL={radarr.useSsl}
|
||||||
isDefault={radarr.isDefault && !radarr.is4k}
|
isDefault={radarr.isDefault}
|
||||||
isDefault4K={radarr.is4k && radarr.isDefault}
|
is4k={radarr.is4k}
|
||||||
externalUrl={radarr.externalUrl}
|
externalUrl={radarr.externalUrl}
|
||||||
onEdit={() => setEditRadarrModal({ open: true, radarr })}
|
onEdit={() => setEditRadarrModal({ open: true, radarr })}
|
||||||
onDelete={() =>
|
onDelete={() =>
|
||||||
@@ -354,10 +372,9 @@ const SettingsServices: React.FC = () => {
|
|||||||
mediaType: intl.formatMessage(messages.mediaTypeSeries),
|
mediaType: intl.formatMessage(messages.mediaTypeSeries),
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : !sonarrData.some(
|
||||||
!sonarrData.some(
|
|
||||||
(sonarr) => sonarr.isDefault && !sonarr.is4k
|
(sonarr) => sonarr.isDefault && !sonarr.is4k
|
||||||
) && (
|
) ? (
|
||||||
<Alert
|
<Alert
|
||||||
title={intl.formatMessage(messages.noDefaultNon4kServer, {
|
title={intl.formatMessage(messages.noDefaultNon4kServer, {
|
||||||
serverType: 'Sonarr',
|
serverType: 'Sonarr',
|
||||||
@@ -370,6 +387,17 @@ const SettingsServices: React.FC = () => {
|
|||||||
},
|
},
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
|
) : (
|
||||||
|
sonarrData.some((sonarr) => sonarr.is4k) &&
|
||||||
|
!sonarrData.some(
|
||||||
|
(sonarr) => sonarr.isDefault && sonarr.is4k
|
||||||
|
) && (
|
||||||
|
<Alert
|
||||||
|
title={intl.formatMessage(messages.noDefault4kServer, {
|
||||||
|
serverType: 'Sonarr',
|
||||||
|
mediaType: intl.formatMessage(messages.mediaTypeSeries),
|
||||||
|
})}
|
||||||
|
/>
|
||||||
)
|
)
|
||||||
))}
|
))}
|
||||||
<ul className="grid max-w-6xl grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-3">
|
<ul className="grid max-w-6xl grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-3">
|
||||||
@@ -382,8 +410,8 @@ const SettingsServices: React.FC = () => {
|
|||||||
profileName={sonarr.activeProfileName}
|
profileName={sonarr.activeProfileName}
|
||||||
isSSL={sonarr.useSsl}
|
isSSL={sonarr.useSsl}
|
||||||
isSonarr
|
isSonarr
|
||||||
isDefault4K={sonarr.isDefault && sonarr.is4k}
|
isDefault={sonarr.isDefault}
|
||||||
isDefault={sonarr.isDefault && !sonarr.is4k}
|
is4k={sonarr.is4k}
|
||||||
externalUrl={sonarr.externalUrl}
|
externalUrl={sonarr.externalUrl}
|
||||||
onEdit={() => setEditSonarrModal({ open: true, sonarr })}
|
onEdit={() => setEditSonarrModal({ open: true, sonarr })}
|
||||||
onDelete={() =>
|
onDelete={() =>
|
||||||
|
@@ -542,6 +542,7 @@
|
|||||||
"components.Settings.generalsettingsDescription": "Configure global and default settings for Overseerr.",
|
"components.Settings.generalsettingsDescription": "Configure global and default settings for Overseerr.",
|
||||||
"components.Settings.hideAvailable": "Hide Available Media",
|
"components.Settings.hideAvailable": "Hide Available Media",
|
||||||
"components.Settings.hostname": "Hostname or IP Address",
|
"components.Settings.hostname": "Hostname or IP Address",
|
||||||
|
"components.Settings.is4k": "4K",
|
||||||
"components.Settings.librariesRemaining": "Libraries Remaining: {count}",
|
"components.Settings.librariesRemaining": "Libraries Remaining: {count}",
|
||||||
"components.Settings.manualscan": "Manual Library Scan",
|
"components.Settings.manualscan": "Manual Library Scan",
|
||||||
"components.Settings.manualscanDescription": "Normally, this will only be run once every 24 hours. Overseerr will check your Plex server's recently added more aggressively. If this is your first time configuring Plex, a one-time full manual library scan is recommended!",
|
"components.Settings.manualscanDescription": "Normally, this will only be run once every 24 hours. Overseerr will check your Plex server's recently added more aggressively. If this is your first time configuring Plex, a one-time full manual library scan is recommended!",
|
||||||
@@ -555,6 +556,7 @@
|
|||||||
"components.Settings.menuPlexSettings": "Plex",
|
"components.Settings.menuPlexSettings": "Plex",
|
||||||
"components.Settings.menuServices": "Services",
|
"components.Settings.menuServices": "Services",
|
||||||
"components.Settings.menuUsers": "Users",
|
"components.Settings.menuUsers": "Users",
|
||||||
|
"components.Settings.noDefault4kServer": "A 4K {serverType} server must be marked as default in order to enable users to submit 4K {mediaType} requests.",
|
||||||
"components.Settings.noDefaultNon4kServer": "If you only have a single {serverType} server for both non-4K and 4K content (or if you only download 4K content), your {serverType} server should <strong>NOT</strong> be designated as a 4K server.",
|
"components.Settings.noDefaultNon4kServer": "If you only have a single {serverType} server for both non-4K and 4K content (or if you only download 4K content), your {serverType} server should <strong>NOT</strong> be designated as a 4K server.",
|
||||||
"components.Settings.noDefaultServer": "At least one {serverType} server must be marked as default in order for {mediaType} requests to be processed.",
|
"components.Settings.noDefaultServer": "At least one {serverType} server must be marked as default in order for {mediaType} requests to be processed.",
|
||||||
"components.Settings.notificationAgentSettingsDescription": "Configure and enable notification agents.",
|
"components.Settings.notificationAgentSettingsDescription": "Configure and enable notification agents.",
|
||||||
|
Reference in New Issue
Block a user