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

Fix #637: greyed tracks in radio builder and detail page

parent 657311c3
No related branches found
No related tags found
No related merge requests found
Fixed greyed tracks in radio builder and detail page (#637)
......@@ -120,7 +120,14 @@ export default {
this.isLoading = true
let getTracks = new Promise((resolve, reject) => {
if (self.track) {
resolve([self.track])
if (!self.track.uploads || self.track.uploads.length === 0) {
// fetch uploads from api
axios.get(`tracks/${self.track.id}/`).then((response) => {
resolve([response.data])
})
} else {
resolve([self.track])
}
} else if (self.tracks) {
resolve(self.tracks)
} else if (self.playlist) {
......
<template>
<tr>
<td>
<play-button class="basic icon" :discrete="true" :track="track"></play-button>
<play-button class="basic icon" :discrete="true" :is-playable="playable" :track="track"></play-button>
</td>
<td>
<img class="ui mini image" v-if="track.album.cover.original" v-lazy="$store.getters['instance/absoluteUrl'](track.album.cover.small_square_crop)">
......@@ -60,7 +60,8 @@ export default {
props: {
track: {type: Object, required: true},
artist: {type: Object, required: false},
displayPosition: {type: Boolean, default: false}
displayPosition: {type: Boolean, default: false},
playable: {type: Boolean, required: false, default: false},
},
components: {
TrackFavoriteIcon,
......@@ -86,9 +87,9 @@ export default {
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
tr:not(:hover) {
.favorite-icon:not(.favorited), .playlist-icon {
.favorite-icon:not(.favorited),
.playlist-icon {
visibility: hidden;
}
}
......
......@@ -13,6 +13,7 @@
</thead>
<tbody>
<track-row
:playable="playable"
:display-position="displayPosition"
:track="track"
:artist="artist"
......@@ -31,6 +32,7 @@ import Modal from '@/components/semantic/Modal'
export default {
props: {
tracks: {type: Array, required: true},
playable: {type: Boolean, required: false, default: false},
artist: {type: Object, required: false},
displayPosition: {type: Boolean, default: false}
},
......@@ -48,7 +50,6 @@ export default {
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
tr:not(:hover) .favorite-icon:not(.favorited) {
display: none;
}
......
......@@ -77,7 +77,7 @@
</builder-filter>
</tbody>
</table>
<template v-if="checkResult">
<template v-if="checkResult && checkResult.candidates && checkResult.candidates.count">
<h3
class="ui header"
v-translate="{count: checkResult.candidates.count}"
......@@ -85,7 +85,7 @@
translate-plural="%{ count } tracks matching combined filters">
%{ count } track matching combined filters
</h3>
<track-table v-if="checkResult.candidates.sample" :tracks="checkResult.candidates.sample"></track-table>
<track-table v-if="checkResult.candidates.sample" :tracks="checkResult.candidates.sample" :playable="true"></track-table>
</template>
</section>
</div>
......
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