mirror of
https://github.com/owntone/owntone-server.git
synced 2025-04-24 12:30:38 -04:00
[web] Use named route for music artists
Switching to named routes in order to reduce future maintenance.
This commit is contained in:
parent
d4a484f20e
commit
60374c2f47
@ -65,7 +65,7 @@ export default {
|
|||||||
params: { id: artist.id }
|
params: { id: artist.id }
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
this.$router.push({ path: '/music/artists/' + artist.id })
|
this.$router.push({ name: 'music-artist', params: { id: artist.id } })
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -177,7 +177,10 @@ export default {
|
|||||||
params: { id: this.album.artist_id }
|
params: { id: this.album.artist_id }
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
this.$router.push({ path: '/music/artists/' + this.album.artist_id })
|
this.$router.push({
|
||||||
|
name: 'music-artist',
|
||||||
|
params: { id: this.album.artist_id }
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -90,7 +90,10 @@ export default {
|
|||||||
|
|
||||||
open_artist() {
|
open_artist() {
|
||||||
this.$emit('close')
|
this.$emit('close')
|
||||||
this.$router.push({ path: '/music/artists/' + this.artist.id })
|
this.$router.push({
|
||||||
|
name: 'music-artist',
|
||||||
|
params: { id: this.artist.id }
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -224,7 +224,10 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
open_album_artist() {
|
open_album_artist() {
|
||||||
this.$router.push({ path: '/music/artists/' + this.item.album_artist_id })
|
this.$router.push({
|
||||||
|
name: 'music-artist',
|
||||||
|
params: { id: this.item.album_artist_id }
|
||||||
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
open_genre() {
|
open_genre() {
|
||||||
|
@ -260,7 +260,8 @@ export default {
|
|||||||
open_artist() {
|
open_artist() {
|
||||||
this.$emit('close')
|
this.$emit('close')
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
path: '/music/artists/' + this.track.album_artist_id
|
name: 'music-artist',
|
||||||
|
params: { id: this.track.album_artist_id }
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@
|
|||||||
<mdicon class="icon" name="music" size="16" />
|
<mdicon class="icon" name="music" size="16" />
|
||||||
<b v-text="$t('navigation.music')" />
|
<b v-text="$t('navigation.music')" />
|
||||||
</navbar-item-link>
|
</navbar-item-link>
|
||||||
<navbar-item-link :to="{ path: '/music/artists' }">
|
<navbar-item-link :to="{ name: 'music-artists' }">
|
||||||
<span class="pl-5" v-text="$t('navigation.artists')" />
|
<span class="pl-5" v-text="$t('navigation.artists')" />
|
||||||
</navbar-item-link>
|
</navbar-item-link>
|
||||||
<navbar-item-link :to="{ path: '/music/albums' }">
|
<navbar-item-link :to="{ path: '/music/albums' }">
|
||||||
|
@ -46,11 +46,11 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import ContentWithHero from '@/templates/ContentWithHero.vue'
|
import ContentWithHero from '@/templates/ContentWithHero.vue'
|
||||||
|
import CoverArtwork from '@/components/CoverArtwork.vue'
|
||||||
|
import { GroupByList } from '@/lib/GroupByList'
|
||||||
import ListTracks from '@/components/ListTracks.vue'
|
import ListTracks from '@/components/ListTracks.vue'
|
||||||
import ModalDialogAlbum from '@/components/ModalDialogAlbum.vue'
|
import ModalDialogAlbum from '@/components/ModalDialogAlbum.vue'
|
||||||
import CoverArtwork from '@/components/CoverArtwork.vue'
|
|
||||||
import webapi from '@/webapi'
|
import webapi from '@/webapi'
|
||||||
import { GroupByList } from '@/lib/GroupByList'
|
|
||||||
|
|
||||||
const dataObject = {
|
const dataObject = {
|
||||||
load(to) {
|
load(to) {
|
||||||
@ -94,7 +94,10 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
open_artist() {
|
open_artist() {
|
||||||
this.show_details_modal = false
|
this.show_details_modal = false
|
||||||
this.$router.push({ path: '/music/artists/' + this.album.artist_id })
|
this.$router.push({
|
||||||
|
name: 'music-artist',
|
||||||
|
params: { id: this.album.artist_id }
|
||||||
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
play() {
|
play() {
|
||||||
|
@ -57,19 +57,19 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import * as types from '@/store/mutation_types'
|
||||||
import ContentWithHeading from '@/templates/ContentWithHeading.vue'
|
import ContentWithHeading from '@/templates/ContentWithHeading.vue'
|
||||||
import ControlDropdown from '@/components/ControlDropdown.vue'
|
import ControlDropdown from '@/components/ControlDropdown.vue'
|
||||||
|
import { GroupByList, byName, byYear } from '@/lib/GroupByList'
|
||||||
import ListAlbums from '@/components/ListAlbums.vue'
|
import ListAlbums from '@/components/ListAlbums.vue'
|
||||||
import ModalDialogArtist from '@/components/ModalDialogArtist.vue'
|
import ModalDialogArtist from '@/components/ModalDialogArtist.vue'
|
||||||
import webapi from '@/webapi'
|
import webapi from '@/webapi'
|
||||||
import * as types from '@/store/mutation_types'
|
|
||||||
import { GroupByList, byName, byYear } from '@/lib/GroupByList'
|
|
||||||
|
|
||||||
const dataObject = {
|
const dataObject = {
|
||||||
load(to) {
|
load(to) {
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
webapi.library_artist(to.params.artist_id),
|
webapi.library_artist(to.params.id),
|
||||||
webapi.library_artist_albums(to.params.artist_id)
|
webapi.library_artist_albums(to.params.id)
|
||||||
])
|
])
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -146,7 +146,8 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
open_tracks() {
|
open_tracks() {
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
path: '/music/artists/' + this.artist.id + '/tracks'
|
name: 'music-artist-tracks',
|
||||||
|
params: { id: this.artist.id }
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -70,8 +70,8 @@ import webapi from '@/webapi'
|
|||||||
const dataObject = {
|
const dataObject = {
|
||||||
load(to) {
|
load(to) {
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
webapi.library_artist(to.params.artist_id),
|
webapi.library_artist(to.params.id),
|
||||||
webapi.library_artist_tracks(to.params.artist_id)
|
webapi.library_artist_tracks(to.params.id)
|
||||||
])
|
])
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -150,7 +150,10 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
open_artist() {
|
open_artist() {
|
||||||
this.show_details_modal = false
|
this.show_details_modal = false
|
||||||
this.$router.push({ path: '/music/artists/' + this.artist.id })
|
this.$router.push({
|
||||||
|
name: 'music-artist',
|
||||||
|
params: { id: this.artist.id }
|
||||||
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
play() {
|
play() {
|
||||||
|
@ -1,8 +1,15 @@
|
|||||||
import * as types from '@/store/mutation_types'
|
import * as types from '@/store/mutation_types'
|
||||||
import { createRouter, createWebHashHistory } from 'vue-router'
|
import { createRouter, createWebHashHistory } from 'vue-router'
|
||||||
import PageAbout from '@/pages/PageAbout.vue'
|
import PageAbout from '@/pages/PageAbout.vue'
|
||||||
|
import PageAlbum from '@/pages/PageAlbum.vue'
|
||||||
|
import PageAlbums from '@/pages/PageAlbums.vue'
|
||||||
|
import PageArtist from '@/pages/PageArtist.vue'
|
||||||
|
import PageArtistTracks from '@/pages/PageArtistTracks.vue'
|
||||||
|
import PageArtists from '@/pages/PageArtists.vue'
|
||||||
import PageAudiobooksAlbum from '@/pages/PageAudiobooksAlbum.vue'
|
import PageAudiobooksAlbum from '@/pages/PageAudiobooksAlbum.vue'
|
||||||
import PageAudiobooksAlbums from '@/pages/PageAudiobooksAlbums.vue'
|
import PageAudiobooksAlbums from '@/pages/PageAudiobooksAlbums.vue'
|
||||||
|
import PageAudiobooksArtist from '@/pages/PageAudiobooksArtist.vue'
|
||||||
|
import PageAudiobooksArtists from '@/pages/PageAudiobooksArtists.vue'
|
||||||
import PageFiles from '@/pages/PageFiles.vue'
|
import PageFiles from '@/pages/PageFiles.vue'
|
||||||
import PagePlaylist from '@/pages/PagePlaylist.vue'
|
import PagePlaylist from '@/pages/PagePlaylist.vue'
|
||||||
import PagePlaylistSpotify from '@/pages/PagePlaylistSpotify.vue'
|
import PagePlaylistSpotify from '@/pages/PagePlaylistSpotify.vue'
|
||||||
@ -14,19 +21,12 @@ import PageQueue from '@/pages/PageQueue.vue'
|
|||||||
import PageBrowse from '@/pages/PageBrowse.vue'
|
import PageBrowse from '@/pages/PageBrowse.vue'
|
||||||
import PageBrowseRecentlyAdded from '@/pages/PageBrowseRecentlyAdded.vue'
|
import PageBrowseRecentlyAdded from '@/pages/PageBrowseRecentlyAdded.vue'
|
||||||
import PageBrowseRecentlyPlayed from '@/pages/PageBrowseRecentlyPlayed.vue'
|
import PageBrowseRecentlyPlayed from '@/pages/PageBrowseRecentlyPlayed.vue'
|
||||||
import PageArtists from '@/pages/PageArtists.vue'
|
|
||||||
import PageArtist from '@/pages/PageArtist.vue'
|
|
||||||
import PageAlbums from '@/pages/PageAlbums.vue'
|
|
||||||
import PageAlbum from '@/pages/PageAlbum.vue'
|
|
||||||
import PageGenres from '@/pages/PageGenres.vue'
|
import PageGenres from '@/pages/PageGenres.vue'
|
||||||
import PageGenre from '@/pages/PageGenre.vue'
|
import PageGenre from '@/pages/PageGenre.vue'
|
||||||
import PageGenreTracks from '@/pages/PageGenreTracks.vue'
|
import PageGenreTracks from '@/pages/PageGenreTracks.vue'
|
||||||
import PageArtistTracks from '@/pages/PageArtistTracks.vue'
|
|
||||||
import PageComposers from '@/pages/PageComposers.vue'
|
import PageComposers from '@/pages/PageComposers.vue'
|
||||||
import PageComposer from '@/pages/PageComposer.vue'
|
import PageComposer from '@/pages/PageComposer.vue'
|
||||||
import PageComposerTracks from '@/pages/PageComposerTracks.vue'
|
import PageComposerTracks from '@/pages/PageComposerTracks.vue'
|
||||||
import PageAudiobooksArtists from '@/pages/PageAudiobooksArtists.vue'
|
|
||||||
import PageAudiobooksArtist from '@/pages/PageAudiobooksArtist.vue'
|
|
||||||
import PageRadioStreams from '@/pages/PageRadioStreams.vue'
|
import PageRadioStreams from '@/pages/PageRadioStreams.vue'
|
||||||
import PageSearchLibrary from '@/pages/PageSearchLibrary.vue'
|
import PageSearchLibrary from '@/pages/PageSearchLibrary.vue'
|
||||||
import PageSearchSpotify from '@/pages/PageSearchSpotify.vue'
|
import PageSearchSpotify from '@/pages/PageSearchSpotify.vue'
|
||||||
@ -49,11 +49,30 @@ export const router = createRouter({
|
|||||||
name: 'about',
|
name: 'about',
|
||||||
path: '/about'
|
path: '/about'
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
component: PageArtist,
|
||||||
|
meta: { show_progress: true, has_index: true },
|
||||||
|
name: 'music-artist',
|
||||||
|
path: '/music/artists/:id'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
component: PageArtists,
|
||||||
|
meta: { has_index: true, has_tabs: true, show_progress: true },
|
||||||
|
name: 'music-artists',
|
||||||
|
path: '/music/artists'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
component: PageArtistTracks,
|
||||||
|
meta: { has_index: true, show_progress: true },
|
||||||
|
name: 'music-artist-tracks',
|
||||||
|
path: '/music/artists/:id/tracks'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
component: PageAudiobooksAlbum,
|
component: PageAudiobooksAlbum,
|
||||||
meta: { show_progress: true },
|
meta: { show_progress: true },
|
||||||
name: 'audiobooks-album',
|
name: 'audiobooks-album',
|
||||||
path: '/audiobooks/album/:id'
|
path: '/audiobooks/albums/:id'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
component: PageAudiobooksAlbums,
|
component: PageAudiobooksAlbums,
|
||||||
@ -65,7 +84,7 @@ export const router = createRouter({
|
|||||||
component: PageAudiobooksArtist,
|
component: PageAudiobooksArtist,
|
||||||
meta: { show_progress: true },
|
meta: { show_progress: true },
|
||||||
name: 'audiobooks-artist',
|
name: 'audiobooks-artist',
|
||||||
path: '/audiobooks/artist/:id'
|
path: '/audiobooks/artists/:id'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
component: PageAudiobooksArtists,
|
component: PageAudiobooksArtists,
|
||||||
@ -100,24 +119,6 @@ export const router = createRouter({
|
|||||||
component: PageBrowseRecentlyPlayed,
|
component: PageBrowseRecentlyPlayed,
|
||||||
meta: { show_progress: true, has_tabs: true }
|
meta: { show_progress: true, has_tabs: true }
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: '/music/artists',
|
|
||||||
name: 'Artists',
|
|
||||||
component: PageArtists,
|
|
||||||
meta: { show_progress: true, has_tabs: true, has_index: true }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/music/artists/:artist_id',
|
|
||||||
name: 'Artist',
|
|
||||||
component: PageArtist,
|
|
||||||
meta: { show_progress: true, has_index: true }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/music/artists/:artist_id/tracks',
|
|
||||||
name: 'Tracks',
|
|
||||||
component: PageArtistTracks,
|
|
||||||
meta: { show_progress: true, has_index: true }
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: '/music/albums',
|
path: '/music/albums',
|
||||||
name: 'Albums',
|
name: 'Albums',
|
||||||
@ -179,31 +180,31 @@ export const router = createRouter({
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'playlists',
|
name: 'playlists',
|
||||||
redirect: '/playlist/0'
|
redirect: '/playlists/0'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
component: PagePlaylist,
|
component: PagePlaylist,
|
||||||
meta: { show_progress: true },
|
meta: { show_progress: true },
|
||||||
name: 'playlist',
|
name: 'playlist',
|
||||||
path: '/playlist/:id'
|
path: '/playlists/:id'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
component: PagePlaylistSpotify,
|
component: PagePlaylistSpotify,
|
||||||
meta: { show_progress: true },
|
meta: { show_progress: true },
|
||||||
name: 'playlist-spotify',
|
name: 'playlist-spotify',
|
||||||
path: '/playlist/spotify/:id'
|
path: '/playlists/spotify/:id'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
component: PagePlaylistTracks,
|
component: PagePlaylistTracks,
|
||||||
meta: { show_progress: true },
|
meta: { show_progress: true },
|
||||||
name: 'playlist-tracks',
|
name: 'playlist-tracks',
|
||||||
path: '/playlist/:id/tracks'
|
path: '/playlists/:id/tracks'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
component: PagePodcast,
|
component: PagePodcast,
|
||||||
meta: { show_progress: true },
|
meta: { show_progress: true },
|
||||||
name: 'podcast',
|
name: 'podcast',
|
||||||
path: '/podcast/:id'
|
path: '/podcasts/:id'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
component: PagePodcasts,
|
component: PagePodcasts,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user