diff --git a/changes/changelog.d/1289.bugfix b/changes/changelog.d/1289.bugfix new file mode 100644 index 0000000000000000000000000000000000000000..0d212deebb4248f63c63ea26eb9110691046ab8c --- /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 6d14408647d7c1483c8f9284c7d3820726948331..0ce183743dcf7b3d517d90df1f1c40294f8cb95a 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 ff21e2604d74416ad453d39887950cf54b1a6dcf..79ca6baf080b8aa4b869b601e31632ca0f714912 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 f25645a3a598d5ed8263d38f2bbc4c389a8d810b..7c37fdbd23e103490ca92527f012f2f3b9071ece 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>