diff --git a/changes/changelog.d/892.add.placeholder.widget b/changes/changelog.d/892.add.placeholder.widget new file mode 100644 index 0000000000000000000000000000000000000000..31cf6e5b05e700dec29ca76718205ef3657cacf0 --- /dev/null +++ b/changes/changelog.d/892.add.placeholder.widget @@ -0,0 +1 @@ +Display placeholder on homepage when there are no playlists (#892) diff --git a/front/src/components/playlists/PlaceholderWidget.vue b/front/src/components/playlists/PlaceholderWidget.vue new file mode 100644 index 0000000000000000000000000000000000000000..d72ab95fbc5922b42790f96d0bed7f5b7a073648 --- /dev/null +++ b/front/src/components/playlists/PlaceholderWidget.vue @@ -0,0 +1,18 @@ +<template> + <div class="ui placeholder segment"> + <div class="ui icon header"> + <i class="pdf file outline icon"></i> + <translate translate-context="Content/Home/Placeholder"> + No playlists have been created yet + </translate> + </div> + <button + @click="$store.commit('playlists/chooseTrack', null)" + class="ui primary button" + > + <translate translate-context="Content/Home/CreatePlaylist"> + Create Playlist + </translate> + </button> + </div> +</template> diff --git a/front/src/components/playlists/Widget.vue b/front/src/components/playlists/Widget.vue index b018f9731e97b307df3ded23a5d1660c6eba9ea9..9cd1c1d16ad7a859e8c8018def7e590f495499f3 100644 --- a/front/src/components/playlists/Widget.vue +++ b/front/src/components/playlists/Widget.vue @@ -9,7 +9,12 @@ <div v-if="isLoading" class="ui inverted active dimmer"> <div class="ui loader"></div> </div> - <playlist-card v-for="playlist in objects" :key="playlist.id" :playlist="playlist"></playlist-card> + <template v-if="playlistsExist"> + <playlist-card v-for="playlist in objects" :key="playlist.id" :playlist="playlist"></playlist-card> + </template> + <template v-else> + <placeholder-widget></placeholder-widget> + </template> </div> </template> @@ -17,6 +22,7 @@ import _ from '@/lodash' import axios from 'axios' import PlaylistCard from '@/components/playlists/Card' +import PlaceholderWidget from '@/components/playlists/PlaceholderWidget' export default { props: { @@ -24,7 +30,8 @@ export default { url: {type: String, required: true} }, components: { - PlaylistCard + PlaylistCard, + PlaceholderWidget }, data () { return { @@ -39,6 +46,11 @@ export default { created () { this.fetchData(this.url) }, + computed: { + playlistsExist: function () { + return this.objects.length > 0 + } + }, methods: { fetchData (url) { if (!url) {