mirror of
https://github.com/beestat/app.git
synced 2026-02-18 01:00:23 -05:00
216 lines
10 KiB
JavaScript
216 lines
10 KiB
JavaScript
/**
|
|
* Pop up a modal error message.
|
|
*
|
|
* @param {string} message The human-readable message.
|
|
* @param {string} detail Technical error details.
|
|
*/
|
|
beestat.error = function(message, detail) {
|
|
var exception_modal = new beestat.component.modal.error();
|
|
exception_modal.set_message(message);
|
|
exception_modal.set_detail(detail);
|
|
exception_modal.render();
|
|
};
|
|
|
|
/*
|
|
* Rollbar
|
|
* Define my own error handler first, then Rollbar's (which will call mine after it does it's thing)
|
|
*/
|
|
window.onerror = function(message) {
|
|
beestat.error('Script error.', message);
|
|
return false;
|
|
};
|
|
var _rollbarConfig = {
|
|
'accessToken': '5400fd8650264977a97f3ae7fcd226af',
|
|
'captureUncaught': true,
|
|
'captureUnhandledRejections': true,
|
|
'payload': {
|
|
'environment': window.environment
|
|
}
|
|
};
|
|
|
|
if (window.environment === 'live') {
|
|
!(function(r) {
|
|
function o(n) {
|
|
if (e[n]) {
|
|
return e[n].exports;
|
|
} var t = e[n] = {'exports': {},
|
|
'id': n,
|
|
'loaded': !1}; return r[n].call(t.exports, t, t.exports, o), t.loaded = !0, t.exports;
|
|
} var e = {}; return o.m = r, o.c = e, o.p = '', o(0);
|
|
}([
|
|
function(r, o, e) {
|
|
'use strict'; var n = e(1); var t = e(4); _rollbarConfig = _rollbarConfig || {}, _rollbarConfig.rollbarJsUrl = _rollbarConfig.rollbarJsUrl || 'https://cdnjs.cloudflare.com/ajax/libs/rollbar.js/2.5.2/rollbar.min.js', _rollbarConfig.async = void 0 === _rollbarConfig.async || _rollbarConfig.async; var a = n.setupShim(window, _rollbarConfig); var l = t(_rollbarConfig); window.rollbar = n.Rollbar, a.loadFull(window, document, !_rollbarConfig.async, _rollbarConfig, l);
|
|
},
|
|
function(r, o, e) {
|
|
'use strict'; function n(r) {
|
|
return function() {
|
|
try {
|
|
return r.apply(this, arguments);
|
|
} catch (r) {
|
|
try {
|
|
console.error('[Rollbar]: Internal error', r);
|
|
} catch (r) {}
|
|
}
|
|
};
|
|
} function t(r, o) {
|
|
this.options = r, this._rollbarOldOnError = null; var e = s++; this.shimId = function() {
|
|
return e;
|
|
}, typeof window !== 'undefined' && window._rollbarShims && (window._rollbarShims[e] = {'handler': o,
|
|
'messages': []});
|
|
} function a(r, o) {
|
|
if (r) {
|
|
var e = o.globalAlias || 'Rollbar'; if (typeof r[e] === 'object') {
|
|
return r[e];
|
|
} r._rollbarShims = {}, r._rollbarWrappedError = null; var t = new p(o); return n(function() {
|
|
o.captureUncaught && (t._rollbarOldOnError = r.onerror, i.captureUncaughtExceptions(r, t, !0), i.wrapGlobals(r, t, !0)), o.captureUnhandledRejections && i.captureUnhandledRejections(r, t, !0); var n = o.autoInstrument; return o.enabled !== !1 && (void 0 === n || n === !0 || typeof n === 'object' && n.network) && r.addEventListener && (r.addEventListener('load', t.captureLoad.bind(t)), r.addEventListener('DOMContentLoaded', t.captureDomContentLoaded.bind(t))), r[e] = t, t;
|
|
})();
|
|
}
|
|
} function l(r) {
|
|
return n(function() {
|
|
var o = this; var e = Array.prototype.slice.call(arguments, 0); var n = {'shim': o,
|
|
'method': r,
|
|
'args': e,
|
|
'ts': new Date()}; window._rollbarShims[this.shimId()].messages.push(n);
|
|
});
|
|
} var i = e(2); var s = 0; var d = e(3); var c = function(r, o) {
|
|
return new t(r, o);
|
|
}; var p = function(r) {
|
|
return new d(c, r);
|
|
}; t.prototype.loadFull = function(r, o, e, t, a) {
|
|
var l = function() {
|
|
var o; if (void 0 === r._rollbarDidLoad) {
|
|
o = new Error('rollbar.js did not load'); for (var e, i = 0, l, n, t; e = r._rollbarShims[i++];) {
|
|
for (e = e.messages || []; n = e.shift();) {
|
|
for (t = n.args || [], i = 0; i < t.length; ++i) {
|
|
if (l = t[i], typeof l === 'function') {
|
|
l(o); break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} typeof a === 'function' && a(o);
|
|
}; var i = !1; var s = o.createElement('script'); var d = o.getElementsByTagName('script')[0]; var c = d.parentNode; s.crossOrigin = '', s.src = t.rollbarJsUrl, e || (s.async = !0), s.onload = s.onreadystatechange = n(function() {
|
|
if (!(i || this.readyState && this.readyState !== 'loaded' && this.readyState !== 'complete')) {
|
|
s.onload = s.onreadystatechange = null; try {
|
|
c.removeChild(s);
|
|
} catch (r) {}i = !0, l();
|
|
}
|
|
}), c.insertBefore(s, d);
|
|
}, t.prototype.wrap = function(r, o, e) {
|
|
try {
|
|
var n; if (n = typeof o === 'function' ? o : function() {
|
|
return o || {};
|
|
}, typeof r !== 'function') {
|
|
return r;
|
|
} if (r._isWrap) {
|
|
return r;
|
|
} if (!r._rollbar_wrapped && (r._rollbar_wrapped = function() {
|
|
e && typeof e === 'function' && e.apply(this, arguments); try {
|
|
return r.apply(this, arguments);
|
|
} catch (e) {
|
|
var o = e; throw o && (typeof o === 'string' && (o = new String(o)), o._rollbarContext = n() || {}, o._rollbarContext._wrappedSource = r.toString(), window._rollbarWrappedError = o), o;
|
|
}
|
|
}, r._rollbar_wrapped._isWrap = !0, r.hasOwnProperty)) {
|
|
for (var t in r) {
|
|
r.hasOwnProperty(t) && (r._rollbar_wrapped[t] = r[t]);
|
|
}
|
|
} return r._rollbar_wrapped;
|
|
} catch (o) {
|
|
return r;
|
|
}
|
|
}; for (var u = 'log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleUnhandledRejection,captureEvent,captureDomContentLoaded,captureLoad'.split(','), f = 0; f < u.length; ++f) {
|
|
t.prototype[u[f]] = l(u[f]);
|
|
}r.exports = {'setupShim': a,
|
|
'Rollbar': p};
|
|
},
|
|
function(r, o) {
|
|
'use strict'; function e(r, o, e) {
|
|
if (r) {
|
|
var t; if (typeof o._rollbarOldOnError === 'function') {
|
|
t = o._rollbarOldOnError;
|
|
} else if (r.onerror) {
|
|
for (t = r.onerror; t._rollbarOldOnError;) {
|
|
t = t._rollbarOldOnError;
|
|
}o._rollbarOldOnError = t;
|
|
} var a = function() {
|
|
var e = Array.prototype.slice.call(arguments, 0); n(r, o, t, e);
|
|
}; e && (a._rollbarOldOnError = t), r.onerror = a;
|
|
}
|
|
} function n(r, o, e, n) {
|
|
r._rollbarWrappedError && (n[4] || (n[4] = r._rollbarWrappedError), n[5] || (n[5] = r._rollbarWrappedError._rollbarContext), r._rollbarWrappedError = null), o.handleUncaughtException.apply(o, n), e && e.apply(r, n);
|
|
} function t(r, o, e) {
|
|
if (r) {
|
|
typeof r._rollbarURH === 'function' && r._rollbarURH.belongsToShim && r.removeEventListener('unhandledrejection', r._rollbarURH); var n = function(r) {
|
|
var e; var n; var t; try {
|
|
e = r.reason;
|
|
} catch (r) {
|
|
e = void 0;
|
|
} try {
|
|
n = r.promise;
|
|
} catch (r) {
|
|
n = '[unhandledrejection] error getting `promise` from event';
|
|
} try {
|
|
t = r.detail, !e && t && (e = t.reason, n = t.promise);
|
|
} catch (r) {}e || (e = '[unhandledrejection] error getting `reason` from event'), o && o.handleUnhandledRejection && o.handleUnhandledRejection(e, n);
|
|
}; n.belongsToShim = e, r._rollbarURH = n, r.addEventListener('unhandledrejection', n);
|
|
}
|
|
} function a(r, o, e) {
|
|
if (r) {
|
|
var n; var t; var a = 'EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload'.split(','); for (n = 0; n < a.length; ++n) {
|
|
t = a[n], r[t] && r[t].prototype && l(o, r[t].prototype, e);
|
|
}
|
|
}
|
|
} function l(r, o, e) {
|
|
if (o.hasOwnProperty && o.hasOwnProperty('addEventListener')) {
|
|
for (var n = o.addEventListener; n._rollbarOldAdd && n.belongsToShim;) {
|
|
n = n._rollbarOldAdd;
|
|
} var t = function(o, e, t) {
|
|
n.call(this, o, r.wrap(e), t);
|
|
}; t._rollbarOldAdd = n, t.belongsToShim = e, o.addEventListener = t; for (var a = o.removeEventListener; a._rollbarOldRemove && a.belongsToShim;) {
|
|
a = a._rollbarOldRemove;
|
|
} var l = function(r, o, e) {
|
|
a.call(this, r, o && o._rollbar_wrapped || o, e);
|
|
}; l._rollbarOldRemove = a, l.belongsToShim = e, o.removeEventListener = l;
|
|
}
|
|
}r.exports = {'captureUncaughtExceptions': e,
|
|
'captureUnhandledRejections': t,
|
|
'wrapGlobals': a};
|
|
},
|
|
function(r, o) {
|
|
'use strict'; function e(r, o) {
|
|
this.impl = r(o, this), this.options = o, n(e.prototype);
|
|
} function n(r) {
|
|
for (var o = function(r) {
|
|
return function() {
|
|
var o = Array.prototype.slice.call(arguments, 0); if (this.impl[r]) {
|
|
return this.impl[r].apply(this.impl, o);
|
|
}
|
|
};
|
|
}, e = 'log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleUnhandledRejection,_createItem,wrap,loadFull,shimId,captureEvent,captureDomContentLoaded,captureLoad'.split(','), n = 0; n < e.length; n++) {
|
|
r[e[n]] = o(e[n]);
|
|
}
|
|
}e.prototype._swapAndProcessMessages = function(r, o) {
|
|
this.impl = r(this.options); for (var e, n, t; e = o.shift();) {
|
|
n = e.method, t = e.args, this[n] && typeof this[n] === 'function' && (n === 'captureDomContentLoaded' || n === 'captureLoad' ? this[n].apply(this, [
|
|
t[0],
|
|
e.ts
|
|
]) : this[n].apply(this, t));
|
|
} return this;
|
|
}, r.exports = e;
|
|
},
|
|
function(r, o) {
|
|
'use strict'; r.exports = function(r) {
|
|
return function(o) {
|
|
if (!o && !window._rollbarInitialized) {
|
|
r = r || {}; for (var e, n, t = r.globalAlias || 'Rollbar', a = window.rollbar, l = function(r) {
|
|
return new a(r);
|
|
}, i = 0; e = window._rollbarShims[i++];) {
|
|
n || (n = e.handler), e.handler._swapAndProcessMessages(l, e.messages);
|
|
}window[t] = n, window._rollbarInitialized = !0;
|
|
}
|
|
};
|
|
};
|
|
}
|
|
]));
|
|
}
|