From c783f9eca6b21e92f192f2280b67581daa2907ea Mon Sep 17 00:00:00 2001 From: surunzi Date: Thu, 25 Aug 2016 23:53:40 +0800 Subject: [PATCH] Dev: Error log toggle effect --- src/Console/Log.es6 | 17 ++++++++++++++++- src/Console/Log.hbs | 2 +- src/Console/Logger.es6 | 21 +++++++++++++++------ src/style/style.scss | 4 ++++ test/console.js | 11 ++++++++--- 5 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/Console/Log.es6 b/src/Console/Log.es6 index da1b8c9..ab42bbf 100644 --- a/src/Console/Log.es6 +++ b/src/Console/Log.es6 @@ -98,6 +98,21 @@ export default class Log delete this.args; this._formattedMsg = msg; } + static click(type, $el) + { + switch (type) + { + case 'log': + case 'warn': + case 'info': + return 'src'; + case 'error': + $el.find('.eruda-stack').toggleClass('eruda-hidden'); + break; + } + + return 'handled'; + } } function formatTable(args) @@ -147,7 +162,7 @@ function formatErr(err) lines = lines.filter(val => val.indexOf('eruda') < 0); - var stack = `
${lines.slice(1).join('
')}
`; + var stack = `
${lines.slice(1).join('
')}
`; return msg + stack.replace(regJsUrl, match => `${match}`); } diff --git a/src/Console/Log.hbs b/src/Console/Log.hbs index aac71c6..fcf357a 100644 --- a/src/Console/Log.hbs +++ b/src/Console/Log.hbs @@ -4,7 +4,7 @@ {{time}} {{from}} {{/if}} -
+
{{#if icon}}
diff --git a/src/Console/Logger.es6 b/src/Console/Logger.es6 index c927fe5..94901fd 100644 --- a/src/Console/Logger.es6 +++ b/src/Console/Logger.es6 @@ -222,13 +222,22 @@ export default class Logger extends util.Emitter this._$el.on('click', '.eruda-log-item', function () { - var idx = util.$(this).data('idx'), - src = self._renderLogs[idx].src; + let $el = util.$(this), + idx = $el.data('idx'), + type = $el.data('type'); - try { - if (!util.isObj(src)) src = JSON.parse(src); - self.emit('viewJson', src); - } catch (e) {} + let action = Log.click(type, $el); + + switch (action) + { + case 'viewSrc': + let src = self._renderLogs[idx].src; + try { + if (!util.isObj(src)) src = JSON.parse(src); + self.emit('viewJson', src); + } catch (e) {} + break; + } }); } } diff --git a/src/style/style.scss b/src/style/style.scss index fd12c78..f0e93ea 100644 --- a/src/style/style.scss +++ b/src/style/style.scss @@ -29,6 +29,10 @@ } } +.hidden { + display: none; +} + .blue { color: $blue; } diff --git a/test/console.js b/test/console.js index 3076f66..e7dc7ef 100644 --- a/test/console.js +++ b/test/console.js @@ -31,12 +31,17 @@ describe('log', function () expect($tool.find('.eruda-html')).toContainElement('span.color-blue'); }); - it('timer', function () + it('timing', function () { tool.clear().time('eruda'); tool.clear().timeEnd('eruda'); expect($tool.find('.eruda-html')).toHaveText(/eruda: \d+ms/); }); + + it('error', function () + { + tool.clear().error(new Error('error test')); + }); }); describe('substitution', function () @@ -103,10 +108,10 @@ describe('filter', function () // Test case from https://github.com/liriliri/eruda/issues/14 it('function', function () { - tool.clear().filter(function (log) + /*tool.clear().filter(function (log) { return !(log.type === 'error' && /deprecated(.|\n)*stringify/.test(log.src.stack)); - }); + });*/ var obj = {}; Object.defineProperty(obj, 'a', {