From 804f9a7d9941e07cbaf6c19702447bd1cbb38166 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciar=C3=A1n=20Ainsworth?= <cda@rootkey.co.uk> Date: Fri, 4 Dec 2020 09:21:17 +0100 Subject: [PATCH] Add prop for default cover --- changes/changelog.d/1289.bugfix | 1 + front/src/components/audio/ChannelEntries.vue | 3 ++- front/src/components/audio/ChannelEntryCard.vue | 7 ++++--- front/src/views/channels/DetailOverview.vue | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 changes/changelog.d/1289.bugfix diff --git a/changes/changelog.d/1289.bugfix b/changes/changelog.d/1289.bugfix new file mode 100644 index 0000000000..0d212deebb --- /dev/null +++ b/changes/changelog.d/1289.bugfix @@ -0,0 +1 @@ +Changed default behaviour of channel entries to use channel artwork if no entry artwork available (#1289) \ No newline at end of file diff --git a/front/src/components/audio/ChannelEntries.vue b/front/src/components/audio/ChannelEntries.vue index 6d14408647..0ce183743d 100644 --- a/front/src/components/audio/ChannelEntries.vue +++ b/front/src/components/audio/ChannelEntries.vue @@ -5,7 +5,7 @@ <div v-if="isLoading" class="ui inverted active dimmer"> <div class="ui loader"></div> </div> - <channel-entry-card v-for="entry in objects" :entry="entry" :key="entry.id" /> + <channel-entry-card v-for="entry in objects" :default-cover="defaultCover" :entry="entry" :key="entry.id" /> <template v-if="count > limit"> <div class="ui hidden divider"></div> <div class = "ui center aligned basic segment"> @@ -38,6 +38,7 @@ export default { props: { filters: {type: Object, required: true}, limit: {type: Number, default: 10}, + defaultCover: {type: Object}, }, components: { ChannelEntryCard, diff --git a/front/src/components/audio/ChannelEntryCard.vue b/front/src/components/audio/ChannelEntryCard.vue index ff21e2604d..79ca6baf08 100644 --- a/front/src/components/audio/ChannelEntryCard.vue +++ b/front/src/components/audio/ChannelEntryCard.vue @@ -9,10 +9,11 @@ class="channel-image image" v-if="cover && cover.urls.original" v-lazy="$store.getters['instance/absoluteUrl'](cover.urls.medium_square_crop)"> - <span + <img @click="$router.push({name: 'library.tracks.detail', params: {id: entry.id}})" class="channel-image image" - v-else-if="entry.artist.content_category === 'podcast'">#{{ entry.position }}</span> + v-else-if="entry.artist.content_category === 'podcast' && defaultCover != undefined" + v-lazy="$store.getters['instance/absoluteUrl'](defaultCover.urls.medium_square_crop)"> <img @click="$router.push({name: 'library.tracks.detail', params: {id: entry.id}})" alt="" @@ -53,7 +54,7 @@ import { mapGetters } from "vuex" export default { - props: ['entry'], + props: ['entry', 'defaultCover'], components: { PlayButton, TrackFavoriteIcon, diff --git a/front/src/views/channels/DetailOverview.vue b/front/src/views/channels/DetailOverview.vue index f25645a3a5..7c37fdbd23 100644 --- a/front/src/views/channels/DetailOverview.vue +++ b/front/src/views/channels/DetailOverview.vue @@ -49,7 +49,7 @@ :can-update="false"></rendered-description> <div class="ui hidden divider"></div> </div> - <channel-entries :key="String(episodesKey) + 'entries'" :limit='25' :filters="{channel: object.uuid, ordering: '-creation_date', page_size: '25'}"> + <channel-entries :key="String(episodesKey) + 'entries'" :default-cover='object.artist.cover' :limit='25' :filters="{channel: object.uuid, ordering: '-creation_date', page_size: '25'}"> <h2 class="ui header"> <translate key="1" v-if="isPodcast" translate-context="Content/Channel/Paragraph">Latest episodes</translate> <translate key="2" v-else translate-context="Content/Channel/Paragraph">Latest tracks</translate> -- GitLab