diff --git a/frontend/src/Movie/History/MovieHistoryRow.css b/frontend/src/Movie/History/MovieHistoryRow.css index 101e23783f..7a226c06a4 100644 --- a/frontend/src/Movie/History/MovieHistoryRow.css +++ b/frontend/src/Movie/History/MovieHistoryRow.css @@ -9,3 +9,9 @@ word-break: break-word; } + +.customFormatScore { + composes: cell from '~Components/Table/Cells/TableRowCell.css'; + + width: 55px; +} diff --git a/frontend/src/Movie/History/MovieHistoryRow.css.d.ts b/frontend/src/Movie/History/MovieHistoryRow.css.d.ts index b0b91a6b81..480a93009c 100644 --- a/frontend/src/Movie/History/MovieHistoryRow.css.d.ts +++ b/frontend/src/Movie/History/MovieHistoryRow.css.d.ts @@ -2,6 +2,7 @@ // Please do not change this file! interface CssExports { 'actions': string; + 'customFormatScore': string; 'sourceTitle': string; } export const cssExports: CssExports; diff --git a/frontend/src/Movie/History/MovieHistoryRow.js b/frontend/src/Movie/History/MovieHistoryRow.js index f77fa6bffd..b26fdbabc0 100644 --- a/frontend/src/Movie/History/MovieHistoryRow.js +++ b/frontend/src/Movie/History/MovieHistoryRow.js @@ -7,7 +7,8 @@ import ConfirmModal from 'Components/Modal/ConfirmModal'; import RelativeDateCellConnector from 'Components/Table/Cells/RelativeDateCellConnector'; import TableRowCell from 'Components/Table/Cells/TableRowCell'; import TableRow from 'Components/Table/TableRow'; -import { icons, kinds } from 'Helpers/Props'; +import Tooltip from 'Components/Tooltip/Tooltip'; +import { icons, kinds, tooltipPositions } from 'Helpers/Props'; import MovieFormats from 'Movie/MovieFormats'; import MovieLanguage from 'Movie/MovieLanguage'; import MovieQuality from 'Movie/MovieQuality'; @@ -106,8 +107,15 @@ class MovieHistoryRow extends Component { /> - - {formatCustomFormatScore(customFormatScore)} + + } + position={tooltipPositions.TOP} + /> + + } + position={tooltipPositions.TOP} + /> + + translate('Formats'), isVisible: true }, + { + name: 'customFormatScore', + label: React.createElement(Icon, { + name: icons.SCORE, + title: () => translate('CustomFormatScore') + }), + isVisible: true + }, { name: 'action', label: React.createElement(IconButton, { name: icons.ADVANCED_SETTINGS }), diff --git a/src/Radarr.Api.V3/MovieFiles/MovieFileController.cs b/src/Radarr.Api.V3/MovieFiles/MovieFileController.cs index b6310ab17c..6afa774475 100644 --- a/src/Radarr.Api.V3/MovieFiles/MovieFileController.cs +++ b/src/Radarr.Api.V3/MovieFiles/MovieFileController.cs @@ -54,7 +54,12 @@ protected override MovieFileResource GetResourceById(int id) movieFile.Movie = movie; var resource = movieFile.ToResource(movie, _qualityUpgradableSpecification); - resource.CustomFormats = _formatCalculator.ParseCustomFormat(movieFile).ToResource(false); + + var customFormats = _formatCalculator.ParseCustomFormat(movieFile); + var customFormatScore = movie?.Profile?.CalculateCustomFormatScore(customFormats) ?? 0; + resource.CustomFormats = customFormats.ToResource(false); + resource.CustomFormatScore = customFormatScore; + return resource; } @@ -78,7 +83,11 @@ public List GetMovieFiles(int? movieId, [FromQuery] List var resource = file.ToResource(movie, _qualityUpgradableSpecification); file.Movie = movie; - resource.CustomFormats = _formatCalculator.ParseCustomFormat(file).ToResource(false); + + var customFormats = _formatCalculator.ParseCustomFormat(file); + var customFormatScore = movie?.Profile?.CalculateCustomFormatScore(customFormats) ?? 0; + resource.CustomFormats = customFormats.ToResource(false); + resource.CustomFormatScore = customFormatScore; return new List { resource }; } diff --git a/src/Radarr.Api.V3/MovieFiles/MovieFileResource.cs b/src/Radarr.Api.V3/MovieFiles/MovieFileResource.cs index 9a2e582370..b2930dd440 100644 --- a/src/Radarr.Api.V3/MovieFiles/MovieFileResource.cs +++ b/src/Radarr.Api.V3/MovieFiles/MovieFileResource.cs @@ -21,6 +21,7 @@ public class MovieFileResource : RestResource public int IndexerFlags { get; set; } public QualityModel Quality { get; set; } public List CustomFormats { get; set; } + public int CustomFormatScore { get; set; } public MediaInfoResource MediaInfo { get; set; } public string OriginalFilePath { get; set; } public bool QualityCutoffNotMet { get; set; }