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



                                                      
                                                 


               









                                                      








                          

                               
                                                                            




















                                                       
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 (modules) {
  modules.forEach(module => {
    if (module.component && module.component.routes) {
      module.children = module.component.routes()
      setChildren(module.children)
    }
  })
  return modules
}

var router = new Router({
  routes: [
    {
      path: '/login',
      name: 'LoginPage',
      component: LoginPage
    },
    {
      path: '/dashboard',
      name: 'Dashboard',
      component: DashboardPage,
      children: setChildren(dashboardModules.concat(DashboardPage.routes()))
    },
    {
      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