Newer
Older
Eliot Berriot
committed
import Vue from 'vue'
import Router from 'vue-router'
import PageNotFound from '@/components/PageNotFound'
import About from '@/components/About'
Eliot Berriot
committed
import Home from '@/components/Home'
Eliot Berriot
committed
import Login from '@/components/auth/Login'
Eliot Berriot
committed
import Profile from '@/components/auth/Profile'
Eliot Berriot
committed
import Settings from '@/components/auth/Settings'
Eliot Berriot
committed
import Logout from '@/components/auth/Logout'
Eliot Berriot
committed
import Library from '@/components/library/Library'
import LibraryHome from '@/components/library/Home'
import LibraryArtist from '@/components/library/Artist'
import LibraryArtists from '@/components/library/Artists'
Eliot Berriot
committed
import LibraryAlbum from '@/components/library/Album'
import LibraryTrack from '@/components/library/Track'
import LibraryImport from '@/components/library/import/Main'
import LibraryRadios from '@/components/library/Radios'
import RadioBuilder from '@/components/library/radios/Builder'
Eliot Berriot
committed
import BatchList from '@/components/library/import/BatchList'
import BatchDetail from '@/components/library/import/BatchDetail'
import RequestsList from '@/components/requests/RequestsList'
import PlaylistDetail from '@/views/playlists/Detail'
import PlaylistList from '@/views/playlists/List'
Eliot Berriot
committed
import Favorites from '@/components/favorites/List'
Vue.use(Router)
export default new Router({
mode: 'history',
linkActiveClass: 'active',
routes: [
{
path: '/',
name: 'index',
component: Home
},
{
path: '/about',
name: 'about',
component: About
},
{
path: '/activity',
name: 'activity',
component: InstanceTimeline
},
Eliot Berriot
committed
{
path: '/login',
name: 'login',
component: Login,
props: (route) => ({ next: route.query.next || '/library' })
Eliot Berriot
committed
},
{
path: '/signup',
name: 'signup',
component: Signup
},
Eliot Berriot
committed
{
path: '/logout',
name: 'logout',
component: Logout
},
Eliot Berriot
committed
{
path: '/settings',
name: 'settings',
component: Settings
},
Eliot Berriot
committed
{
path: '/@:username',
name: 'profile',
component: Profile,
props: true
},
{
path: '/favorites',
component: Favorites,
props: (route) => ({
defaultOrdering: route.query.ordering,
defaultPage: route.query.page,
defaultPaginateBy: route.query.paginateBy
Eliot Berriot
committed
},
{
Eliot Berriot
committed
path: '/library',
component: Library,
Eliot Berriot
committed
children: [
Eliot Berriot
committed
{ path: '', component: LibraryHome },
{
path: 'artists/',
name: 'library.artists.browse',
component: LibraryArtists,
props: (route) => ({
defaultOrdering: route.query.ordering,
defaultQuery: route.query.query,
defaultPaginateBy: route.query.paginateBy,
defaultPage: route.query.page
})
},
{
path: 'radios/',
name: 'library.radios.browse',
component: LibraryRadios,
props: (route) => ({
defaultOrdering: route.query.ordering,
defaultQuery: route.query.query,
defaultPaginateBy: route.query.paginateBy,
defaultPage: route.query.page
})
},
{ path: 'radios/build', name: 'library.radios.build', component: RadioBuilder, props: true },
{ path: 'radios/build/:id', name: 'library.radios.edit', component: RadioBuilder, props: true },
{
path: 'playlists/',
name: 'library.playlists.browse',
component: PlaylistList,
props: (route) => ({
defaultOrdering: route.query.ordering,
defaultQuery: route.query.query,
defaultPaginateBy: route.query.paginateBy,
defaultPage: route.query.page
})
},
{
path: 'playlists/:id',
name: 'library.playlists.detail',
component: PlaylistDetail,
props: (route) => ({
id: route.params.id,
defaultEdit: route.query.mode === 'edit' })
},
{ path: 'artists/:id', name: 'library.artists.detail', component: LibraryArtist, props: true },
{ path: 'albums/:id', name: 'library.albums.detail', component: LibraryAlbum, props: true },
{ path: 'tracks/:id', name: 'library.tracks.detail', component: LibraryTrack, props: true },
Eliot Berriot
committed
{
path: 'import/launch',
name: 'library.import.launch',
component: LibraryImport,
props: (route) => ({
source: route.query.source,
mbType: route.query.type,
mbId: route.query.id })
Eliot Berriot
committed
},
{
path: 'import/batches',
name: 'library.import.batches',
component: BatchList,
children: [
]
},
{ path: 'import/batches/:id', name: 'library.import.batches.detail', component: BatchDetail, props: true },
{
path: 'requests/',
name: 'library.requests',
component: RequestsList,
props: (route) => ({
defaultOrdering: route.query.ordering,
defaultQuery: route.query.query,
defaultPaginateBy: route.query.paginateBy,
defaultPage: route.query.page,
defaultStatus: route.query.status || 'pending'
}),
children: [
]
}
Eliot Berriot
committed
]
},
{ path: '*', component: PageNotFound }