2018-01-09 17:52:26 +01:00
|
|
|
// The Vue build version to load with the `import` command
|
|
|
|
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
|
|
|
|
import Vue from 'vue';
|
|
|
|
// import * as VueGoogleMaps from 'vue2-google-maps';
|
|
|
|
import VueMarkdown from 'vue-markdown';
|
|
|
|
import Vuetify from 'vuetify';
|
|
|
|
import moment from 'moment';
|
|
|
|
import VuexI18n from 'vuex-i18n';
|
2018-06-06 17:42:53 +02:00
|
|
|
import 'material-design-icons/iconfont/material-icons.css';
|
2018-01-09 17:52:26 +01:00
|
|
|
import 'vuetify/dist/vuetify.min.css';
|
2018-07-10 10:00:07 +02:00
|
|
|
import App from './App.vue';
|
|
|
|
import router from './router';
|
|
|
|
import store from './store';
|
|
|
|
import translations from './i18n';
|
|
|
|
import auth from './auth';
|
2018-01-09 17:52:26 +01:00
|
|
|
|
|
|
|
Vue.config.productionTip = false;
|
|
|
|
|
|
|
|
Vue.use(VueMarkdown);
|
|
|
|
Vue.use(Vuetify);
|
|
|
|
let language = window.navigator.userLanguage || window.navigator.language;
|
|
|
|
moment.locale(language);
|
|
|
|
|
|
|
|
Vue.filter('formatDate', value => (value ? moment(String(value)).format('LLLL') : null));
|
2018-06-06 17:42:53 +02:00
|
|
|
Vue.filter('formatDay', value => (value ? moment(String(value)).format('LL') : null));
|
2018-01-09 17:52:26 +01:00
|
|
|
|
|
|
|
if (!(language in translations)) {
|
|
|
|
[language] = language.split('-', 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
Vue.use(VuexI18n.plugin, store);
|
|
|
|
|
|
|
|
Object.entries(translations).forEach((key) => {
|
|
|
|
Vue.i18n.add(key[0], key[1]);
|
|
|
|
});
|
|
|
|
|
|
|
|
Vue.i18n.set(language);
|
|
|
|
Vue.i18n.fallback('en');
|
|
|
|
|
2018-01-13 23:33:03 +01:00
|
|
|
router.beforeEach((to, from, next) => {
|
2018-07-11 13:46:19 +02:00
|
|
|
if (to.matched.some(record => record.meta.requiredAuth) && !store.state.user) {
|
2018-01-13 23:33:03 +01:00
|
|
|
next({
|
|
|
|
name: 'Login',
|
2018-07-10 10:00:07 +02:00
|
|
|
query: { redirect: to.fullPath },
|
2018-01-13 23:33:03 +01:00
|
|
|
});
|
|
|
|
} else {
|
|
|
|
next();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-07-10 10:00:07 +02:00
|
|
|
auth.getUser(store, () => {}, (error) => {
|
|
|
|
console.warn(error);
|
|
|
|
});
|
|
|
|
|
|
|
|
console.log('store', store);
|
2018-01-13 23:33:03 +01:00
|
|
|
|
2018-01-09 17:52:26 +01:00
|
|
|
/* eslint-disable no-new */
|
|
|
|
new Vue({
|
|
|
|
el: '#app',
|
|
|
|
router,
|
|
|
|
store,
|
|
|
|
template: '<App/>',
|
|
|
|
components: { App },
|
|
|
|
});
|