From b09f7907679510d75e0c4b439fba055e7f52ff0e Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Sun, 7 Apr 2013 21:41:31 +0200 Subject: [PATCH] POST caught errors to me. --- lib/$.coffee | 4 ++-- src/features.coffee | 1 - src/main.coffee | 34 ++++++++++++++++++++++++---------- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/lib/$.coffee b/lib/$.coffee index 30f26b20d..0bd4842b4 100644 --- a/lib/$.coffee +++ b/lib/$.coffee @@ -41,10 +41,10 @@ $.extend $, fd.append key, val fd ajax: (url, callbacks, opts={}) -> - {type, headers, upCallbacks, form} = opts + {type, headers, upCallbacks, form, sync} = opts r = new XMLHttpRequest() type or= form and 'post' or 'get' - r.open type, url, true + r.open type, url, if sync then false else true for key, val of headers r.setRequestHeader key, val $.extend r, callbacks diff --git a/src/features.coffee b/src/features.coffee index af0736699..4c7c48d85 100644 --- a/src/features.coffee +++ b/src/features.coffee @@ -3517,7 +3517,6 @@ ExpandThread = threadRoot = thread.OP.nodes.root.parentNode a = $ '.summary', threadRoot - switch thread.isExpanded when false, undefined thread.isExpanded = 'loading' diff --git a/src/main.coffee b/src/main.coffee index 589806344..8b81e1732 100644 --- a/src/main.coffee +++ b/src/main.coffee @@ -527,7 +527,7 @@ Main = new Notification 'info', el, 120 handleErrors: (errors) -> - unless 'length' of errors + unless errors instanceof Array error = errors else if errors.length is 1 error = errors[0] @@ -538,12 +538,10 @@ Main = div = $.el 'div', innerHTML: "#{errors.length} errors occurred. [show]" $.on div.lastElementChild, 'click', -> - if @textContent is 'show' - @textContent = 'hide' - logs.hidden = false + [@textContent, logs.hidden] = if @textContent is 'show' + ['hide', false] else - @textContent = 'show' - logs.hidden = true + ['show', true] logs = $.el 'div', hidden: true @@ -553,14 +551,30 @@ Main = new Notification 'error', [div, logs], 30 parseError: (data) -> - {message, error} = data - c.error message, error.stack + Main.logError data message = $.el 'div', - textContent: message + textContent: data.message error = $.el 'div', - textContent: error + textContent: data.error [message, error] + errors: [] + logError: (data) -> + unless Main.errors.length + $.on window, 'unload', Main.postErrors + c.error data.message, data.error.stack + Main.errors.push data + + postErrors: -> + errors = Main.errors.map (d) -> d.message + ' ' + d.error.stack + $.ajax '<%= meta.page %>errors', {}, + sync: true + form: $.formData + n: "<%= meta.name %> v#{g.VERSION}" + t: '<%= type %>' + ua: window.navigator.userAgent + e: errors.join '\n' + isThisPageLegit: -> # 404 error page or similar. unless 'thisPageIsLegit' of Main