diff --git a/frontend/src/Album/Details/AlbumDetailsMedium.js b/frontend/src/Album/Details/AlbumDetailsMedium.js
index 09c489b2d..9e80e2c7a 100644
--- a/frontend/src/Album/Details/AlbumDetailsMedium.js
+++ b/frontend/src/Album/Details/AlbumDetailsMedium.js
@@ -12,16 +12,13 @@ import TrackRowConnector from './TrackRowConnector';
import styles from './AlbumDetailsMedium.css';
function getMediumStatistics(tracks) {
- let trackCount = 0;
+ const trackCount = tracks.length;
let trackFileCount = 0;
let totalTrackCount = 0;
tracks.forEach((track) => {
if (track.trackFileId) {
- trackCount++;
trackFileCount++;
- } else {
- trackCount++;
}
totalTrackCount++;
diff --git a/frontend/src/Artist/Details/AlbumGroupInfo.js b/frontend/src/Artist/Details/AlbumGroupInfo.js
index 0fb62d4a3..139cd7765 100644
--- a/frontend/src/Artist/Details/AlbumGroupInfo.js
+++ b/frontend/src/Artist/Details/AlbumGroupInfo.js
@@ -10,6 +10,7 @@ function AlbumGroupInfo(props) {
const {
totalAlbumCount,
monitoredAlbumCount,
+ albumFileCount,
trackFileCount,
sizeOnDisk
} = props;
@@ -30,6 +31,13 @@ function AlbumGroupInfo(props) {
data={monitoredAlbumCount}
/>
+
+
{
- statistics.totalTrackCount
+ totalTrackCount
}
);
diff --git a/frontend/src/Artist/Details/ArtistDetailsSeason.js b/frontend/src/Artist/Details/ArtistDetailsSeason.js
index 37c85aa66..004613e30 100644
--- a/frontend/src/Artist/Details/ArtistDetailsSeason.js
+++ b/frontend/src/Artist/Details/ArtistDetailsSeason.js
@@ -22,32 +22,43 @@ import styles from './ArtistDetailsSeason.css';
function getAlbumStatistics(albums) {
let albumCount = 0;
+ let albumFileCount = 0;
let trackFileCount = 0;
let totalAlbumCount = 0;
let monitoredAlbumCount = 0;
let hasMonitoredAlbums = false;
let sizeOnDisk = 0;
- albums.forEach((album) => {
- if (album.statistics) {
- sizeOnDisk = sizeOnDisk + album.statistics.sizeOnDisk;
- trackFileCount = trackFileCount + album.statistics.trackFileCount;
+ albums.forEach(({ monitored, releaseDate, statistics = {} }) => {
+ const {
+ trackFileCount: albumTrackFileCount = 0,
+ totalTrackCount: albumTotalTrackCount = 0,
+ sizeOnDisk: albumSizeOnDisk = 0
+ } = statistics;
- if (album.statistics.trackFileCount === album.statistics.totalTrackCount || (album.monitored && isBefore(album.airDateUtc))) {
- albumCount++;
- }
+ const hasFiles = albumTrackFileCount > 0 && albumTrackFileCount === albumTotalTrackCount;
+
+ if (hasFiles || (monitored && isBefore(releaseDate))) {
+ albumCount++;
+ }
+
+ if (hasFiles) {
+ albumFileCount++;
}
- if (album.monitored) {
+ if (monitored) {
monitoredAlbumCount++;
hasMonitoredAlbums = true;
}
totalAlbumCount++;
+ trackFileCount = trackFileCount + albumTrackFileCount;
+ sizeOnDisk = sizeOnDisk + albumSizeOnDisk;
});
return {
albumCount,
+ albumFileCount,
totalAlbumCount,
trackFileCount,
monitoredAlbumCount,
@@ -56,8 +67,8 @@ function getAlbumStatistics(albums) {
};
}
-function getAlbumCountKind(monitored, albumCount, monitoredAlbumCount) {
- if (albumCount === monitoredAlbumCount && monitoredAlbumCount > 0) {
+function getAlbumCountKind(monitored, albumCount, albumFileCount) {
+ if (albumCount === albumFileCount && albumFileCount > 0) {
return kinds.SUCCESS;
}
@@ -192,6 +203,7 @@ class ArtistDetailsSeason extends Component {
const {
albumCount,
+ albumFileCount,
totalAlbumCount,
trackFileCount,
monitoredAlbumCount,
@@ -226,9 +238,9 @@ class ArtistDetailsSeason extends Component {
anchor={
}
title={translate('GroupInformation')}
@@ -237,6 +249,7 @@ class ArtistDetailsSeason extends Component {
diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json
index d279bfadd..642d99a2a 100644
--- a/src/NzbDrone.Core/Localization/Core/en.json
+++ b/src/NzbDrone.Core/Localization/Core/en.json
@@ -1294,6 +1294,7 @@
"WatchRootFoldersForFileChanges": "Watch Root Folders for file changes",
"WeekColumnHeader": "Week Column Header",
"WhatsNew": "What's New?",
+ "WithFiles": "With Files",
"WouldYouLikeToRestoreBackup": "Would you like to restore the backup '{name}'?",
"WriteAudioTagsHelpTextWarning": "Selecting 'All files' will alter existing files when they are imported.",
"WriteMetadataTags": "Write Metadata Tags",