Skip to content
Snippets Groups Projects
Verified Commit 8cb745e5 authored by Eliot Berriot's avatar Eliot Berriot
Browse files

Fix #599: wrong album/track count on artist page

parent 2739a5fb
No related branches found
No related tags found
No related merge requests found
Fixed wrong album/track count on artist page (#599)
...@@ -94,6 +94,8 @@ export default { ...@@ -94,6 +94,8 @@ export default {
isLoadingAlbums: true, isLoadingAlbums: true,
artist: null, artist: null,
albums: null, albums: null,
totalTracks: 0,
totalAlbums: 0,
tracks: [] tracks: []
} }
}, },
...@@ -107,12 +109,14 @@ export default { ...@@ -107,12 +109,14 @@ export default {
logger.default.debug('Fetching artist "' + this.id + '"') logger.default.debug('Fetching artist "' + this.id + '"')
axios.get('tracks/', {params: {artist: this.id}}).then((response) => { axios.get('tracks/', {params: {artist: this.id}}).then((response) => {
self.tracks = response.data.results self.tracks = response.data.results
self.totalTracks = response.data.count
}) })
axios.get('artists/' + this.id + '/').then((response) => { axios.get('artists/' + this.id + '/').then((response) => {
self.artist = response.data self.artist = response.data
self.isLoading = false self.isLoading = false
self.isLoadingAlbums = true self.isLoadingAlbums = true
axios.get('albums/', {params: {artist: self.id, ordering: '-release_date'}}).then((response) => { 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)) let parsed = JSON.parse(JSON.stringify(response.data.results))
self.albums = parsed.map((album) => { self.albums = parsed.map((album) => {
return backend.Album.clean(album) return backend.Album.clean(album)
...@@ -129,22 +133,6 @@ export default { ...@@ -129,22 +133,6 @@ export default {
title: this.$gettext('Artist') 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 () { isPlayable () {
return this.artist.albums.filter((a) => { return this.artist.albums.filter((a) => {
return a.is_playable return a.is_playable
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment