targo-frontend/src/router/routes.ts

74 lines
2.1 KiB
TypeScript

import type { RouteRecordRaw } from 'vue-router';
import { RouteNames } from './router-constants';
import { ModuleNames } from 'src/modules/shared/models/user.models';
const routes: RouteRecordRaw[] = [
{
path: '/',
component: () => import('src/layouts/main-layout.vue'),
meta: { requires_auth: true },
children: [
{
path: '',
name: RouteNames.DASHBOARD,
component: () => import('src/pages/dashboard-page.vue'),
meta: { required_module: ModuleNames.DASHBOARD }
},
{
path: 'timesheet-approvals',
name: RouteNames.TIMESHEET_APPROVALS,
component: () => import('src/pages/timesheet-approval-page.vue'),
meta: { required_module: ModuleNames.TIMESHEETS_APPROVAL }
},
{
path: 'employees',
name: RouteNames.EMPLOYEE_LIST,
component: () => import('src/pages/employee-list-page.vue'),
meta: { required_module: ModuleNames.EMPLOYEE_LIST }
},
{
path: 'timesheet',
name: RouteNames.TIMESHEET,
component: () => import('src/pages/timesheet-page.vue'),
meta: { required_module: ModuleNames.TIMESHEETS },
},
{
path: 'user/profile',
name: RouteNames.PROFILE,
component: () => import('src/pages/profile-page.vue'),
meta: { required_module: ModuleNames.PERSONAL_PROFILE },
},
{
path: 'help',
name: RouteNames.HELP,
component: () => import('src/pages/help-page.vue'),
},
],
},
{
path: '/v1/login',
name: RouteNames.LOGIN,
component: () => import('src/pages/login-page.vue'),
meta: { requires_auth: false },
},
{
path: '/login-success',
name: RouteNames.LOGIN_SUCCESS,
component: () => import('src/modules/auth/pages/auth-login-popup-success.vue'),
meta: { requires_auth: false },
},
// Always leave this as last one,
// but you can also remove it
{
path: '/:catchAll(.*)*',
name: RouteNames.ERROR,
component: () => import('src/pages/error-page.vue'),
meta: { requires_auth: false },
},
];
export default routes;