diff --git a/frontend/src/Movie/Index/Menus/MovieIndexSortMenu.js b/frontend/src/Movie/Index/Menus/MovieIndexSortMenu.js
index 97563567a8..4f877bf60f 100644
--- a/frontend/src/Movie/Index/Menus/MovieIndexSortMenu.js
+++ b/frontend/src/Movie/Index/Menus/MovieIndexSortMenu.js
@@ -136,6 +136,24 @@ function MovieIndexSortMenu(props) {
>
{translate('Certification')}
+
+
+ {translate('OriginalTitle')}
+
+
+
+ {translate('OriginalLanguage')}
+
);
diff --git a/frontend/src/Movie/Index/Table/MovieIndexHeader.css b/frontend/src/Movie/Index/Table/MovieIndexHeader.css
index 54265a51b1..1b8c660cf4 100644
--- a/frontend/src/Movie/Index/Table/MovieIndexHeader.css
+++ b/frontend/src/Movie/Index/Table/MovieIndexHeader.css
@@ -5,6 +5,7 @@
}
.collection,
+.originalTitle,
.sortTitle {
composes: headerCell from '~Components/Table/VirtualTableHeaderCell.css';
@@ -23,6 +24,7 @@
flex: 2 0 90px;
}
+.originalLanguage,
.qualityProfileId {
composes: headerCell from '~Components/Table/VirtualTableHeaderCell.css';
diff --git a/frontend/src/Movie/Index/Table/MovieIndexRow.css b/frontend/src/Movie/Index/Table/MovieIndexRow.css
index b1bcc46a83..525af84089 100644
--- a/frontend/src/Movie/Index/Table/MovieIndexRow.css
+++ b/frontend/src/Movie/Index/Table/MovieIndexRow.css
@@ -12,6 +12,7 @@
}
.collection,
+.originalTitle,
.sortTitle {
composes: cell;
@@ -30,6 +31,7 @@
flex: 2 0 90px;
}
+.originalLanguage,
.qualityProfileId {
composes: cell;
diff --git a/frontend/src/Movie/Index/Table/MovieIndexRow.js b/frontend/src/Movie/Index/Table/MovieIndexRow.js
index 9ebe8bba8f..560e69433f 100644
--- a/frontend/src/Movie/Index/Table/MovieIndexRow.js
+++ b/frontend/src/Movie/Index/Table/MovieIndexRow.js
@@ -80,6 +80,8 @@ class MovieIndexRow extends Component {
year,
inCinemas,
physicalRelease,
+ originalLanguage,
+ originalTitle,
digitalRelease,
runtime,
minimumAvailability,
@@ -184,6 +186,28 @@ class MovieIndexRow extends Component {
);
}
+ if (name === 'originalLanguage') {
+ return (
+
+ {originalLanguage.name}
+
+ );
+ }
+
+ if (name === 'originalTitle') {
+ return (
+
+ {originalTitle}
+
+ );
+ }
+
if (name === 'qualityProfileId') {
return (
{
+ if (movie.originalLanguage) {
+ acc.push({
+ id: movie.originalLanguage.name,
+ name: movie.originalLanguage.name
+ });
+ }
+
+ return acc;
+ }, []);
+
+ return collectionList.sort(sortByName);
+ }
+ },
{
name: 'status',
label: translate('ReleaseStatus'),
diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json
index a006661d1f..15dcbe8ef7 100644
--- a/src/NzbDrone.Core/Localization/Core/en.json
+++ b/src/NzbDrone.Core/Localization/Core/en.json
@@ -645,6 +645,8 @@
"OpenThisModal": "Open This Modal",
"Options": "Options",
"Organize": "Organize",
+ "OriginalTitle": "Original Title",
+ "OriginalLanguage": "Original Language",
"OrganizeAndRename": "Organize & Rename",
"OrganizeConfirm": "Are you sure you want to organize all files in the {0} selected movie(s)?",
"OrganizeModalAllPathsRelative": "All paths are relative to:",
diff --git a/src/Radarr.Api.V3/Movies/MovieResource.cs b/src/Radarr.Api.V3/Movies/MovieResource.cs
index d7e0927d4b..b0b1eeb83f 100644
--- a/src/Radarr.Api.V3/Movies/MovieResource.cs
+++ b/src/Radarr.Api.V3/Movies/MovieResource.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using NzbDrone.Core.DecisionEngine.Specifications;
+using NzbDrone.Core.Languages;
using NzbDrone.Core.MediaCover;
using NzbDrone.Core.Movies;
using NzbDrone.Core.Movies.Translations;
@@ -26,6 +27,7 @@ public MovieResource()
//View Only
public string Title { get; set; }
public string OriginalTitle { get; set; }
+ public Language OriginalLanguage { get; set; }
public List AlternateTitles { get; set; }
public int? SecondaryYear { get; set; }
public int SecondaryYearSourceId { get; set; }
@@ -96,6 +98,7 @@ public static MovieResource ToResource(this Movie model, int availDelay, MovieTr
TmdbId = model.TmdbId,
Title = translatedTitle,
OriginalTitle = model.OriginalTitle,
+ OriginalLanguage = model.OriginalLanguage,
SortTitle = translatedTitle.NormalizeTitle(),
InCinemas = model.InCinemas,
PhysicalRelease = model.PhysicalRelease,