osb/spark/resources/assets/js/spark-bootstrap.js
2017-11-03 16:26:07 +11:00

80 lines
1.9 KiB
JavaScript
Vendored

/*
* 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);
});