summaryrefslogtreecommitdiffstats
path: root/webapp/src/router.js
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/src/router.js')
-rw-r--r--webapp/src/router.js46
1 files changed, 31 insertions, 15 deletions
diff --git a/webapp/src/router.js b/webapp/src/router.js
index be287cf..7a6e6d4 100644
--- a/webapp/src/router.js
+++ b/webapp/src/router.js
@@ -2,21 +2,34 @@ import Vue from 'vue'
import Router from 'vue-router'
import LoginPage from '@/components/LoginPage'
import DashboardPage from '@/components/DashboardPage'
+import dashboardModules from '@/config/dashboard'
+
+function setChildren (routes, parentName) {
+ routes.forEach(route => {
+ if (route.name && parentName) route.name = parentName + '.' + route.name
+ else if (!parentName) route.name = route.component.name
+ if (route.component && route.component.routes) {
+ route.children = setChildren(route.component.routes(), route.name)
+ }
+ })
+ return routes
+}
Vue.use(Router)
var router = new Router({
+ mode: 'history',
routes: [
{
path: '/login',
- name: 'LoginPage',
+ name: 'login',
component: LoginPage
},
{
path: '/dashboard',
- name: 'Dashboard',
+ name: 'dashboard',
component: DashboardPage,
- children: DashboardPage.dashboardModules.concat(DashboardPage.hiddenModules)
+ children: setChildren(dashboardModules.concat(DashboardPage.routes()))
},
{
path: '*',
@@ -25,16 +38,19 @@ var router = new Router({
]
})
-router.beforeEach((to, from, next) => {
- var loggedIn = document.cookie.indexOf('jwt_hp') >= 0
- if (to.path === '/login') {
- if (loggedIn) next('/dashboard')
- else next()
- } else if (!loggedIn) {
- next('/login')
- } else {
- next()
- }
-})
+const registerRouterGuards = function (store) {
+ router.beforeEach((to, from, next) => {
+ const loggedIn = document.cookie.indexOf('jwt_hp') >= 0
+ if (to.name === 'login') {
+ if (loggedIn) next({ name: 'dashboard' })
+ else next()
+ } else if (!loggedIn) {
+ store.commit('setLoginRedirect', to.fullPath)
+ next({ name: 'login' })
+ } else {
+ next()
+ }
+ })
+}
-export default router
+export { router, registerRouterGuards }