mirror of
https://github.com/crater-invoice/crater.git
synced 2025-12-17 10:52:55 -05:00
build version 400
This commit is contained in:
104
resources/assets/js/bootstrap.js
vendored
104
resources/assets/js/bootstrap.js
vendored
@@ -4,23 +4,26 @@ import Ls from './services/ls'
|
||||
import store from './store/index.js'
|
||||
import Vue from 'vue'
|
||||
import Vuelidate from 'vuelidate'
|
||||
import VDropdown from './components/dropdown/VDropdown.vue'
|
||||
import VDropdownItem from './components/dropdown/VDropdownItem.vue'
|
||||
import VDropdownDivider from './components/dropdown/VDropdownDivider.vue'
|
||||
import DotIcon from './components/icon/DotIcon.vue'
|
||||
import CustomerModal from './components/base/modal/CustomerModal.vue'
|
||||
import TaxTypeModal from './components/base/modal/TaxTypeModal.vue'
|
||||
import CategoryModal from './components/base/modal/CategoryModal.vue'
|
||||
import money from 'v-money'
|
||||
import VTooltip from 'v-tooltip'
|
||||
import Transitions from 'vue2-transitions'
|
||||
import SpaceWind from '@bytefury/spacewind'
|
||||
|
||||
/**
|
||||
* Theme
|
||||
*/
|
||||
import theme from './components/theme'
|
||||
|
||||
/**
|
||||
* Global css plugins
|
||||
*/
|
||||
import 'vue-tabs-component/docs/resources/tabs-component.css'
|
||||
|
||||
Vue.use(SpaceWind, { theme })
|
||||
|
||||
Vue.use(Vuelidate)
|
||||
|
||||
Vue.use(Transitions)
|
||||
|
||||
window._ = require('lodash')
|
||||
/**
|
||||
* Vue is a modern JavaScript library for building interactive web interfaces
|
||||
@@ -30,11 +33,6 @@ window._ = require('lodash')
|
||||
|
||||
window.Vue = require('vue')
|
||||
|
||||
/**
|
||||
* Font Awesome
|
||||
*/
|
||||
require('../plugins/vue-font-awesome/index')
|
||||
|
||||
/**
|
||||
* Custom Directives
|
||||
*/
|
||||
@@ -52,50 +50,65 @@ require('./components/base')
|
||||
*/
|
||||
|
||||
window.axios = require('axios')
|
||||
window.axios.defaults.withCredentials = true
|
||||
window.Ls = Ls
|
||||
global.$ = global.jQuery = require('jquery')
|
||||
|
||||
window.axios.defaults.headers.common = {
|
||||
'X-Requested-With': 'XMLHttpRequest'
|
||||
'X-Requested-With': 'XMLHttpRequest',
|
||||
}
|
||||
|
||||
/**
|
||||
* Interceptors
|
||||
*/
|
||||
|
||||
window.axios.interceptors.request.use(function (config) {
|
||||
// Do something before request is sent
|
||||
const AUTH_TOKEN = Ls.get('auth.token')
|
||||
const companyId = Ls.get('selectedCompany')
|
||||
window.axios.interceptors.request.use(
|
||||
function (config) {
|
||||
if (store.getters['auth/isLoggedOut']) {
|
||||
let source = window.axios.CancelToken.source()
|
||||
config.cancelToken = source.token
|
||||
setTimeout(() => {
|
||||
store.dispatch('auth/setLogoutFalse')
|
||||
}, 200)
|
||||
|
||||
if (AUTH_TOKEN) {
|
||||
config.headers.common['Authorization'] = `Bearer ${AUTH_TOKEN}`
|
||||
return config
|
||||
}
|
||||
// Do something before request is sent
|
||||
const companyId = Ls.get('selectedCompany')
|
||||
|
||||
if (companyId) {
|
||||
config.headers.common['company'] = companyId
|
||||
}
|
||||
|
||||
return config
|
||||
},
|
||||
function (error) {
|
||||
// Do something with request error
|
||||
return Promise.reject(error)
|
||||
}
|
||||
|
||||
if (companyId) {
|
||||
config.headers.common['company'] = companyId
|
||||
}
|
||||
|
||||
return config
|
||||
}, function (error) {
|
||||
// Do something with request error
|
||||
return Promise.reject(error)
|
||||
})
|
||||
)
|
||||
|
||||
/**
|
||||
* Global Axios Response Interceptor
|
||||
*/
|
||||
|
||||
global.axios.interceptors.response.use(undefined, function (err) {
|
||||
// Do something with request error
|
||||
if (store.getters['auth/isLoggedOut']) {
|
||||
return true
|
||||
}
|
||||
if (!err.response) {
|
||||
window.toastr['error']('Network error: Please check your internet connection or wait until servers are back online')
|
||||
console.log('Network error: Please check your internet connection.')
|
||||
window.toastr['error'](
|
||||
'Network error: Please check your internet connection or wait until servers are back online'
|
||||
)
|
||||
} else {
|
||||
console.log(err.response)
|
||||
if (err.response.data && (err.response.statusText === 'Unauthorized' || err.response.data === ' Unauthorized.')) {
|
||||
if (
|
||||
err.response.data &&
|
||||
(err.response.statusText === 'Unauthorized' ||
|
||||
err.response.data === ' Unauthorized.')
|
||||
) {
|
||||
// Unauthorized and log out
|
||||
window.toastr['error']((err.response.data.message) ? err.response.data.message : 'Unauthorized')
|
||||
window.toastr['error'](
|
||||
err.response.data.message ? err.response.data.message : 'Unauthorized'
|
||||
)
|
||||
store.dispatch('auth/logout', true)
|
||||
} else if (err.response.data.errors) {
|
||||
// Show a notification per error
|
||||
@@ -105,7 +118,11 @@ global.axios.interceptors.response.use(undefined, function (err) {
|
||||
}
|
||||
} else {
|
||||
// Unknown error
|
||||
window.toastr['error']((err.response.data.message) ? err.response.data.message : 'Unknown error occurred')
|
||||
window.toastr['error'](
|
||||
err.response.data.message
|
||||
? err.response.data.message
|
||||
: 'Unknown error occurred'
|
||||
)
|
||||
}
|
||||
}
|
||||
return Promise.reject(err)
|
||||
@@ -121,13 +138,4 @@ Vue.use(Vuex)
|
||||
Vue.use(VTooltip)
|
||||
|
||||
// register directive v-money and component <money>
|
||||
Vue.use(money, {precision: 2})
|
||||
|
||||
Vue.component('v-dropdown', VDropdown)
|
||||
Vue.component('v-dropdown-item', VDropdownItem)
|
||||
Vue.component('v-dropdown-divider', VDropdownDivider)
|
||||
|
||||
Vue.component('dot-icon', DotIcon)
|
||||
Vue.component('customer-modal', CustomerModal)
|
||||
Vue.component('tax-type-modal', TaxTypeModal)
|
||||
Vue.component('category-modal', CategoryModal)
|
||||
Vue.use(money, { precision: 2 })
|
||||
|
||||
Reference in New Issue
Block a user