kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
Resolve 1228 multi-disc albums
rodzic
007c151899
commit
925768f1b3
|
@ -0,0 +1 @@
|
||||||
|
Fixed duplication of discs for multi-disc albums in album views (#1228)
|
|
@ -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 () {
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Ładowanie…
Reference in New Issue