Resolve 1228 multi-disc albums

environments/review-docs-devel-1399dq/deployments/6607
Ciarán Ainsworth 2020-10-01 11:22:36 +01:00
rodzic 007c151899
commit 925768f1b3
3 zmienionych plików z 14 dodań i 11 usunięć

Wyświetl plik

@ -0,0 +1 @@
Fixed duplication of discs for multi-disc albums in album views (#1228)

Wyświetl plik

@ -134,15 +134,17 @@ import TagsList from "@/components/tags/List"
import ArtistLabel from '@/components/audio/ArtistLabel' import ArtistLabel from '@/components/audio/ArtistLabel'
import AlbumDropdown from './AlbumDropdown' import AlbumDropdown from './AlbumDropdown'
function groupByDisc(acc, track) { function groupByDisc(initial) {
var dn = track.disc_number - 1 function inner(acc, track) {
if (dn < 0) dn = 0 var dn = track.disc_number - initial
if (acc[dn] == undefined) { if (acc[dn] == undefined) {
acc.push([track]) acc.push([track])
} else { } else {
acc[dn].push(track) acc[dn].push(track)
}
return acc
} }
return acc return inner
} }
export default { export default {
@ -180,7 +182,7 @@ export default {
tracksResponse = await tracksResponse tracksResponse = await tracksResponse
this.object = albumResponse.data this.object = albumResponse.data
this.object.tracks = tracksResponse.data.results 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 this.isLoading = false
}, },
remove () { remove () {

Wyświetl plik

@ -7,12 +7,12 @@
<channel-entries v-if="artist.channel && isSerie" :limit="50" :filters="{channel: artist.channel.uuid, ordering: '-creation_date'}"> <channel-entries v-if="artist.channel && isSerie" :limit="50" :filters="{channel: artist.channel.uuid, ordering: '-creation_date'}">
</channel-entries> </channel-entries>
<template v-else-if="discs && discs.length > 1"> <template v-else-if="discs && discs.length > 1">
<div v-for="(tracks, discNumber) in discs" :key="discNumber"> <div v-for="tracks in discs" :key="tracks.disc_number">
<div class="ui hidden divider"></div> <div class="ui hidden divider"></div>
<play-button class="right floated mini inverted vibrant" :tracks="tracks"></play-button> <play-button class="right floated mini inverted vibrant" :tracks="tracks"></play-button>
<translate <translate
tag="h3" tag="h3"
:translate-params="{number: discNumber + 1}" :translate-params="{number: tracks[0].disc_number}"
translate-context="Content/Album/" translate-context="Content/Album/"
>Volume %{ number }</translate> >Volume %{ number }</translate>
<album-entries :tracks="tracks"></album-entries> <album-entries :tracks="tracks"></album-entries>