diff --git a/web-src/src/pages/PageArtistTracks.vue b/web-src/src/pages/PageArtistTracks.vue
index c0e86efb..777c5b02 100644
--- a/web-src/src/pages/PageArtistTracks.vue
+++ b/web-src/src/pages/PageArtistTracks.vue
@@ -8,9 +8,14 @@
{{ artist.name }}
-
- Shuffle
-
+
{{ artist.album_count }} albums | {{ artist.track_count }} tracks
@@ -22,6 +27,7 @@
+
@@ -33,6 +39,7 @@ import ContentWithHeading from '@/templates/ContentWithHeading'
import IndexButtonList from '@/components/IndexButtonList'
import ListItemTrack from '@/components/ListItemTrack'
import ModalDialogTrack from '@/components/ModalDialogTrack'
+import ModalDialogArtist from '@/components/ModalDialogArtist'
import webapi from '@/webapi'
const tracksData = {
@@ -52,7 +59,7 @@ const tracksData = {
export default {
name: 'PageArtistTracks',
mixins: [ LoadDataBeforeEnterMixin(tracksData) ],
- components: { ContentWithHeading, ListItemTrack, IndexButtonList, ModalDialogTrack },
+ components: { ContentWithHeading, ListItemTrack, IndexButtonList, ModalDialogTrack, ModalDialogArtist },
data () {
return {
@@ -60,7 +67,9 @@ export default {
tracks: { items: [] },
show_details_modal: false,
- selected_track: {}
+ selected_track: {},
+
+ show_artist_details_modal: false
}
},
diff --git a/web-src/src/pages/PageGenre.vue b/web-src/src/pages/PageGenre.vue
index fb0a078d..d3749e9b 100644
--- a/web-src/src/pages/PageGenre.vue
+++ b/web-src/src/pages/PageGenre.vue
@@ -8,9 +8,14 @@
{{ name }}
-
- Shuffle
-
+
{{ genre_albums.total }} albums | tracks
@@ -22,6 +27,7 @@
+
@@ -34,6 +40,7 @@ import TabsMusic from '@/components/TabsMusic'
import IndexButtonList from '@/components/IndexButtonList'
import ListItemAlbums from '@/components/ListItemAlbum'
import ModalDialogAlbum from '@/components/ModalDialogAlbum'
+import ModalDialogGenre from '@/components/ModalDialogGenre'
import webapi from '@/webapi'
const genreData = {
@@ -50,7 +57,7 @@ const genreData = {
export default {
name: 'PageGenre',
mixins: [ LoadDataBeforeEnterMixin(genreData) ],
- components: { ContentWithHeading, TabsMusic, IndexButtonList, ListItemAlbums, ModalDialogAlbum },
+ components: { ContentWithHeading, TabsMusic, IndexButtonList, ListItemAlbums, ModalDialogAlbum, ModalDialogGenre },
data () {
return {
@@ -58,7 +65,9 @@ export default {
genre_albums: { items: [] },
show_details_modal: false,
- selected_album: {}
+ selected_album: {},
+
+ show_genre_details_modal: false
}
},
diff --git a/web-src/src/pages/PageGenreTracks.vue b/web-src/src/pages/PageGenreTracks.vue
index 9f2660ab..5eddd220 100644
--- a/web-src/src/pages/PageGenreTracks.vue
+++ b/web-src/src/pages/PageGenreTracks.vue
@@ -8,9 +8,14 @@
{{ genre }}
-
- Shuffle
-
+
albums | {{ tracks.total }} tracks
@@ -22,6 +27,7 @@
+
@@ -33,6 +39,7 @@ import ContentWithHeading from '@/templates/ContentWithHeading'
import IndexButtonList from '@/components/IndexButtonList'
import ListItemTrack from '@/components/ListItemTrack'
import ModalDialogTrack from '@/components/ModalDialogTrack'
+import ModalDialogGenre from '@/components/ModalDialogGenre'
import webapi from '@/webapi'
const tracksData = {
@@ -49,7 +56,7 @@ const tracksData = {
export default {
name: 'PageGenreTracks',
mixins: [ LoadDataBeforeEnterMixin(tracksData) ],
- components: { ContentWithHeading, ListItemTrack, IndexButtonList, ModalDialogTrack },
+ components: { ContentWithHeading, ListItemTrack, IndexButtonList, ModalDialogTrack, ModalDialogGenre },
data () {
return {
@@ -57,7 +64,9 @@ export default {
genre: '',
show_details_modal: false,
- selected_track: {}
+ selected_track: {},
+
+ show_genre_details_modal: false
}
},
diff --git a/web-src/src/pages/SpotifyPageAlbum.vue b/web-src/src/pages/SpotifyPageAlbum.vue
index 9bcb43df..dfbc2953 100644
--- a/web-src/src/pages/SpotifyPageAlbum.vue
+++ b/web-src/src/pages/SpotifyPageAlbum.vue
@@ -5,9 +5,14 @@
{{ album.artists[0].name }}
-
- Shuffle
-
+
{{ album.tracks.total }} tracks
@@ -19,6 +24,7 @@
+
@@ -28,6 +34,7 @@ import { LoadDataBeforeEnterMixin } from './mixin'
import ContentWithHeading from '@/templates/ContentWithHeading'
import SpotifyListItemTrack from '@/components/SpotifyListItemTrack'
import SpotifyModalDialogTrack from '@/components/SpotifyModalDialogTrack'
+import SpotifyModalDialogAlbum from '@/components/SpotifyModalDialogAlbum'
import store from '@/store'
import webapi from '@/webapi'
import SpotifyWebApi from 'spotify-web-api-js'
@@ -47,14 +54,16 @@ const albumData = {
export default {
name: 'PageAlbum',
mixins: [ LoadDataBeforeEnterMixin(albumData) ],
- components: { ContentWithHeading, SpotifyListItemTrack, SpotifyModalDialogTrack },
+ components: { ContentWithHeading, SpotifyListItemTrack, SpotifyModalDialogTrack, SpotifyModalDialogAlbum },
data () {
return {
album: { artists: [{}], tracks: {} },
show_track_details_modal: false,
- selected_track: {}
+ selected_track: {},
+
+ show_album_details_modal: false
}
},
diff --git a/web-src/src/pages/SpotifyPageArtist.vue b/web-src/src/pages/SpotifyPageArtist.vue
index 9a970e66..a8c6b214 100644
--- a/web-src/src/pages/SpotifyPageArtist.vue
+++ b/web-src/src/pages/SpotifyPageArtist.vue
@@ -3,6 +3,16 @@
{{ artist.name }}
+
+
+
{{ total }} albums
@@ -14,6 +24,7 @@
.
+
@@ -23,7 +34,9 @@ import { LoadDataBeforeEnterMixin } from './mixin'
import ContentWithHeading from '@/templates/ContentWithHeading'
import SpotifyListItemAlbum from '@/components/SpotifyListItemAlbum'
import SpotifyModalDialogAlbum from '@/components/SpotifyModalDialogAlbum'
+import SpotifyModalDialogArtist from '@/components/SpotifyModalDialogArtist'
import store from '@/store'
+import webapi from '@/webapi'
import SpotifyWebApi from 'spotify-web-api-js'
import InfiniteLoading from 'vue-infinite-loading'
@@ -50,7 +63,7 @@ const artistData = {
export default {
name: 'SpotifyPageArtist',
mixins: [ LoadDataBeforeEnterMixin(artistData) ],
- components: { ContentWithHeading, SpotifyListItemAlbum, SpotifyModalDialogAlbum, InfiniteLoading },
+ components: { ContentWithHeading, SpotifyListItemAlbum, SpotifyModalDialogAlbum, SpotifyModalDialogArtist, InfiniteLoading },
data () {
return {
@@ -60,7 +73,9 @@ export default {
offset: 0,
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) {
this.selected_album = album
this.show_details_modal = true
diff --git a/web-src/src/pages/SpotifyPagePlaylist.vue b/web-src/src/pages/SpotifyPagePlaylist.vue
index 96b8ba93..88d1a8be 100644
--- a/web-src/src/pages/SpotifyPagePlaylist.vue
+++ b/web-src/src/pages/SpotifyPagePlaylist.vue
@@ -4,9 +4,14 @@
{{ playlist.name }}
-
- Shuffle
-
+
{{ playlist.tracks.total }} tracks
@@ -19,6 +24,7 @@
.
+
@@ -28,6 +34,7 @@ import { LoadDataBeforeEnterMixin } from './mixin'
import ContentWithHeading from '@/templates/ContentWithHeading'
import SpotifyListItemTrack from '@/components/SpotifyListItemTrack'
import SpotifyModalDialogTrack from '@/components/SpotifyModalDialogTrack'
+import SpotifyModalDialogPlaylist from '@/components/SpotifyModalDialogPlaylist'
import store from '@/store'
import webapi from '@/webapi'
import SpotifyWebApi from 'spotify-web-api-js'
@@ -55,7 +62,7 @@ const playlistData = {
export default {
name: 'SpotifyPagePlaylist',
mixins: [ LoadDataBeforeEnterMixin(playlistData) ],
- components: { ContentWithHeading, SpotifyListItemTrack, SpotifyModalDialogTrack, InfiniteLoading },
+ components: { ContentWithHeading, SpotifyListItemTrack, SpotifyModalDialogTrack, SpotifyModalDialogPlaylist, InfiniteLoading },
data () {
return {
@@ -65,7 +72,9 @@ export default {
offset: 0,
show_track_details_modal: false,
- selected_track: {}
+ selected_track: {},
+
+ show_playlist_details_modal: false
}
},