Files
vuefilemanager/resources/js/components/router.js
2020-03-10 19:00:32 +01:00

247 lines
5.8 KiB
JavaScript
Vendored

import Router from 'vue-router'
import Vue from 'vue'
import ProfileSettings from './views/ProfileSettings'
import store from './store/index'
Vue.use(Router)
const router = new Router({
mode: 'history',
routes: [
{
path: '/finish-your-registration',
name: 'finish-your-registration',
component: FinishRegistration,
meta: {
requiresAuth: true,
}
},
{
path: '/admin/login',
name: 'LogIn',
component: Login,
meta: {
requiresVisitor: true,
}
},
{
path: '/admin/logout',
name: 'LogOut',
component: LogOut,
meta: {
requiresAuth: false
}
},
{
path: '/admin/services',
name: 'Ads',
component: Services,
meta: {
requiresAuth: true
}
},
{
path: '/admin/add-service',
name: 'Add Service',
component: ThumbnailPicker,
meta: {
requiresAuth: true
}
},
{
path: '/admin/edit-service/:id',
name: 'Edit Service',
component: EditService,
meta: {
requiresAuth: true
}
},
{
path: '/admin/trips',
name: 'Trips',
component: Trips,
meta: {
requiresAuth: true
}
},
{
path: '/admin/add-trip',
name: 'Add Trip',
component: AddTrip,
meta: {
requiresAuth: true
}
},
{
path: '/admin/edit-trip/:id',
name: 'Edit Trip',
component: EditTrip,
meta: {
requiresAuth: true
}
},
{
path: '/admin/hotels',
name: 'Hotels',
component: Hotels,
meta: {
requiresAuth: true
}
},
{
path: '/admin/add-hotel',
name: 'Add Hotel',
component: AddHotel,
meta: {
requiresAuth: true
}
},
{
path: '/admin/edit-hotel/:id',
name: 'Edit Hotel',
component: EditHotel,
meta: {
requiresAuth: true
}
},
{
path: '/admin/gallery',
name: 'Gallery',
component: Gallery,
meta: {
requiresAuth: true
}
},
{
path: '/admin/add-gallery/',
name: 'Add Gallery',
component: AddGallery,
meta: {
requiresAuth: true
}
},
{
path: '/admin/edit-gallery/:id',
name: 'Edit Gallery',
component: EditGallery,
meta: {
requiresAuth: true
}
},
{
path: '/admin/team',
name: 'Team',
component: Team,
meta: {
requiresAuth: true
}
},
{
path: '/admin/add-member',
name: 'Add Team Member',
component: AddTeamMember,
meta: {
requiresAuth: true
}
},
{
path: '/admin/edit-member/:id',
name: 'Edit Team Member',
component: EditTeamMember,
meta: {
requiresAuth: true
}
},
{
path: '/admin/references',
name: 'References',
component: References,
meta: {
requiresAuth: true
}
},
{
path: '/admin/orders',
name: 'Orders',
component: Orders,
meta: {
requiresAuth: true
}
},
{
path: '/admin/order/:id',
name: 'Order',
component: Order,
meta: {
requiresAuth: true
}
},
{
path: '/admin/payouts',
name: 'Payouts',
component: Payouts,
meta: {
requiresAuth: true
}
},
{
path: '/admin/settings',
name: 'Settings',
component: Settings,
meta: {
requiresAuth: true
}
},
{
path: '/admin/profile-settings',
name: 'Profile Settings',
component: ProfileSettings,
meta: {
requiresAuth: true
}
},
],
scrollBehavior(to, from, savedPosition) {
if (savedPosition) {
return savedPosition
} else {
return { x: 0, y: 0 }
}
}
})
router.beforeEach((to, from, next) => {
if (to.matched.some(record => record.meta.requiresAuth)) {
// this route requires auth, check if logged in
// if not, redirect to login page.
if (!store.getters.isLogged) {
next({
path: '/admin/login',
query: { redirect: to.fullPath }
})
} else {
next()
}
} else if (to.matched.some(record => record.meta.requiresVisitor)) {
// this route requires auth, check if logged in
// if not, redirect to login page.
if (store.getters.isLogged) {
next({
path: '/admin/services',
query: { redirect: to.fullPath }
})
} else {
next()
}
} else {
next() // make sure to always call next()!
}
})
export default router