From 4c2bf285fc4cc2fee483cd5ad5ee59e610eca15a Mon Sep 17 00:00:00 2001 From: Qstick Date: Mon, 1 May 2023 23:26:23 -0500 Subject: [PATCH] New: Add Original Language as Filter Option in Discover View Closes #7807 --- .../Table/DiscoverMovieHeader.css | 6 ++++ .../Table/DiscoverMovieHeader.css.d.ts | 1 + .../DiscoverMovie/Table/DiscoverMovieRow.css | 6 ++++ .../Table/DiscoverMovieRow.css.d.ts | 1 + .../DiscoverMovie/Table/DiscoverMovieRow.js | 10 ++++++ .../src/Store/Actions/discoverMovieActions.js | 31 +++++++++++++++++++ .../ImportLists/ImportListMoviesResource.cs | 4 +++ 7 files changed, 59 insertions(+) diff --git a/frontend/src/DiscoverMovie/Table/DiscoverMovieHeader.css b/frontend/src/DiscoverMovie/Table/DiscoverMovieHeader.css index d3a880fca7..5c673fd5f6 100644 --- a/frontend/src/DiscoverMovie/Table/DiscoverMovieHeader.css +++ b/frontend/src/DiscoverMovie/Table/DiscoverMovieHeader.css @@ -26,6 +26,12 @@ flex: 0 0 180px; } +.originalLanguage { + composes: headerCell from '~Components/Table/VirtualTableHeaderCell.css'; + + flex: 1 0 125px; +} + .ratings, .runtime { composes: headerCell from '~Components/Table/VirtualTableHeaderCell.css'; diff --git a/frontend/src/DiscoverMovie/Table/DiscoverMovieHeader.css.d.ts b/frontend/src/DiscoverMovie/Table/DiscoverMovieHeader.css.d.ts index 2ef868c9c7..a32ca9e7d2 100644 --- a/frontend/src/DiscoverMovie/Table/DiscoverMovieHeader.css.d.ts +++ b/frontend/src/DiscoverMovie/Table/DiscoverMovieHeader.css.d.ts @@ -9,6 +9,7 @@ interface CssExports { 'inCinemas': string; 'isRecommendation': string; 'lists': string; + 'originalLanguage': string; 'physicalRelease': string; 'ratings': string; 'runtime': string; diff --git a/frontend/src/DiscoverMovie/Table/DiscoverMovieRow.css b/frontend/src/DiscoverMovie/Table/DiscoverMovieRow.css index d613b43ee5..86f6363baf 100644 --- a/frontend/src/DiscoverMovie/Table/DiscoverMovieRow.css +++ b/frontend/src/DiscoverMovie/Table/DiscoverMovieRow.css @@ -51,6 +51,12 @@ flex: 0 0 115px; } +.originalLanguage { + composes: cell; + + flex: 1 0 125px; +} + .ratings, .runtime { composes: cell; diff --git a/frontend/src/DiscoverMovie/Table/DiscoverMovieRow.css.d.ts b/frontend/src/DiscoverMovie/Table/DiscoverMovieRow.css.d.ts index 37b8005b7c..f65df2a1bf 100644 --- a/frontend/src/DiscoverMovie/Table/DiscoverMovieRow.css.d.ts +++ b/frontend/src/DiscoverMovie/Table/DiscoverMovieRow.css.d.ts @@ -14,6 +14,7 @@ interface CssExports { 'inCinemas': string; 'isRecommendation': string; 'lists': string; + 'originalLanguage': string; 'physicalRelease': string; 'ratings': string; 'runtime': string; diff --git a/frontend/src/DiscoverMovie/Table/DiscoverMovieRow.js b/frontend/src/DiscoverMovie/Table/DiscoverMovieRow.js index e1258eb0cb..9dd7b0d21e 100644 --- a/frontend/src/DiscoverMovie/Table/DiscoverMovieRow.js +++ b/frontend/src/DiscoverMovie/Table/DiscoverMovieRow.js @@ -61,6 +61,7 @@ class DiscoverMovieRow extends Component { imdbId, youTubeTrailerId, title, + originalLanguage, studio, inCinemas, physicalRelease, @@ -169,6 +170,14 @@ class DiscoverMovieRow extends Component { ); } + if (name === 'originalLanguage') { + return ( + + {originalLanguage.name} + + ); + } + if (name === 'studio') { return ( { + if (movie.originalLanguage) { + acc.push({ + id: movie.originalLanguage.name, + name: movie.originalLanguage.name + }); + } + + return acc; + }, []); + + return collectionList.sort(sortByName); + } + }, { name: 'inCinemas', label: 'In Cinemas', diff --git a/src/Radarr.Api.V3/ImportLists/ImportListMoviesResource.cs b/src/Radarr.Api.V3/ImportLists/ImportListMoviesResource.cs index 687fc964e6..05de8ea469 100644 --- a/src/Radarr.Api.V3/ImportLists/ImportListMoviesResource.cs +++ b/src/Radarr.Api.V3/ImportLists/ImportListMoviesResource.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using NzbDrone.Core.ImportLists.ImportListMovies; +using NzbDrone.Core.Languages; using NzbDrone.Core.MediaCover; using NzbDrone.Core.Movies; using NzbDrone.Core.Movies.Collections; @@ -17,6 +18,7 @@ public ImportListMoviesResource() public string Title { get; set; } public string SortTitle { get; set; } + public Language OriginalLanguage { get; set; } public MovieStatusType Status { get; set; } public string Overview { get; set; } public DateTime? InCinemas { get; set; } @@ -58,6 +60,7 @@ public static ImportListMoviesResource ToResource(this Movie model) TmdbId = model.TmdbId, Title = model.Title, SortTitle = model.MovieMetadata.Value.SortTitle, + OriginalLanguage = model.MovieMetadata.Value.OriginalLanguage, InCinemas = model.MovieMetadata.Value.InCinemas, PhysicalRelease = model.MovieMetadata.Value.PhysicalRelease, DigitalRelease = model.MovieMetadata.Value.DigitalRelease, @@ -93,6 +96,7 @@ public static ImportListMoviesResource ToResource(this ImportListMovie model) TmdbId = model.TmdbId, Title = model.Title, SortTitle = model.MovieMetadata.Value.SortTitle, + OriginalLanguage = model.MovieMetadata.Value.OriginalLanguage, InCinemas = model.MovieMetadata.Value.InCinemas, PhysicalRelease = model.MovieMetadata.Value.PhysicalRelease, DigitalRelease = model.MovieMetadata.Value.DigitalRelease,