Files
freeplanet/src/router/route-config.ts

132 lines
3.0 KiB
TypeScript
Raw Normal View History

import { RouteConfig, Route, RouteRecord } from 'vue-router/types'
import { RouteNames } from './route-names'
import { tools } from '@src/store/Modules/tools'
import auth from '../middleware/auth'
2019-03-28 12:58:34 +01:00
import { Projects, Todos } from "@store"
interface IMyMeta {
title?: string,
headerShadow?: boolean,
contentProp?: boolean,
transparent?: boolean,
isModal?: boolean,
requiresAuth?: boolean,
isTab?: boolean,
noAuth?: boolean,
asyncData?: (to?: IMyRoute | IMyRouteRecord) => Promise<{title?: string} | void>,
isAuthorized?: (to?: any) => boolean
middleware?: any[]
}
export interface IMyRoute extends Route {
meta: IMyMeta,
matched: IMyRouteRecord[]
}
export interface IMyRouteRecord extends RouteRecord {
meta: IMyMeta,
}
export interface IMyRouteConfig extends RouteConfig {
children?: IMyRouteConfig[],
meta?: IMyMeta
}
export const routesList: IMyRouteConfig[] = [
{
path: '/',
name: RouteNames.home,
component: () => import('@/root/home/home.vue')
},
{
path: '/signup',
name: 'Registration',
component: () => import('@/views/login/signup/signup.vue')
},
{
path: '/signin',
name: RouteNames.login,
component: () => import('@/views/login/signin/signin.vue')
},
{
path: '/vreg',
name: 'Verify Reg',
component: () => import('@/views/login/vreg/vreg.vue')
},
{
path: '/todo/:category',
name: 'Todos',
2019-03-22 15:32:32 +01:00
component: () => import('@/views/todo/todo.vue'),
meta: {
requiresAuth: true,
async asyncData() {
2019-03-28 12:58:34 +01:00
await Todos.actions.dbLoad({ checkPending: false })
}
// middleware: [auth]
}
},
{
path: '/category',
name: 'category',
2019-03-22 15:32:32 +01:00
component: () => import('@/views/categories/category/category.vue')
},
{
path: '/admin/cfgserv',
name: 'cfgserv',
2019-03-22 15:32:32 +01:00
component: () => import('@/views/admin/cfgServer/cfgServer.vue'),
2019-03-08 02:04:56 +01:00
meta: {
requiresAuth: true
// middleware: [auth]
2019-03-08 02:04:56 +01:00
}
},
{
path: '/admin/testp1/:category',
name: 'Categories',
2019-03-22 15:32:32 +01:00
component: () => import('@/views/admin/testp1/testp1.vue')
},
{
path: '/offline',
name: 'Offline',
2019-03-22 15:32:32 +01:00
component: () => import('@/views/offline/offline.vue')
},
{
path: '/projects',
name: 'progetti',
2019-03-22 15:32:32 +01:00
component: () => import('@/views/projects/proj-list/proj-list.vue'),
meta: {
2019-03-28 12:58:34 +01:00
requiresAuth: true,
async asyncData() {
await Projects.actions.dbLoad({ checkPending: false })
}
// middleware: [auth]
}
}
2018-11-05 22:28:59 +01:00
/*
{
path: '/requestresetpwd',
component: () => import('@/views/login/requestresetpwd.vue'),
meta: { name: 'Reset your Password' }
},
{
path: '/updatepwd',
component: () => import('@/views/login/updatepassword.vue'),
meta: { name: 'Update your Password' }
}
{
path: '/simpleform',
component: () => import('@/views/form/simpleForm/simpleForm.vue'),
meta: { name: 'SimpleForm' }
},
{
path: '/embeeded',
component: () => import('@/views/form/embeeded/embeeded.vue'),
meta: { name: 'Embeeded' }
}*/
]