- {data?.mediaInfo.status !== MediaStatus.AVAILABLE && (
-
- )}
+ {data?.mediaInfo.status !== MediaStatus.AVAILABLE &&
+ settings.currentSettings.seriesEnabled && (
+
+ )}
{data?.mediaInfo.status4k !== MediaStatus.AVAILABLE &&
settings.currentSettings.series4kEnabled && (
- 0}
- tmdbId={data.mediaInfo?.tmdbId}
- mediaType="tv"
- plexUrl={plexUrl}
- serviceUrl={data.mediaInfo?.serviceUrl}
- />
+ {settings.currentSettings.seriesEnabled &&
+ hasPermission(
+ [
+ Permission.MANAGE_REQUESTS,
+ Permission.REQUEST,
+ Permission.REQUEST_TV,
+ ],
+ {
+ type: 'or',
+ }
+ ) && (
+ 0}
+ tmdbId={data.mediaInfo?.tmdbId}
+ mediaType="tv"
+ plexUrl={plexUrl}
+ serviceUrl={data.mediaInfo?.serviceUrl}
+ />
+ )}
{settings.currentSettings.series4kEnabled &&
hasPermission(
[
@@ -404,8 +422,12 @@ const TvDetails = ({ tv }: TvDetailsProps) => {
isShowComplete={isComplete}
is4kShowComplete={is4kComplete}
/>
- {(data.mediaInfo?.status === MediaStatus.AVAILABLE ||
- data.mediaInfo?.status === MediaStatus.PARTIALLY_AVAILABLE ||
+ {((settings.currentSettings.seriesEnabled &&
+ hasPermission([Permission.REQUEST, Permission.REQUEST_TV], {
+ type: 'or',
+ }) &&
+ (data.mediaInfo?.status === MediaStatus.AVAILABLE ||
+ data?.mediaInfo?.status === MediaStatus.PARTIALLY_AVAILABLE)) ||
(settings.currentSettings.series4kEnabled &&
hasPermission([Permission.REQUEST_4K, Permission.REQUEST_4K_TV], {
type: 'or',
@@ -524,6 +546,18 @@ const TvDetails = ({ tv }: TvDetailsProps) => {
.reverse()
.filter((season) => season.seasonNumber !== 0)
.map((season) => {
+ const showNon4k =
+ settings.currentSettings.seriesEnabled &&
+ hasPermission(
+ [
+ Permission.MANAGE_REQUESTS,
+ Permission.REQUEST,
+ Permission.REQUEST_TV,
+ ],
+ {
+ type: 'or',
+ }
+ );
const show4k =
settings.currentSettings.series4kEnabled &&
hasPermission(
@@ -588,65 +622,75 @@ const TvDetails = ({ tv }: TvDetailsProps) => {
{((!mSeason &&
request?.status === MediaRequestStatus.APPROVED) ||
- mSeason?.status === MediaStatus.PROCESSING) && (
- <>
-
-
- {intl.formatMessage(globalMessages.requested)}
-
-
-
-
-
- >
- )}
+ mSeason?.status === MediaStatus.PROCESSING) &&
+ showNon4k && (
+ <>
+
+
+ {intl.formatMessage(
+ globalMessages.requested
+ )}
+
+
+
+
+
+ >
+ )}
{((!mSeason &&
request?.status === MediaRequestStatus.PENDING) ||
- mSeason?.status === MediaStatus.PENDING) && (
- <>
-
-
- {intl.formatMessage(globalMessages.pending)}
-
-
-
-
-
- >
- )}
+ mSeason?.status === MediaStatus.PENDING) &&
+ showNon4k && (
+ <>
+
+
+ {intl.formatMessage(globalMessages.pending)}
+
+
+
+
+
+ >
+ )}
{mSeason?.status ===
- MediaStatus.PARTIALLY_AVAILABLE && (
- <>
-
-
- {intl.formatMessage(
- globalMessages.partiallyavailable
- )}
-
-
-
-
-
- >
- )}
- {mSeason?.status === MediaStatus.AVAILABLE && (
- <>
-
-
- {intl.formatMessage(globalMessages.available)}
-
-
-
-
-
- >
- )}
+ MediaStatus.PARTIALLY_AVAILABLE &&
+ showNon4k && (
+ <>
+
+
+ {intl.formatMessage(
+ globalMessages.partiallyavailable
+ )}
+
+
+
+
+
+ >
+ )}
+ {mSeason?.status === MediaStatus.AVAILABLE &&
+ showNon4k && (
+ <>
+
+
+ {intl.formatMessage(
+ globalMessages.available
+ )}
+
+
+
+
+
+ >
+ )}
{((!mSeason4k &&
request4k?.status ===
MediaRequestStatus.APPROVED) ||
diff --git a/src/context/SettingsContext.tsx b/src/context/SettingsContext.tsx
index d50add4d..dd94cfc8 100644
--- a/src/context/SettingsContext.tsx
+++ b/src/context/SettingsContext.tsx
@@ -13,6 +13,8 @@ const defaultSettings = {
applicationUrl: '',
hideAvailable: false,
localLogin: true,
+ movieEnabled: false,
+ seriesEnabled: false,
movie4kEnabled: false,
series4kEnabled: false,
region: '',
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx
index 01ea14f9..727b696f 100644
--- a/src/pages/_app.tsx
+++ b/src/pages/_app.tsx
@@ -186,6 +186,8 @@ CoreApp.getInitialProps = async (initialProps) => {
applicationTitle: '',
applicationUrl: '',
hideAvailable: false,
+ movieEnabled: false,
+ seriesEnabled: false,
movie4kEnabled: false,
series4kEnabled: false,
localLogin: true,