80 lines
1.9 KiB
JavaScript
80 lines
1.9 KiB
JavaScript
|
/*
|
||
|
* Load various JavaScript modules that assist Spark.
|
||
|
*/
|
||
|
window.URI = require('urijs');
|
||
|
window.axios = require('axios');
|
||
|
window._ = require('underscore');
|
||
|
window.moment = require('moment');
|
||
|
window.Promise = require('promise');
|
||
|
window.Cookies = require('js-cookie');
|
||
|
|
||
|
/*
|
||
|
* Define Moment locales
|
||
|
*/
|
||
|
window.moment.defineLocale('en-short', {
|
||
|
parentLocale: 'en',
|
||
|
relativeTime : {
|
||
|
future: "in %s",
|
||
|
past: "%s",
|
||
|
s: "1s",
|
||
|
m: "1m",
|
||
|
mm: "%dm",
|
||
|
h: "1h",
|
||
|
hh: "%dh",
|
||
|
d: "1d",
|
||
|
dd: "%dd",
|
||
|
M: "1 month ago",
|
||
|
MM: "%d months ago",
|
||
|
y: "1y",
|
||
|
yy: "%dy"
|
||
|
}
|
||
|
});
|
||
|
window.moment.locale('en');
|
||
|
|
||
|
/*
|
||
|
* Load jQuery and Bootstrap jQuery, used for front-end interaction.
|
||
|
*/
|
||
|
if (window.$ === undefined || window.jQuery === undefined) {
|
||
|
window.$ = window.jQuery = require('jquery');
|
||
|
}
|
||
|
|
||
|
require('bootstrap/dist/js/npm');
|
||
|
|
||
|
/**
|
||
|
* Load Vue if this application is using Vue as its framework.
|
||
|
*/
|
||
|
if ($('#spark-app').length > 0) {
|
||
|
require('vue-bootstrap');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* We'll load the axios HTTP library which allows us to easily issue requests
|
||
|
* to our Laravel back-end. This library automatically handles sending the
|
||
|
* CSRF token as a header based on the value of the "XSRF" token cookie.
|
||
|
*/
|
||
|
window.axios.defaults.headers.common = {
|
||
|
'X-Requested-With': 'XMLHttpRequest',
|
||
|
'X-CSRF-TOKEN': Spark.csrfToken
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Intercept the incoming responses.
|
||
|
*
|
||
|
* Handle any unexpected HTTP errors and pop up modals, etc.
|
||
|
*/
|
||
|
window.axios.interceptors.response.use(function (response) {
|
||
|
return response;
|
||
|
}, function (error) {
|
||
|
switch (error.response.status) {
|
||
|
case 401:
|
||
|
window.axios.get('/logout');
|
||
|
$('#modal-session-expired').modal('show');
|
||
|
break;
|
||
|
|
||
|
case 402:
|
||
|
window.location = '/settings#/subscription';
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
return Promise.reject(error);
|
||
|
});
|