petra-tool / frontend / src / main.js
main.js
Raw
// import 'bootstrap/dist/css/bootstrap.css';
// import BootstrapVue from 'bootstrap-vue'
// import Icon from 'vue-awesome/components/Icon'
// import 'vue-awesome/icons'
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from '../store/index'
import axios from 'axios'
import VueAxios from 'vue-axios'
import vueKanban from 'vue-kanban'
import VueLodash from 'vue-lodash'
import inRange from 'lodash/inRange'
import sumBy from 'lodash/sumBy'
import snackbarPlugin from "./plugins/snackbar"

Vue.use(snackbarPlugin, { store })
Vue.config.devtools = true
Vue.config.productionTip = false

const config = require('./config');
// axios.defaults.baseURL = 'http://localhost:5000';
axios.defaults.baseURL = `${config.apiUrl}`;
Vue.use(VueAxios, axios);

// https://dev.vuetifyjs.com/en/components
import vuetify from './plugins/vuetify';

// https://bootstrap-vue.org/docs/components
// Vue.use(BootstrapVue)
// Vue.component('icon', Icon)

// https://github.com/BrockReece/vue-kanban
Vue.use(vueKanban)

// https://lodash.com/docs/
Vue.use(VueLodash, { name: 'custom', lodash: { inRange, sumBy } })

// https://lian-yue.github.io/vue-upload-component/#/documents
const VueUploadComponent = require('vue-upload-component')
Vue.component('file-upload', VueUploadComponent)

// https://websanova.com/docs/vue-auth/home
import auth                  from '@websanova/vue-auth/dist/v2/vue-auth.common.js';
import driverAuthBearer      from '@websanova/vue-auth/dist/drivers/auth/bearer.js';
import driverHttpAxios       from '@websanova/vue-auth/dist/drivers/http/axios.1.x.js';
import driverRouterVueRouter from '@websanova/vue-auth/dist/drivers/router/vue-router.2.x.js';

Vue.use(auth, {
  plugins: {
    http: Vue.axios,
    router: Vue.router,
  },
  drivers: {
    auth: driverAuthBearer,
    http: driverHttpAxios,
    router: driverRouterVueRouter,
  },
  options: {
    rolesKey: 'role',
    // refreshData: {interval: 1},
    notFoundRedirect: {name: 'user-landing'},
    authRedirect: { name: 'auth-login' },
    forbiddenRedirect: { name: 'error-404' },
  }
});

// import moment from 'moment';
// Vue.filter('formatDate', function(value) {
//   if (value) {
//     return moment(String(value)).format('lll')
//   }
// });

import './registerServiceWorker'

new Vue({
  store,
  router,
  vuetify,
  render: h => h(App)
}).$mount('#app')