Changeset View
Changeset View
Standalone View
Standalone View
src/resources/js/app.js
/** | /** | ||||
* First we will load all of this project's JavaScript dependencies which | * First we will load all of this project's JavaScript dependencies which | ||||
* includes Vue and other libraries. It is a great starting point when | * includes Vue and other libraries. It is a great starting point when | ||||
* building robust, powerful web applications using Vue and Laravel. | * building robust, powerful web applications using Vue and Laravel. | ||||
*/ | */ | ||||
require('./bootstrap') | require('./bootstrap') | ||||
import AppComponent from '../vue/App' | import AppComponent from '../vue/App' | ||||
import MenuComponent from '../vue/Menu' | import MenuComponent from '../vue/Menu' | ||||
import router from './routes' | |||||
import store from './store' | import store from './store' | ||||
import FontAwesomeIcon from './fontawesome' | import FontAwesomeIcon from './fontawesome' | ||||
import VueToastr from '@deveodk/vue-toastr' | import VueToastr from '@deveodk/vue-toastr' | ||||
window.Vue = require('vue') | window.Vue = require('vue') | ||||
Vue.component('svg-icon', FontAwesomeIcon) | Vue.component('svg-icon', FontAwesomeIcon) | ||||
Show All 31 Lines | |||||
// not be able to handle axios responses initiated from inside | // not be able to handle axios responses initiated from inside | ||||
// components created/mounted handlers (e.g. signup code verification link) | // components created/mounted handlers (e.g. signup code verification link) | ||||
window.axios.interceptors.response.use( | window.axios.interceptors.response.use( | ||||
response => { | response => { | ||||
// Do nothing | // Do nothing | ||||
return response | return response | ||||
}, | }, | ||||
error => { | error => { | ||||
var error_msg | let error_msg | ||||
let status = error.response ? error.response.status : 200 | |||||
if (error.response && error.response.status == 422) { | if (error.response && status == 422) { | ||||
error_msg = "Form validation error" | error_msg = "Form validation error" | ||||
$.each(error.response.data.errors || {}, (idx, msg) => { | $.each(error.response.data.errors || {}, (idx, msg) => { | ||||
$('form').each((i, form) => { | $('form').each((i, form) => { | ||||
const input_name = ($(form).data('validation-prefix') || '') + idx | const input_name = ($(form).data('validation-prefix') || '') + idx | ||||
const input = $('#' + input_name) | const input = $('#' + input_name) | ||||
if (input.length) { | if (input.length) { | ||||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | |||||
const app = new Vue({ | const app = new Vue({ | ||||
el: '#app', | el: '#app', | ||||
components: { | components: { | ||||
'app-component': AppComponent, | 'app-component': AppComponent, | ||||
'menu-component': MenuComponent | 'menu-component': MenuComponent | ||||
}, | }, | ||||
store, | store, | ||||
router, | router: window.router, | ||||
data() { | data() { | ||||
return { | return { | ||||
isLoading: true | isLoading: true | ||||
} | } | ||||
}, | }, | ||||
methods: { | methods: { | ||||
// Clear (bootstrap) form validation state | // Clear (bootstrap) form validation state | ||||
clearFormValidation(form) { | clearFormValidation(form) { | ||||
Show All 20 Lines | methods: { | ||||
// Set user state to "logged in" | // Set user state to "logged in" | ||||
loginUser(token, dashboard) { | loginUser(token, dashboard) { | ||||
store.commit('logoutUser') // destroy old state data | store.commit('logoutUser') // destroy old state data | ||||
store.commit('loginUser') | store.commit('loginUser') | ||||
localStorage.setItem('token', token) | localStorage.setItem('token', token) | ||||
axios.defaults.headers.common.Authorization = 'Bearer ' + token | axios.defaults.headers.common.Authorization = 'Bearer ' + token | ||||
if (dashboard !== false) { | if (dashboard !== false) { | ||||
router.push(store.state.afterLogin || { name: 'dashboard' }) | this.$router.push(store.state.afterLogin || { name: 'dashboard' }) | ||||
} | } | ||||
store.state.afterLogin = null | store.state.afterLogin = null | ||||
}, | }, | ||||
// Set user state to "not logged in" | // Set user state to "not logged in" | ||||
logoutUser() { | logoutUser() { | ||||
store.commit('logoutUser') | store.commit('logoutUser') | ||||
localStorage.setItem('token', '') | localStorage.setItem('token', '') | ||||
delete axios.defaults.headers.common.Authorization | delete axios.defaults.headers.common.Authorization | ||||
router.push({ name: 'login' }) | this.$router.push({ name: 'login' }) | ||||
}, | }, | ||||
// Display "loading" overlay (to be used by route components) | // Display "loading" overlay (to be used by route components) | ||||
startLoading() { | startLoading() { | ||||
this.isLoading = true | this.isLoading = true | ||||
// Lock the UI with the 'loading...' element | // Lock the UI with the 'loading...' element | ||||
$('#app').append($('<div class="app-loader"><div class="spinner-border" role="status"><span class="sr-only">Loading</span></div></div>')) | $('#app').append($('<div class="app-loader"><div class="spinner-border" role="status"><span class="sr-only">Loading</span></div></div>')) | ||||
}, | }, | ||||
// Hide "loading" overlay | // Hide "loading" overlay | ||||
▲ Show 20 Lines • Show All 101 Lines • Show Last 20 Lines |