diff --git a/frontend/src/Activity/History/HistoryRow.js b/frontend/src/Activity/History/HistoryRow.js index 2a0465e35..0c6a814fb 100644 --- a/frontend/src/Activity/History/HistoryRow.js +++ b/frontend/src/Activity/History/HistoryRow.js @@ -8,7 +8,8 @@ import IconButton from 'Components/Link/IconButton'; import RelativeDateCellConnector from 'Components/Table/Cells/RelativeDateCellConnector'; import TableRowCell from 'Components/Table/Cells/TableRowCell'; import TableRow from 'Components/Table/TableRow'; -import { icons } from 'Helpers/Props'; +import Tooltip from 'Components/Tooltip/Tooltip'; +import { icons, tooltipPositions } from 'Helpers/Props'; import formatPreferredWordScore from 'Utilities/Number/formatPreferredWordScore'; import HistoryDetailsModal from './Details/HistoryDetailsModal'; import HistoryEventTypeCell from './HistoryEventTypeCell'; @@ -57,6 +58,7 @@ class HistoryRow extends Component { book, quality, customFormats, + customFormatScore, qualityCutoffNotMet, eventType, sourceTitle, @@ -177,7 +179,14 @@ class HistoryRow extends Component { key={name} className={styles.customFormatScore} > - {formatPreferredWordScore(data.customFormatScore)} + } + position={tooltipPositions.BOTTOM} + /> ); } @@ -244,6 +253,7 @@ HistoryRow.propTypes = { book: PropTypes.object, quality: PropTypes.object.isRequired, customFormats: PropTypes.arrayOf(PropTypes.object), + customFormatScore: PropTypes.number.isRequired, qualityCutoffNotMet: PropTypes.bool.isRequired, eventType: PropTypes.string.isRequired, sourceTitle: PropTypes.string.isRequired, @@ -257,4 +267,8 @@ HistoryRow.propTypes = { onMarkAsFailedPress: PropTypes.func.isRequired }; +HistoryRow.defaultProps = { + customFormats: [] +}; + export default HistoryRow; diff --git a/frontend/src/Activity/Queue/QueueRow.js b/frontend/src/Activity/Queue/QueueRow.js index cb3f90ac8..017960c16 100644 --- a/frontend/src/Activity/Queue/QueueRow.js +++ b/frontend/src/Activity/Queue/QueueRow.js @@ -14,6 +14,7 @@ import TableRowCell from 'Components/Table/Cells/TableRowCell'; import TableSelectCell from 'Components/Table/Cells/TableSelectCell'; import TableRow from 'Components/Table/TableRow'; import Popover from 'Components/Tooltip/Popover'; +import Tooltip from 'Components/Tooltip/Tooltip'; import { icons, kinds, tooltipPositions } from 'Helpers/Props'; import InteractiveImportModal from 'InteractiveImport/InteractiveImportModal'; import formatBytes from 'Utilities/Number/formatBytes'; @@ -230,7 +231,14 @@ class QueueRow extends Component { key={name} className={styles.customFormatScore} > - {formatPreferredWordScore(customFormatScore)} + } + position={tooltipPositions.BOTTOM} + /> ); } @@ -430,6 +438,7 @@ QueueRow.propTypes = { }; QueueRow.defaultProps = { + customFormats: [], isGrabbing: false, isRemoving: false }; diff --git a/src/Readarr.Api.V1/History/HistoryResource.cs b/src/Readarr.Api.V1/History/HistoryResource.cs index 5ae690c13..b542871f7 100644 --- a/src/Readarr.Api.V1/History/HistoryResource.cs +++ b/src/Readarr.Api.V1/History/HistoryResource.cs @@ -17,6 +17,7 @@ public class HistoryResource : RestResource public string SourceTitle { get; set; } public QualityModel Quality { get; set; } public List CustomFormats { get; set; } + public int CustomFormatScore { get; set; } public bool QualityCutoffNotMet { get; set; } public DateTime Date { get; set; } public string DownloadId { get; set; } @@ -38,6 +39,9 @@ public static HistoryResource ToResource(this EntityHistory model, ICustomFormat return null; } + var customFormats = formatCalculator.ParseCustomFormat(model, model.Author); + var customFormatScore = model.Author?.QualityProfile?.Value?.CalculateCustomFormatScore(customFormats) ?? 0; + return new HistoryResource { Id = model.Id, @@ -46,7 +50,8 @@ public static HistoryResource ToResource(this EntityHistory model, ICustomFormat AuthorId = model.AuthorId, SourceTitle = model.SourceTitle, Quality = model.Quality, - CustomFormats = formatCalculator.ParseCustomFormat(model, model.Author).ToResource(false), + CustomFormats = customFormats.ToResource(false), + CustomFormatScore = customFormatScore, //QualityCutoffNotMet Date = model.Date,