diff --git a/changes/changelog.d/1228.bugfix b/changes/changelog.d/1228.bugfix
new file mode 100644
index 000000000..226c85057
--- /dev/null
+++ b/changes/changelog.d/1228.bugfix
@@ -0,0 +1 @@
+Fixed duplication of discs for multi-disc albums in album views (#1228)
\ No newline at end of file
diff --git a/front/src/components/library/AlbumBase.vue b/front/src/components/library/AlbumBase.vue
index 8bdb2fc34..8ae555f6c 100644
--- a/front/src/components/library/AlbumBase.vue
+++ b/front/src/components/library/AlbumBase.vue
@@ -134,15 +134,17 @@ import TagsList from "@/components/tags/List"
import ArtistLabel from '@/components/audio/ArtistLabel'
import AlbumDropdown from './AlbumDropdown'
-function groupByDisc(acc, track) {
- var dn = track.disc_number - 1
- if (dn < 0) dn = 0
- if (acc[dn] == undefined) {
- acc.push([track])
- } else {
- acc[dn].push(track)
+function groupByDisc(initial) {
+ function inner(acc, track) {
+ var dn = track.disc_number - initial
+ if (acc[dn] == undefined) {
+ acc.push([track])
+ } else {
+ acc[dn].push(track)
+ }
+ return acc
}
- return acc
+ return inner
}
export default {
@@ -180,7 +182,7 @@ export default {
tracksResponse = await tracksResponse
this.object = albumResponse.data
this.object.tracks = tracksResponse.data.results
- this.discs = this.object.tracks.reduce(groupByDisc, [])
+ this.discs = this.object.tracks.reduce(groupByDisc(this.object.tracks[0].disc_number), [])
this.isLoading = false
},
remove () {
diff --git a/front/src/components/library/AlbumDetail.vue b/front/src/components/library/AlbumDetail.vue
index bc670ce6b..b9d4821e6 100644
--- a/front/src/components/library/AlbumDetail.vue
+++ b/front/src/components/library/AlbumDetail.vue
@@ -7,12 +7,12 @@
-