95 lines
2.9 KiB
JavaScript
95 lines
2.9 KiB
JavaScript
import Vue from 'vue'
|
|
import Router from 'vue-router'
|
|
// import index from '@/pages/index'
|
|
import topic from '@/pages/topic'
|
|
import book from '@/pages/book'
|
|
import moduleBase from '@/pages/module-base'
|
|
import module from '@/pages/module'
|
|
import rooms from '@/pages/rooms'
|
|
import room from '@/pages/room'
|
|
import newRoom from '@/pages/newRoom'
|
|
import editRoom from '@/pages/editRoom'
|
|
import article from '@/pages/article'
|
|
import basicknowledge from '@/pages/basicknowledge'
|
|
import basicknowledgeOverview from '@/pages/basicknowledgeOverview'
|
|
import submissions from '@/pages/submissions'
|
|
import p404 from '@/pages/p404'
|
|
import start from '@/pages/start'
|
|
import submission from '@/pages/studentSubmission'
|
|
import portfolio from '@/pages/portfolio'
|
|
import project from '@/pages/project'
|
|
import editProject from '@/pages/editProject'
|
|
import newProject from '@/pages/newProject'
|
|
|
|
import store from '@/store/index';
|
|
|
|
const routes = [
|
|
{path: '/', component: start, meta: {layout: 'blank'}},
|
|
{
|
|
path: '/module/:slug',
|
|
component: moduleBase,
|
|
children: [
|
|
{
|
|
path: '',
|
|
name: 'module',
|
|
component: module,
|
|
meta: {filter: true}
|
|
},
|
|
{
|
|
path: 'submissions/:id',
|
|
name: 'submissions',
|
|
component: submissions,
|
|
meta: {filter: true}
|
|
},
|
|
|
|
]
|
|
|
|
},
|
|
{path: '/rooms', name: 'rooms', component: rooms, meta: {filter: true}},
|
|
{path: '/new-room/', name: 'new-room', component: newRoom},
|
|
{path: '/edit-room/:id', name: 'edit-room', component: editRoom, props: true},
|
|
{path: '/room/:slug', name: 'room', component: room, props: true},
|
|
{path: '/article/:slug', name: 'article', component: article, meta: {layout: 'simple'}},
|
|
{
|
|
path: '/basic-knowledge/',
|
|
name: 'basic-knowledge-overview',
|
|
component: basicknowledgeOverview,
|
|
meta: {subnavigation: true}
|
|
},
|
|
{path: '/basic-knowledge/:slug', name: 'basic-knowledge', component: basicknowledge, meta: {layout: 'simple'}},
|
|
{path: '/submission/:id', name: 'submission', component: submission, meta: {layout: 'simple'}},
|
|
{path: '/portfolio', name: 'portfolio', component: portfolio},
|
|
{path: '/portfolio/:slug', name: 'project', component: project, props: true},
|
|
{path: '/new-project/', name: 'new-project', component: newProject},
|
|
{path: '/edit-project/:id', name: 'edit-project', component: editProject, props: true},
|
|
{
|
|
path: '/book',
|
|
name: 'book',
|
|
component: book,
|
|
meta: {
|
|
subnavigation: true
|
|
},
|
|
children: [
|
|
{path: 'topic/:topicSlug', component: topic, meta: {subnavigation: true}}
|
|
]
|
|
},
|
|
{path: '*', component: p404}
|
|
];
|
|
|
|
Vue.use(Router);
|
|
|
|
const router = new Router({
|
|
routes,
|
|
mode: 'history',
|
|
scrollBehavior(to, from, savedPosition) {
|
|
if (savedPosition) {
|
|
return savedPosition
|
|
}
|
|
return {x: 0, y: 0}
|
|
}
|
|
});
|
|
router.afterEach((to, from) => {
|
|
store.dispatch('showMobileNavigation', false);
|
|
});
|
|
export default router;
|