mirror of
https://github.com/owntone/owntone-server.git
synced 2025-02-25 12:29:18 -05:00
[web-src] Add info button to artist tracks, genre and spotify pages
This commit is contained in:
parent
3bfc8d49ee
commit
7a30a50bd7
@ -8,9 +8,14 @@
|
|||||||
<p class="title is-4">{{ artist.name }}</p>
|
<p class="title is-4">{{ artist.name }}</p>
|
||||||
</template>
|
</template>
|
||||||
<template slot="heading-right">
|
<template slot="heading-right">
|
||||||
|
<div class="buttons is-centered">
|
||||||
|
<a class="button is-small is-light is-rounded" @click="show_artist_details_modal = true">
|
||||||
|
<span class="icon"><i class="mdi mdi-dots-horizontal mdi-18px"></i></span>
|
||||||
|
</a>
|
||||||
<a class="button is-small is-dark is-rounded" @click="play">
|
<a class="button is-small is-dark is-rounded" @click="play">
|
||||||
<span class="icon"><i class="mdi mdi-shuffle"></i></span> <span>Shuffle</span>
|
<span class="icon"><i class="mdi mdi-shuffle"></i></span> <span>Shuffle</span>
|
||||||
</a>
|
</a>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template slot="content">
|
<template slot="content">
|
||||||
<p class="heading has-text-centered-mobile"><a class="has-text-link" @click="open_artist">{{ artist.album_count }} albums</a> | {{ artist.track_count }} tracks</p>
|
<p class="heading has-text-centered-mobile"><a class="has-text-link" @click="open_artist">{{ artist.album_count }} albums</a> | {{ artist.track_count }} tracks</p>
|
||||||
@ -22,6 +27,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</list-item-track>
|
</list-item-track>
|
||||||
<modal-dialog-track :show="show_details_modal" :track="selected_track" @close="show_details_modal = false" />
|
<modal-dialog-track :show="show_details_modal" :track="selected_track" @close="show_details_modal = false" />
|
||||||
|
<modal-dialog-artist :show="show_artist_details_modal" :artist="artist" @close="show_artist_details_modal = false" />
|
||||||
</template>
|
</template>
|
||||||
</content-with-heading>
|
</content-with-heading>
|
||||||
</div>
|
</div>
|
||||||
@ -33,6 +39,7 @@ import ContentWithHeading from '@/templates/ContentWithHeading'
|
|||||||
import IndexButtonList from '@/components/IndexButtonList'
|
import IndexButtonList from '@/components/IndexButtonList'
|
||||||
import ListItemTrack from '@/components/ListItemTrack'
|
import ListItemTrack from '@/components/ListItemTrack'
|
||||||
import ModalDialogTrack from '@/components/ModalDialogTrack'
|
import ModalDialogTrack from '@/components/ModalDialogTrack'
|
||||||
|
import ModalDialogArtist from '@/components/ModalDialogArtist'
|
||||||
import webapi from '@/webapi'
|
import webapi from '@/webapi'
|
||||||
|
|
||||||
const tracksData = {
|
const tracksData = {
|
||||||
@ -52,7 +59,7 @@ const tracksData = {
|
|||||||
export default {
|
export default {
|
||||||
name: 'PageArtistTracks',
|
name: 'PageArtistTracks',
|
||||||
mixins: [ LoadDataBeforeEnterMixin(tracksData) ],
|
mixins: [ LoadDataBeforeEnterMixin(tracksData) ],
|
||||||
components: { ContentWithHeading, ListItemTrack, IndexButtonList, ModalDialogTrack },
|
components: { ContentWithHeading, ListItemTrack, IndexButtonList, ModalDialogTrack, ModalDialogArtist },
|
||||||
|
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@ -60,7 +67,9 @@ export default {
|
|||||||
tracks: { items: [] },
|
tracks: { items: [] },
|
||||||
|
|
||||||
show_details_modal: false,
|
show_details_modal: false,
|
||||||
selected_track: {}
|
selected_track: {},
|
||||||
|
|
||||||
|
show_artist_details_modal: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -8,9 +8,14 @@
|
|||||||
<p class="title is-4">{{ name }}</p>
|
<p class="title is-4">{{ name }}</p>
|
||||||
</template>
|
</template>
|
||||||
<template slot="heading-right">
|
<template slot="heading-right">
|
||||||
|
<div class="buttons is-centered">
|
||||||
|
<a class="button is-small is-light is-rounded" @click="show_genre_details_modal = true">
|
||||||
|
<span class="icon"><i class="mdi mdi-dots-horizontal mdi-18px"></i></span>
|
||||||
|
</a>
|
||||||
<a class="button is-small is-dark is-rounded" @click="play">
|
<a class="button is-small is-dark is-rounded" @click="play">
|
||||||
<span class="icon"><i class="mdi mdi-shuffle"></i></span> <span>Shuffle</span>
|
<span class="icon"><i class="mdi mdi-shuffle"></i></span> <span>Shuffle</span>
|
||||||
</a>
|
</a>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template slot="content">
|
<template slot="content">
|
||||||
<p class="heading has-text-centered-mobile">{{ genre_albums.total }} albums | <a class="has-text-link" @click="open_tracks">tracks</a></p>
|
<p class="heading has-text-centered-mobile">{{ genre_albums.total }} albums | <a class="has-text-link" @click="open_tracks">tracks</a></p>
|
||||||
@ -22,6 +27,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</list-item-albums>
|
</list-item-albums>
|
||||||
<modal-dialog-album :show="show_details_modal" :album="selected_album" @close="show_details_modal = false" />
|
<modal-dialog-album :show="show_details_modal" :album="selected_album" @close="show_details_modal = false" />
|
||||||
|
<modal-dialog-genre :show="show_genre_details_modal" :genre="{ 'name': name }" @close="show_genre_details_modal = false" />
|
||||||
</template>
|
</template>
|
||||||
</content-with-heading>
|
</content-with-heading>
|
||||||
</div>
|
</div>
|
||||||
@ -34,6 +40,7 @@ import TabsMusic from '@/components/TabsMusic'
|
|||||||
import IndexButtonList from '@/components/IndexButtonList'
|
import IndexButtonList from '@/components/IndexButtonList'
|
||||||
import ListItemAlbums from '@/components/ListItemAlbum'
|
import ListItemAlbums from '@/components/ListItemAlbum'
|
||||||
import ModalDialogAlbum from '@/components/ModalDialogAlbum'
|
import ModalDialogAlbum from '@/components/ModalDialogAlbum'
|
||||||
|
import ModalDialogGenre from '@/components/ModalDialogGenre'
|
||||||
import webapi from '@/webapi'
|
import webapi from '@/webapi'
|
||||||
|
|
||||||
const genreData = {
|
const genreData = {
|
||||||
@ -50,7 +57,7 @@ const genreData = {
|
|||||||
export default {
|
export default {
|
||||||
name: 'PageGenre',
|
name: 'PageGenre',
|
||||||
mixins: [ LoadDataBeforeEnterMixin(genreData) ],
|
mixins: [ LoadDataBeforeEnterMixin(genreData) ],
|
||||||
components: { ContentWithHeading, TabsMusic, IndexButtonList, ListItemAlbums, ModalDialogAlbum },
|
components: { ContentWithHeading, TabsMusic, IndexButtonList, ListItemAlbums, ModalDialogAlbum, ModalDialogGenre },
|
||||||
|
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@ -58,7 +65,9 @@ export default {
|
|||||||
genre_albums: { items: [] },
|
genre_albums: { items: [] },
|
||||||
|
|
||||||
show_details_modal: false,
|
show_details_modal: false,
|
||||||
selected_album: {}
|
selected_album: {},
|
||||||
|
|
||||||
|
show_genre_details_modal: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -8,9 +8,14 @@
|
|||||||
<p class="title is-4">{{ genre }}</p>
|
<p class="title is-4">{{ genre }}</p>
|
||||||
</template>
|
</template>
|
||||||
<template slot="heading-right">
|
<template slot="heading-right">
|
||||||
|
<div class="buttons is-centered">
|
||||||
|
<a class="button is-small is-light is-rounded" @click="show_genre_details_modal = true">
|
||||||
|
<span class="icon"><i class="mdi mdi-dots-horizontal mdi-18px"></i></span>
|
||||||
|
</a>
|
||||||
<a class="button is-small is-dark is-rounded" @click="play">
|
<a class="button is-small is-dark is-rounded" @click="play">
|
||||||
<span class="icon"><i class="mdi mdi-shuffle"></i></span> <span>Shuffle</span>
|
<span class="icon"><i class="mdi mdi-shuffle"></i></span> <span>Shuffle</span>
|
||||||
</a>
|
</a>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template slot="content">
|
<template slot="content">
|
||||||
<p class="heading has-text-centered-mobile"><a class="has-text-link" @click="open_genre">albums</a> | {{ tracks.total }} tracks</p>
|
<p class="heading has-text-centered-mobile"><a class="has-text-link" @click="open_genre">albums</a> | {{ tracks.total }} tracks</p>
|
||||||
@ -22,6 +27,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</list-item-track>
|
</list-item-track>
|
||||||
<modal-dialog-track :show="show_details_modal" :track="selected_track" @close="show_details_modal = false" />
|
<modal-dialog-track :show="show_details_modal" :track="selected_track" @close="show_details_modal = false" />
|
||||||
|
<modal-dialog-genre :show="show_genre_details_modal" :genre="{ 'name': genre }" @close="show_genre_details_modal = false" />
|
||||||
</template>
|
</template>
|
||||||
</content-with-heading>
|
</content-with-heading>
|
||||||
</div>
|
</div>
|
||||||
@ -33,6 +39,7 @@ import ContentWithHeading from '@/templates/ContentWithHeading'
|
|||||||
import IndexButtonList from '@/components/IndexButtonList'
|
import IndexButtonList from '@/components/IndexButtonList'
|
||||||
import ListItemTrack from '@/components/ListItemTrack'
|
import ListItemTrack from '@/components/ListItemTrack'
|
||||||
import ModalDialogTrack from '@/components/ModalDialogTrack'
|
import ModalDialogTrack from '@/components/ModalDialogTrack'
|
||||||
|
import ModalDialogGenre from '@/components/ModalDialogGenre'
|
||||||
import webapi from '@/webapi'
|
import webapi from '@/webapi'
|
||||||
|
|
||||||
const tracksData = {
|
const tracksData = {
|
||||||
@ -49,7 +56,7 @@ const tracksData = {
|
|||||||
export default {
|
export default {
|
||||||
name: 'PageGenreTracks',
|
name: 'PageGenreTracks',
|
||||||
mixins: [ LoadDataBeforeEnterMixin(tracksData) ],
|
mixins: [ LoadDataBeforeEnterMixin(tracksData) ],
|
||||||
components: { ContentWithHeading, ListItemTrack, IndexButtonList, ModalDialogTrack },
|
components: { ContentWithHeading, ListItemTrack, IndexButtonList, ModalDialogTrack, ModalDialogGenre },
|
||||||
|
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@ -57,7 +64,9 @@ export default {
|
|||||||
genre: '',
|
genre: '',
|
||||||
|
|
||||||
show_details_modal: false,
|
show_details_modal: false,
|
||||||
selected_track: {}
|
selected_track: {},
|
||||||
|
|
||||||
|
show_genre_details_modal: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -5,9 +5,14 @@
|
|||||||
<a class="title is-4 has-text-link has-text-weight-normal" @click="open_artist">{{ album.artists[0].name }}</a>
|
<a class="title is-4 has-text-link has-text-weight-normal" @click="open_artist">{{ album.artists[0].name }}</a>
|
||||||
</template>
|
</template>
|
||||||
<template slot="heading-right">
|
<template slot="heading-right">
|
||||||
|
<div class="buttons is-centered">
|
||||||
|
<a class="button is-small is-light is-rounded" @click="show_album_details_modal = true">
|
||||||
|
<span class="icon"><i class="mdi mdi-dots-horizontal mdi-18px"></i></span>
|
||||||
|
</a>
|
||||||
<a class="button is-small is-dark is-rounded" @click="play">
|
<a class="button is-small is-dark is-rounded" @click="play">
|
||||||
<span class="icon"><i class="mdi mdi-shuffle"></i></span> <span>Shuffle</span>
|
<span class="icon"><i class="mdi mdi-shuffle"></i></span> <span>Shuffle</span>
|
||||||
</a>
|
</a>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template slot="content">
|
<template slot="content">
|
||||||
<p class="heading has-text-centered-mobile">{{ album.tracks.total }} tracks</p>
|
<p class="heading has-text-centered-mobile">{{ album.tracks.total }} tracks</p>
|
||||||
@ -19,6 +24,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</spotify-list-item-track>
|
</spotify-list-item-track>
|
||||||
<spotify-modal-dialog-track :show="show_track_details_modal" :track="selected_track" :album="album" @close="show_track_details_modal = false" />
|
<spotify-modal-dialog-track :show="show_track_details_modal" :track="selected_track" :album="album" @close="show_track_details_modal = false" />
|
||||||
|
<spotify-modal-dialog-album :show="show_album_details_modal" :album="album" @close="show_album_details_modal = false" />
|
||||||
</template>
|
</template>
|
||||||
</content-with-heading>
|
</content-with-heading>
|
||||||
</template>
|
</template>
|
||||||
@ -28,6 +34,7 @@ import { LoadDataBeforeEnterMixin } from './mixin'
|
|||||||
import ContentWithHeading from '@/templates/ContentWithHeading'
|
import ContentWithHeading from '@/templates/ContentWithHeading'
|
||||||
import SpotifyListItemTrack from '@/components/SpotifyListItemTrack'
|
import SpotifyListItemTrack from '@/components/SpotifyListItemTrack'
|
||||||
import SpotifyModalDialogTrack from '@/components/SpotifyModalDialogTrack'
|
import SpotifyModalDialogTrack from '@/components/SpotifyModalDialogTrack'
|
||||||
|
import SpotifyModalDialogAlbum from '@/components/SpotifyModalDialogAlbum'
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
import webapi from '@/webapi'
|
import webapi from '@/webapi'
|
||||||
import SpotifyWebApi from 'spotify-web-api-js'
|
import SpotifyWebApi from 'spotify-web-api-js'
|
||||||
@ -47,14 +54,16 @@ const albumData = {
|
|||||||
export default {
|
export default {
|
||||||
name: 'PageAlbum',
|
name: 'PageAlbum',
|
||||||
mixins: [ LoadDataBeforeEnterMixin(albumData) ],
|
mixins: [ LoadDataBeforeEnterMixin(albumData) ],
|
||||||
components: { ContentWithHeading, SpotifyListItemTrack, SpotifyModalDialogTrack },
|
components: { ContentWithHeading, SpotifyListItemTrack, SpotifyModalDialogTrack, SpotifyModalDialogAlbum },
|
||||||
|
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
album: { artists: [{}], tracks: {} },
|
album: { artists: [{}], tracks: {} },
|
||||||
|
|
||||||
show_track_details_modal: false,
|
show_track_details_modal: false,
|
||||||
selected_track: {}
|
selected_track: {},
|
||||||
|
|
||||||
|
show_album_details_modal: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -3,6 +3,16 @@
|
|||||||
<template slot="heading-left">
|
<template slot="heading-left">
|
||||||
<p class="title is-4">{{ artist.name }}</p>
|
<p class="title is-4">{{ artist.name }}</p>
|
||||||
</template>
|
</template>
|
||||||
|
<template slot="heading-right">
|
||||||
|
<div class="buttons is-centered">
|
||||||
|
<a class="button is-small is-light is-rounded" @click="show_artist_details_modal = true">
|
||||||
|
<span class="icon"><i class="mdi mdi-dots-horizontal mdi-18px"></i></span>
|
||||||
|
</a>
|
||||||
|
<a class="button is-small is-dark is-rounded" @click="play">
|
||||||
|
<span class="icon"><i class="mdi mdi-shuffle"></i></span> <span>Shuffle</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
<template slot="content">
|
<template slot="content">
|
||||||
<p class="heading has-text-centered-mobile">{{ total }} albums</p>
|
<p class="heading has-text-centered-mobile">{{ total }} albums</p>
|
||||||
<spotify-list-item-album v-for="album in albums" :key="album.id" :album="album">
|
<spotify-list-item-album v-for="album in albums" :key="album.id" :album="album">
|
||||||
@ -14,6 +24,7 @@
|
|||||||
</spotify-list-item-album>
|
</spotify-list-item-album>
|
||||||
<infinite-loading v-if="offset < total" @infinite="load_next"><span slot="no-more">.</span></infinite-loading>
|
<infinite-loading v-if="offset < total" @infinite="load_next"><span slot="no-more">.</span></infinite-loading>
|
||||||
<spotify-modal-dialog-album :show="show_details_modal" :album="selected_album" @close="show_details_modal = false" />
|
<spotify-modal-dialog-album :show="show_details_modal" :album="selected_album" @close="show_details_modal = false" />
|
||||||
|
<spotify-modal-dialog-artist :show="show_artist_details_modal" :artist="artist" @close="show_artist_details_modal = false" />
|
||||||
</template>
|
</template>
|
||||||
</content-with-heading>
|
</content-with-heading>
|
||||||
</template>
|
</template>
|
||||||
@ -23,7 +34,9 @@ import { LoadDataBeforeEnterMixin } from './mixin'
|
|||||||
import ContentWithHeading from '@/templates/ContentWithHeading'
|
import ContentWithHeading from '@/templates/ContentWithHeading'
|
||||||
import SpotifyListItemAlbum from '@/components/SpotifyListItemAlbum'
|
import SpotifyListItemAlbum from '@/components/SpotifyListItemAlbum'
|
||||||
import SpotifyModalDialogAlbum from '@/components/SpotifyModalDialogAlbum'
|
import SpotifyModalDialogAlbum from '@/components/SpotifyModalDialogAlbum'
|
||||||
|
import SpotifyModalDialogArtist from '@/components/SpotifyModalDialogArtist'
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
|
import webapi from '@/webapi'
|
||||||
import SpotifyWebApi from 'spotify-web-api-js'
|
import SpotifyWebApi from 'spotify-web-api-js'
|
||||||
import InfiniteLoading from 'vue-infinite-loading'
|
import InfiniteLoading from 'vue-infinite-loading'
|
||||||
|
|
||||||
@ -50,7 +63,7 @@ const artistData = {
|
|||||||
export default {
|
export default {
|
||||||
name: 'SpotifyPageArtist',
|
name: 'SpotifyPageArtist',
|
||||||
mixins: [ LoadDataBeforeEnterMixin(artistData) ],
|
mixins: [ LoadDataBeforeEnterMixin(artistData) ],
|
||||||
components: { ContentWithHeading, SpotifyListItemAlbum, SpotifyModalDialogAlbum, InfiniteLoading },
|
components: { ContentWithHeading, SpotifyListItemAlbum, SpotifyModalDialogAlbum, SpotifyModalDialogArtist, InfiniteLoading },
|
||||||
|
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@ -60,7 +73,9 @@ export default {
|
|||||||
offset: 0,
|
offset: 0,
|
||||||
|
|
||||||
show_details_modal: false,
|
show_details_modal: false,
|
||||||
selected_album: {}
|
selected_album: {},
|
||||||
|
|
||||||
|
show_artist_details_modal: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -86,6 +101,11 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
play: function () {
|
||||||
|
this.show_details_modal = false
|
||||||
|
webapi.player_play_uri(this.artist.uri, true)
|
||||||
|
},
|
||||||
|
|
||||||
open_dialog: function (album) {
|
open_dialog: function (album) {
|
||||||
this.selected_album = album
|
this.selected_album = album
|
||||||
this.show_details_modal = true
|
this.show_details_modal = true
|
||||||
|
@ -4,9 +4,14 @@
|
|||||||
<div class="title is-4">{{ playlist.name }}</div>
|
<div class="title is-4">{{ playlist.name }}</div>
|
||||||
</template>
|
</template>
|
||||||
<template slot="heading-right">
|
<template slot="heading-right">
|
||||||
|
<div class="buttons is-centered">
|
||||||
|
<a class="button is-small is-light is-rounded" @click="show_playlist_details_modal = true">
|
||||||
|
<span class="icon"><i class="mdi mdi-dots-horizontal mdi-18px"></i></span>
|
||||||
|
</a>
|
||||||
<a class="button is-small is-dark is-rounded" @click="play">
|
<a class="button is-small is-dark is-rounded" @click="play">
|
||||||
<span class="icon"><i class="mdi mdi-shuffle"></i></span> <span>Shuffle</span>
|
<span class="icon"><i class="mdi mdi-shuffle"></i></span> <span>Shuffle</span>
|
||||||
</a>
|
</a>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template slot="content">
|
<template slot="content">
|
||||||
<p class="heading has-text-centered-mobile">{{ playlist.tracks.total }} tracks</p>
|
<p class="heading has-text-centered-mobile">{{ playlist.tracks.total }} tracks</p>
|
||||||
@ -19,6 +24,7 @@
|
|||||||
</spotify-list-item-track>
|
</spotify-list-item-track>
|
||||||
<infinite-loading v-if="offset < total" @infinite="load_next"><span slot="no-more">.</span></infinite-loading>
|
<infinite-loading v-if="offset < total" @infinite="load_next"><span slot="no-more">.</span></infinite-loading>
|
||||||
<spotify-modal-dialog-track :show="show_track_details_modal" :track="selected_track" :album="selected_track.album" @close="show_track_details_modal = false" />
|
<spotify-modal-dialog-track :show="show_track_details_modal" :track="selected_track" :album="selected_track.album" @close="show_track_details_modal = false" />
|
||||||
|
<spotify-modal-dialog-playlist :show="show_playlist_details_modal" :playlist="playlist" @close="show_playlist_details_modal = false" />
|
||||||
</template>
|
</template>
|
||||||
</content-with-heading>
|
</content-with-heading>
|
||||||
</template>
|
</template>
|
||||||
@ -28,6 +34,7 @@ import { LoadDataBeforeEnterMixin } from './mixin'
|
|||||||
import ContentWithHeading from '@/templates/ContentWithHeading'
|
import ContentWithHeading from '@/templates/ContentWithHeading'
|
||||||
import SpotifyListItemTrack from '@/components/SpotifyListItemTrack'
|
import SpotifyListItemTrack from '@/components/SpotifyListItemTrack'
|
||||||
import SpotifyModalDialogTrack from '@/components/SpotifyModalDialogTrack'
|
import SpotifyModalDialogTrack from '@/components/SpotifyModalDialogTrack'
|
||||||
|
import SpotifyModalDialogPlaylist from '@/components/SpotifyModalDialogPlaylist'
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
import webapi from '@/webapi'
|
import webapi from '@/webapi'
|
||||||
import SpotifyWebApi from 'spotify-web-api-js'
|
import SpotifyWebApi from 'spotify-web-api-js'
|
||||||
@ -55,7 +62,7 @@ const playlistData = {
|
|||||||
export default {
|
export default {
|
||||||
name: 'SpotifyPagePlaylist',
|
name: 'SpotifyPagePlaylist',
|
||||||
mixins: [ LoadDataBeforeEnterMixin(playlistData) ],
|
mixins: [ LoadDataBeforeEnterMixin(playlistData) ],
|
||||||
components: { ContentWithHeading, SpotifyListItemTrack, SpotifyModalDialogTrack, InfiniteLoading },
|
components: { ContentWithHeading, SpotifyListItemTrack, SpotifyModalDialogTrack, SpotifyModalDialogPlaylist, InfiniteLoading },
|
||||||
|
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@ -65,7 +72,9 @@ export default {
|
|||||||
offset: 0,
|
offset: 0,
|
||||||
|
|
||||||
show_track_details_modal: false,
|
show_track_details_modal: false,
|
||||||
selected_track: {}
|
selected_track: {},
|
||||||
|
|
||||||
|
show_playlist_details_modal: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user