43 lines
1.0 KiB
JavaScript
43 lines
1.0 KiB
JavaScript
import Vue from 'vue'
|
|
import VueRouter from 'vue-router'
|
|
import auth_wrapper from './vue/auth/wrapper.vue'
|
|
import noauth_wrapper from './vue/noauth/wrapper.vue'
|
|
|
|
|
|
/* (1) Setup: Vue, VueRouter, Authentication, ClientDriver-s */
|
|
require('./setup.js');
|
|
|
|
|
|
/* (2) Set router hooks to load page data before loading content */
|
|
gs.get.router.beforeEach((to, from, next) => {
|
|
|
|
// {1} Ignore null name //
|
|
if( to.name == null )
|
|
next();
|
|
|
|
// {2} Get appropriate page location //
|
|
let auth_folder = (gs.get.auth) ? 'auth' : 'noauth';
|
|
let page_file = to.name || gs.get.routes[auth_folder][0].name;
|
|
|
|
// {3} Load page script //
|
|
require(`./page/${auth_folder}/${page_file}.js`);
|
|
console.log(`./page/${auth_folder}/${page_file}.js`);
|
|
|
|
// {4} Let VueRouter do the magic //
|
|
next();
|
|
|
|
});
|
|
|
|
|
|
/* (3) Select appropriate wrapper */
|
|
const wrapper = (gs.get.auth) ? auth_wrapper : noauth_wrapper;
|
|
|
|
|
|
/* (4) Render view */
|
|
Vue.use(VueRouter);
|
|
new Vue({
|
|
el: '#vue',
|
|
router: gs.get.router,
|
|
render(h){ return h(wrapper); }
|
|
})
|