diff --git a/changes/changelog.d/599.bugfix b/changes/changelog.d/599.bugfix new file mode 100644 index 000000000..46d44065b --- /dev/null +++ b/changes/changelog.d/599.bugfix @@ -0,0 +1 @@ +Fixed wrong album/track count on artist page (#599) diff --git a/front/src/components/library/Artist.vue b/front/src/components/library/Artist.vue index 7a3c1f7c7..953cea289 100644 --- a/front/src/components/library/Artist.vue +++ b/front/src/components/library/Artist.vue @@ -94,6 +94,8 @@ export default { isLoadingAlbums: true, artist: null, albums: null, + totalTracks: 0, + totalAlbums: 0, tracks: [] } }, @@ -107,12 +109,14 @@ export default { logger.default.debug('Fetching artist "' + this.id + '"') axios.get('tracks/', {params: {artist: this.id}}).then((response) => { self.tracks = response.data.results + self.totalTracks = response.data.count }) axios.get('artists/' + this.id + '/').then((response) => { self.artist = response.data self.isLoading = false self.isLoadingAlbums = true axios.get('albums/', {params: {artist: self.id, ordering: '-release_date'}}).then((response) => { + self.totalAlbums = response.data.count let parsed = JSON.parse(JSON.stringify(response.data.results)) self.albums = parsed.map((album) => { return backend.Album.clean(album) @@ -129,22 +133,6 @@ export default { title: this.$gettext('Artist') } }, - totalAlbums () { - let trackAlbums = _.uniqBy(this.tracks, (t) => { - return t.album.id - }) - return this.albums.length + trackAlbums.length - }, - totalTracks () { - if (this.albums.length === 0) { - return 0 + this.tracks.length - } - return this.albums.map((album) => { - return album.tracks.length - }).reduce((a, b) => { - return a + b - }) + this.tracks.length - }, isPlayable () { return this.artist.albums.filter((a) => { return a.is_playable