summaryrefslogblamecommitdiffstats
path: root/webapp/src/router.js
blob: 24e2348a330fbee0fce8ff50f563bf1c138bf91c (plain) (tree)
1
2
3
4
5
6
7
8
9



                                                      
                                                 


               
                                       

                                                    
                                                                             
     

                                                                                        
    
               

 








                          

                               
                                                                                           




















                                                       
import Vue from 'vue'
import Router from 'vue-router'
import LoginPage from '@/components/LoginPage'
import DashboardPage from '@/components/DashboardPage'
import dashboardModules from '@/config/dashboard'

Vue.use(Router)

function setChildren (routes, parent) {
  routes.forEach(route => {
    if (route.component && route.component.routes) {
      route.children = setChildren(route.component.routes(), route.component)
    }
    if (route.name && parent && parent.name) route.name = parent.name + '.' + route.name
    else delete route.name
  })
  return routes
}

var router = new Router({
  routes: [
    {
      path: '/login',
      name: 'LoginPage',
      component: LoginPage
    },
    {
      path: '/dashboard',
      name: 'Dashboard',
      component: DashboardPage,
      children: setChildren(dashboardModules.concat(DashboardPage.routes()), DashboardPage)
    },
    {
      path: '*',
      redirect: '/dashboard'
    }
  ]
})

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()
  }
})

export default router