diff --git a/web/js/logger.js b/web/js/logger.js index 20e52b726..c80ceca3d 100644 --- a/web/js/logger.js +++ b/web/js/logger.js @@ -16,6 +16,8 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. // +$j.ajaxSetup({timeout: AJAX_TIMEOUT}); +var reportLogs = true; if ( !window.console ) { window.console = @@ -28,55 +30,63 @@ if ( !window.console ) { error: function() {} }; } + if ( !console.debug ) { // IE8 has console but doesn't have console.debug so lets alias it. console.debug = console.log; } -var reportLogs = true; +window.onerror = function(message, url, line) { + logReport("ERR", message, url, line); + }; -var debugParms; -var debugReq; +window.addEventListener("securitypolicyviolation", function logCSP(evt) { + var level = evt.disposition == "enforce" ? "ERR" : "DBG"; + var message = evt.blockedURI + " violated CSP " + evt.violatedDirective; + + if ( evt.sample ) message += " (Sample: " + evt.sample + ")"; + logReport(level, message, evt.sourceFile, evt.lineNumber); +}); function logReport( level, message, file, line ) { - if ( !reportLogs ) { - return; - } + if ( !reportLogs ) return; - if ( typeof(MooTools) == "undefined" ) { - return; - } /* eslint-disable no-caller */ if ( arguments && arguments.callee && arguments.callee.caller && arguments.callee.caller.caller && arguments.callee.caller.caller.name ) { message += ' - '+arguments.callee.caller.caller.name+'()'; //console.log("arguments"); - } else { - //message += new Error().stack; - //console.log("stack"); } - /* eslint-enable no-caller */ - if ( !debugReq ) { - debugParms = "view=request&request=log&task=create"; - if ( Browser ) { - debugParms += "&browser[name]="+Browser.name+"&browser[version]="+Browser.version+"&browser[platform]="+(Browser.Platform?Browser.Platform.name:'unknown'); - } else { - debugParms += "&browser[name]=unknown&browser[version]=unknown&browser[platform]=unknown"; - } - debugReq = new Request.JSON({url: thisUrl, method: 'post', timeout: AJAX_TIMEOUT, link: 'chain'}); + var browser = {}; + if ( Browser ) { + browser.name = Browser.name; + browser.version = Browser.version; + browser.platform = Browser.Platform ? Browser.Platform.name : 'unknown'; + } else { + browser.name = 'unknown'; + browser.version = 'unknown'; + browser.platform = 'unknown'; } - var requestParms = debugParms; - requestParms += "&level="+level+"&message="+encodeURIComponent(message); + + var data = { + view: 'request', + request: 'log', + task: 'create', + level: level, + message: encodeURIComponent(message), + browser: browser + }; + if ( file ) { - requestParms += "&file="+file; + data.file = file; } else if ( location.search ) { //location.search is the querystring part, so ?blah=blah but there is almost never any value to this - requestParms += "&file="+location.search; + data.file = location.search; } - if ( line ) { - requestParms += "&line="+line; - } - debugReq.send(requestParms); + + if ( line ) data.line = line; + + $j.getJSON(thisUrl, data); } function Panic(message) { @@ -112,22 +122,6 @@ function Debug(message) { } function Dump(value, label) { - if ( label ) { - console.debug(label+" => "); - } + if ( label ) console.debug(label+" => "); console.debug(value); } - -window.onerror = - function( message, url, line ) { - logReport("ERR", message, url, line); - }; - -window.addEventListener("securitypolicyviolation", function logCSP(evt) { - var level = evt.disposition == "enforce" ? "ERR" : "DBG"; - var message = evt.blockedURI + " violated CSP " + evt.violatedDirective; - if ( evt.sample ) { - message += " (Sample: " + evt.sample + ")"; - } - logReport(level, message, evt.sourceFile, evt.lineNumber); -});