diff --git a/frontend/src/Series/Details/SeriesDetails.css b/frontend/src/Series/Details/SeriesDetails.css
index f62568a1d..cdda349f0 100644
--- a/frontend/src/Series/Details/SeriesDetails.css
+++ b/frontend/src/Series/Details/SeriesDetails.css
@@ -130,6 +130,7 @@
.sizeOnDisk,
.qualityProfileName,
.originalLanguageName,
+.statusName,
.network,
.links,
.tags {
diff --git a/frontend/src/Series/Details/SeriesDetails.css.d.ts b/frontend/src/Series/Details/SeriesDetails.css.d.ts
index ea026f8de..9dbf4d792 100644
--- a/frontend/src/Series/Details/SeriesDetails.css.d.ts
+++ b/frontend/src/Series/Details/SeriesDetails.css.d.ts
@@ -24,6 +24,7 @@ interface CssExports {
'seriesNavigationButton': string;
'seriesNavigationButtons': string;
'sizeOnDisk': string;
+ 'statusName': string;
'tags': string;
'title': string;
'titleContainer': string;
diff --git a/frontend/src/Series/Details/SeriesDetails.js b/frontend/src/Series/Details/SeriesDetails.js
index 2871212ea..116ce5d2f 100644
--- a/frontend/src/Series/Details/SeriesDetails.js
+++ b/frontend/src/Series/Details/SeriesDetails.js
@@ -230,7 +230,7 @@ class SeriesDetails extends Component {
} = this.state;
const statusDetails = getSeriesStatusDetails(status);
- const runningYears = statusDetails.title === translate('Ended') ? `${year}-${getDateYear(lastAired)}` : `${year}-`;
+ const runningYears = status === 'ended' ? `${year}-${getDateYear(lastAired)}` : `${year}-`;
let episodeFilesCountMessage = translate('SeriesDetailsNoEpisodeFiles');
@@ -509,13 +509,14 @@ class SeriesDetails extends Component {
className={styles.detailsLabel}
title={statusDetails.message}
size={sizes.LARGE}
+ kind={status === 'deleted' ? kinds.INVERSE : undefined}
>
-
+
{statusDetails.title}
diff --git a/frontend/src/Series/Index/Overview/SeriesIndexOverview.css b/frontend/src/Series/Index/Overview/SeriesIndexOverview.css
index 999f15a41..f8254dda8 100644
--- a/frontend/src/Series/Index/Overview/SeriesIndexOverview.css
+++ b/frontend/src/Series/Index/Overview/SeriesIndexOverview.css
@@ -25,7 +25,7 @@ $hoverScale: 1.05;
}
}
-.ended {
+.status {
position: absolute;
top: 0;
right: 0;
@@ -34,8 +34,15 @@ $hoverScale: 1.05;
height: 0;
border-width: 0 25px 25px 0;
border-style: solid;
- border-color: transparent var(--dangerColor) transparent transparent;
color: var(--white);
+
+ &.ended {
+ border-color: transparent var(--dangerColor) transparent transparent;
+ }
+
+ &.deleted {
+ border-color: transparent var(--gray) transparent transparent;
+ }
}
.info {
diff --git a/frontend/src/Series/Index/Overview/SeriesIndexOverview.css.d.ts b/frontend/src/Series/Index/Overview/SeriesIndexOverview.css.d.ts
index 5dfbab8ee..7a7226805 100644
--- a/frontend/src/Series/Index/Overview/SeriesIndexOverview.css.d.ts
+++ b/frontend/src/Series/Index/Overview/SeriesIndexOverview.css.d.ts
@@ -3,6 +3,7 @@
interface CssExports {
'actions': string;
'content': string;
+ 'deleted': string;
'details': string;
'ended': string;
'info': string;
@@ -11,6 +12,7 @@ interface CssExports {
'overviewContainer': string;
'poster': string;
'posterContainer': string;
+ 'status': string;
'tags': string;
'title': string;
'titleRow': string;
diff --git a/frontend/src/Series/Index/Overview/SeriesIndexOverview.tsx b/frontend/src/Series/Index/Overview/SeriesIndexOverview.tsx
index f7d7c3b50..5be820f87 100644
--- a/frontend/src/Series/Index/Overview/SeriesIndexOverview.tsx
+++ b/frontend/src/Series/Index/Overview/SeriesIndexOverview.tsx
@@ -1,3 +1,4 @@
+import classNames from 'classnames';
import React, { useCallback, useMemo, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import TextTruncate from 'react-text-truncate';
@@ -146,9 +147,19 @@ function SeriesIndexOverview(props: SeriesIndexOverviewProps) {
) : null}
- {status === 'ended' && (
-
- )}
+ {status === 'ended' ? (
+
+ ) : null}
+
+ {status === 'deleted' ? (
+
+ ) : null}
{status === 'ended' ? (
-
+
+ ) : null}
+
+ {status === 'deleted' ? (
+
) : null}
diff --git a/frontend/src/Series/Index/ProgressBar/SeriesIndexProgressBar.tsx b/frontend/src/Series/Index/ProgressBar/SeriesIndexProgressBar.tsx
index 2c2fb525e..6f710e37a 100644
--- a/frontend/src/Series/Index/ProgressBar/SeriesIndexProgressBar.tsx
+++ b/frontend/src/Series/Index/ProgressBar/SeriesIndexProgressBar.tsx
@@ -5,6 +5,7 @@ import { sizes } from 'Helpers/Props';
import createSeriesQueueItemsDetailsSelector, {
SeriesQueueDetails,
} from 'Series/Index/createSeriesQueueDetailsSelector';
+import { SeriesStatus } from 'Series/Series';
import getProgressBarKind from 'Utilities/Series/getProgressBarKind';
import translate from 'Utilities/String/translate';
import styles from './SeriesIndexProgressBar.css';
@@ -13,7 +14,7 @@ interface SeriesIndexProgressBarProps {
seriesId: number;
seasonNumber?: number;
monitored: boolean;
- status: string;
+ status: SeriesStatus;
episodeCount: number;
episodeFileCount: number;
totalEpisodeCount: number;
diff --git a/frontend/src/Series/Index/Table/SeriesStatusCell.tsx b/frontend/src/Series/Index/Table/SeriesStatusCell.tsx
index 7e190bc9f..8de28bdab 100644
--- a/frontend/src/Series/Index/Table/SeriesStatusCell.tsx
+++ b/frontend/src/Series/Index/Table/SeriesStatusCell.tsx
@@ -4,6 +4,7 @@ import Icon from 'Components/Icon';
import MonitorToggleButton from 'Components/MonitorToggleButton';
import VirtualTableRowCell from 'Components/Table/Cells/TableRowCell';
import { icons } from 'Helpers/Props';
+import { SeriesStatus } from 'Series/Series';
import { getSeriesStatusDetails } from 'Series/SeriesStatus';
import { toggleSeriesMonitored } from 'Store/Actions/seriesActions';
import translate from 'Utilities/String/translate';
@@ -13,7 +14,7 @@ interface SeriesStatusCellProps {
className: string;
seriesId: number;
monitored: boolean;
- status: string;
+ status: SeriesStatus;
isSelectMode: boolean;
isSaving: boolean;
component?: React.ElementType;
diff --git a/frontend/src/Series/Series.ts b/frontend/src/Series/Series.ts
index c93ccf3ff..be2215f7e 100644
--- a/frontend/src/Series/Series.ts
+++ b/frontend/src/Series/Series.ts
@@ -15,6 +15,8 @@ export type SeriesMonitor =
| 'unmonitorSpecials'
| 'none';
+export type SeriesStatus = 'continuing' | 'ended' | 'upcoming' | 'deleted';
+
export type MonitorNewItems = 'all' | 'none';
export interface Image {
@@ -86,7 +88,7 @@ interface Series extends ModelBase {
seriesType: SeriesType;
sortTitle: string;
statistics: Statistics;
- status: string;
+ status: SeriesStatus;
tags: number[];
title: string;
titleSlug: string;
diff --git a/frontend/src/Series/SeriesStatus.js b/frontend/src/Series/SeriesStatus.ts
similarity index 65%
rename from frontend/src/Series/SeriesStatus.js
rename to frontend/src/Series/SeriesStatus.ts
index da3bc68c3..e6174740c 100644
--- a/frontend/src/Series/SeriesStatus.js
+++ b/frontend/src/Series/SeriesStatus.ts
@@ -1,32 +1,31 @@
-
import { icons } from 'Helpers/Props';
+import { SeriesStatus } from 'Series/Series';
import translate from 'Utilities/String/translate';
-export function getSeriesStatusDetails(status) {
-
+export function getSeriesStatusDetails(status: SeriesStatus) {
let statusDetails = {
icon: icons.SERIES_CONTINUING,
title: translate('Continuing'),
- message: translate('ContinuingSeriesDescription')
+ message: translate('ContinuingSeriesDescription'),
};
if (status === 'deleted') {
statusDetails = {
icon: icons.SERIES_DELETED,
title: translate('Deleted'),
- message: translate('DeletedSeriesDescription')
+ message: translate('DeletedSeriesDescription'),
};
} else if (status === 'ended') {
statusDetails = {
icon: icons.SERIES_ENDED,
title: translate('Ended'),
- message: translate('EndedSeriesDescription')
+ message: translate('EndedSeriesDescription'),
};
} else if (status === 'upcoming') {
statusDetails = {
icon: icons.SERIES_CONTINUING,
title: translate('Upcoming'),
- message: translate('UpcomingSeriesDescription')
+ message: translate('UpcomingSeriesDescription'),
};
}
diff --git a/frontend/src/Utilities/Series/getProgressBarKind.ts b/frontend/src/Utilities/Series/getProgressBarKind.ts
index f45387024..331c39998 100644
--- a/frontend/src/Utilities/Series/getProgressBarKind.ts
+++ b/frontend/src/Utilities/Series/getProgressBarKind.ts
@@ -1,7 +1,8 @@
import { kinds } from 'Helpers/Props';
+import { SeriesStatus } from 'Series/Series';
function getProgressBarKind(
- status: string,
+ status: SeriesStatus,
monitored: boolean,
progress: number,
isDownloading: boolean