Skip to content

Commit 82e28bf

Browse files
committed
javascript cleanup
1 parent 6b2f2fc commit 82e28bf

8 files changed

Lines changed: 167 additions & 132 deletions

File tree

src/js/main.js

Lines changed: 83 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,9 @@
194194
);
195195

196196
$('.navbar .clear').on('click', function () {
197-
$('#debug-cards > .card').not('.working').trigger('removed.debug.card').remove();
197+
console.time('clear');
198+
$('#debug-cards > .card').not('.working').trigger('removed.debug.card');
199+
console.timeEnd('clear');
198200
});
199201

200202
$('#debug-cards').on('added.debug.card', function (e) {
@@ -203,8 +205,13 @@
203205
});
204206
$('#debug-cards').on('removed.debug.card', function (e) {
205207
// console.warn('card removed', e.target, e)
208+
var $card = $(e.target);
206209
io.unobserve(e.target);
207210
$cardsInViewport = $cardsInViewport.not(e.target);
211+
if ($card.hasClass('working')) {
212+
console.warn('removed working session:' + $card.prop('id'));
213+
}
214+
$card.remove();
208215
});
209216

210217
$('body').on('mouseup', function (e) {
@@ -220,10 +227,7 @@
220227
timeoutHandler = setTimeout(function () {
221228
// has been long pressed (3 seconds)
222229
// clear all (incl working)
223-
$('#debug-cards > .card.working').each(function () {
224-
console.warn('removed working session:' + $(this).prop('id'));
225-
});
226-
$('#debug-cards > .card').trigger('removed.debug.card').remove();
230+
$('#debug-cards > .card').trigger('removed.debug.card');
227231
}, 2000);
228232
});
229233

@@ -246,11 +250,7 @@
246250

247251
// close btn on card-header clicked
248252
$('body').on('click', '.btn-remove-session', function (e) {
249-
var $card = $(this).closest('.card');
250-
if ($card.hasClass('working')) {
251-
console.warn('removed working session:' + $card.prop('id'));
252-
}
253-
$card.trigger('removed.debug.card').remove();
253+
$(this).closest('.card').trigger('removed.debug.card');
254254
});
255255

256256
$(window).on('scroll', debounce(function () {
@@ -582,7 +582,7 @@
582582
var html = '';
583583
var strClassname = '';
584584
if (typeof abs.cfgFlags === 'undefined') {
585-
abs.cfgFlags = 0x3FFFFF; // 21 bits
585+
abs.cfgFlags = 0x3FFFFF; // 21 bits
586586
}
587587
strClassname = this.dumpClassname(abs);
588588
if (abs.isMaxDepth) {
@@ -1817,10 +1817,10 @@
18171817
val += '<span class="maxlen">&hellip; ' + strLenDiff + ' more bytes (not logged)</span>';
18181818
}
18191819
if (abs.brief) {
1820+
// @todo display bytes
18201821
return abs.contentType
18211822
? '<span class="t_keyword">string</span>' +
18221823
'<span class="text-muted">(' + abs.contentType + ')</span><span class="t_punct colon">:</span> '
1823-
// + $this->debug->utility->getBytes($abs['strlen'])
18241824
: val
18251825
}
18261826
dumpOpts.postDump = function (val, dumpOpts) {
@@ -2110,16 +2110,25 @@
21102110

21112111
Dump.prototype.dumpArray = function (array) {
21122112
var html = '';
2113+
var i;
2114+
var key;
21132115
var keys = array.__debug_key_order__ || Object.keys(array);
21142116
var length = keys.length;
2115-
var key;
2116-
var i;
21172117
var dumpOpts = $.extend({
21182118
asFileTree: false,
21192119
expand: null,
21202120
isMaxDepth: false,
21212121
showListKeys: true
21222122
}, this.getDumpOpts());
2123+
var isList = (function () {
2124+
for (i = 0; i < length; i++) {
2125+
if (parseInt(keys[i], 10) !== i) {
2126+
return false
2127+
}
2128+
}
2129+
return true
2130+
})();
2131+
var showKeys = dumpOpts.showListKeys || !isList;
21232132
/*
21242133
console.warn('dumpArray', {
21252134
array: JSON.parse(JSON.stringify(array)),
@@ -2146,17 +2155,23 @@
21462155
'<ul class="array-inner list-unstyled">\n';
21472156
for (i = 0; i < length; i++) {
21482157
key = keys[i];
2149-
html += '\t<li>' +
2150-
'<span class="t_key' + (/^\d+$/.test(key) ? ' t_int' : '') + '">' + key + '</span>' +
2151-
'<span class="t_operator">=&gt;</span>' +
2152-
this.dump(array[key]) +
2153-
'</li>\n';
2158+
html += this.dumpArrayValue(key, array[key], showKeys);
21542159
}
21552160
html += '</ul>' +
21562161
'<span class="t_punct">)</span>';
21572162
return html
21582163
};
21592164

2165+
Dump.prototype.dumpArrayValue = function (key, val, withKey) {
2166+
return withKey
2167+
? '\t<li>' +
2168+
'<span class="t_key' + (/^\d+$/.test(key) ? ' t_int' : '') + '">' + key + '</span>' +
2169+
'<span class="t_operator">=&gt;</span>' +
2170+
this.dump(val) +
2171+
'</li>\n'
2172+
: '\t' + this.dump(val, { tagName: 'li' }) + '\n'
2173+
};
2174+
21602175
Dump.prototype.dumpBool = function (val) {
21612176
return val ? 'true' : 'false'
21622177
};
@@ -2505,9 +2520,6 @@
25052520
.append($groupHeader)
25062521
.append($groupBody);
25072522
nodes.push($groupBody);
2508-
if ($group.is(':visible')) {
2509-
$group.debugEnhance();
2510-
}
25112523
return $group
25122524
},
25132525
groupCollapsed: function (logEntry, info) {
@@ -2557,29 +2569,30 @@
25572569
if (nodes.length > 1) {
25582570
nodes.pop();
25592571
}
2560-
if (!isSummaryRoot) {
2561-
$toggle = info.$node.prev();
2562-
$group = $toggle.parent();
2563-
if ($group.hasClass('empty') && $group.hasClass('hide-if-empty')) {
2564-
// console.log('remove', $group)
2565-
// $toggle.remove()
2566-
// info.$currentNode.remove()
2567-
$group.remove();
2568-
} else if ($group.hasClass('ungroup')) {
2569-
var $children = $group.find('> ul.group-body > li');
2570-
var $groupLabel = $group.find('> .group-header > .group-label');
2571-
var $li = $('<li></li>').data($group.data());
2572-
if ($children.length === 0) {
2573-
$group.replaceWith(
2574-
$li.html($groupLabel.html())
2575-
);
2576-
} else if ($children.length === 1 && $children.filter('.m_group').length === 0) {
2577-
$group.replaceWith($children);
2578-
}
2579-
} else if (!$group.is(':visible')) ; else {
2580-
// console.log('enhance')
2581-
$group.debugEnhance();
2572+
if (isSummaryRoot) {
2573+
return
2574+
}
2575+
$toggle = info.$node.prev();
2576+
$group = $toggle.parent();
2577+
if ($group.hasClass('empty') && $group.hasClass('hide-if-empty')) {
2578+
// console.log('remove', $group)
2579+
// $toggle.remove()
2580+
// info.$currentNode.remove()
2581+
$group.remove();
2582+
} else if ($group.hasClass('ungroup')) {
2583+
var $children = $group.find('> ul.group-body > li');
2584+
var $groupLabel = $group.find('> .group-header > .group-label');
2585+
var $li = $('<li></li>').data($group.data());
2586+
if ($children.length === 0) {
2587+
$group.replaceWith(
2588+
$li.html($groupLabel.html())
2589+
);
2590+
} else if ($children.length === 1 && $children.filter('.m_group').length === 0) {
2591+
$group.replaceWith($children);
25822592
}
2593+
} else if ($group.hasClass('filter-hidden') === false && $group.is(':visible')) {
2594+
// console.log('enhance')
2595+
$group.debugEnhance();
25832596
}
25842597
},
25852598
groupUncollapse: function (logEntry, info) {
@@ -2967,33 +2980,15 @@
29672980

29682981
function processEntry (logEntry) {
29692982
// console.log(JSON.parse(JSON.stringify(logEntry)));
2970-
var method = logEntry.method;
29712983
var meta = logEntry.meta;
2972-
var i;
29732984
var info = getNodeInfo(meta);
29742985
var channelsTab = info.channels.filter(function (channelInfo) {
29752986
return channelInfo.name === info.channelNameTop || channelInfo.name.indexOf(info.channelNameTop + '.') === 0
29762987
});
29772988
var $node;
29782989

29792990
try {
2980-
if (meta.format === 'html') {
2981-
if (typeof logEntry.args === 'object') {
2982-
$node = $('<li />', { class: 'm_' + method });
2983-
for (i = 0; i < logEntry.args.length; i++) {
2984-
$node.append(logEntry.args[i]);
2985-
}
2986-
} else {
2987-
$node = $(logEntry.args);
2988-
if (!$node.is('.m_' + method)) {
2989-
$node = $('<li />', { class: 'm_' + method }).html(logEntry.args);
2990-
}
2991-
}
2992-
} else if (methods[method]) {
2993-
$node = methods[method](logEntry, info);
2994-
} else {
2995-
$node = methods.default(logEntry, info);
2996-
}
2991+
$node = buildLogEntryNode(logEntry, info);
29972992
updateSidebar(logEntry, info, $node !== false);
29982993
if (!$node) {
29992994
return
@@ -3029,7 +3024,7 @@
30293024
$node.attr('data-found-files', meta.foundFiles ? meta.foundFiles : []);
30303025
}
30313026
$node.parent().closest('.m_group.empty').removeClass('empty').trigger('updated.debug.group');
3032-
if ($node.is(':visible:not(.filter-hidden)')) {
3027+
if ($node.hasClass('filter-hidden') === false && $node.is(':visible')) {
30333028
$node.debugEnhance();
30343029
}
30353030
} catch (err) {
@@ -3038,6 +3033,30 @@
30383033
}
30393034
}
30403035

3036+
function buildLogEntryNode (logEntry, info) {
3037+
var method = logEntry.method;
3038+
var $node;
3039+
var i;
3040+
if (logEntry.meta.format === 'html') {
3041+
if (typeof logEntry.args === 'object') {
3042+
$node = $('<li />', { class: 'm_' + method });
3043+
for (i = 0; i < logEntry.args.length; i++) {
3044+
$node.append(logEntry.args[i]);
3045+
}
3046+
return $node
3047+
}
3048+
$node = $(logEntry.args);
3049+
if (!$node.is('.m_' + method)) {
3050+
$node = $('<li />', { class: 'm_' + method }).html(logEntry.args);
3051+
}
3052+
return $node
3053+
}
3054+
if (methods[method]) {
3055+
return methods[method](logEntry, info)
3056+
}
3057+
return methods.default(logEntry, info)
3058+
}
3059+
30413060
function getNodeInfo (meta) {
30423061
var $container = $('#' + meta.requestId);
30433062
var $debug;

src/js/main.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/js_src/Logger/Dump.js

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -151,16 +151,25 @@ Dump.prototype.dumpAbstraction = function (abs) {
151151

152152
Dump.prototype.dumpArray = function (array) {
153153
var html = ''
154+
var i
155+
var key
154156
var keys = array.__debug_key_order__ || Object.keys(array)
155157
var length = keys.length
156-
var key
157-
var i
158158
var dumpOpts = $.extend({
159159
asFileTree: false,
160160
expand: null,
161161
isMaxDepth: false,
162162
showListKeys: true
163163
}, this.getDumpOpts())
164+
var isList = (function () {
165+
for (i = 0; i < length; i++) {
166+
if (parseInt(keys[i], 10) !== i) {
167+
return false
168+
}
169+
}
170+
return true
171+
})()
172+
var showKeys = dumpOpts.showListKeys || !isList
164173
/*
165174
console.warn('dumpArray', {
166175
array: JSON.parse(JSON.stringify(array)),
@@ -187,17 +196,23 @@ Dump.prototype.dumpArray = function (array) {
187196
'<ul class="array-inner list-unstyled">\n'
188197
for (i = 0; i < length; i++) {
189198
key = keys[i]
190-
html += '\t<li>' +
191-
'<span class="t_key' + (/^\d+$/.test(key) ? ' t_int' : '') + '">' + key + '</span>' +
192-
'<span class="t_operator">=&gt;</span>' +
193-
this.dump(array[key]) +
194-
'</li>\n'
199+
html += this.dumpArrayValue(key, array[key], showKeys)
195200
}
196201
html += '</ul>' +
197202
'<span class="t_punct">)</span>'
198203
return html
199204
}
200205

206+
Dump.prototype.dumpArrayValue = function (key, val, withKey) {
207+
return withKey
208+
? '\t<li>' +
209+
'<span class="t_key' + (/^\d+$/.test(key) ? ' t_int' : '') + '">' + key + '</span>' +
210+
'<span class="t_operator">=&gt;</span>' +
211+
this.dump(val) +
212+
'</li>\n'
213+
: '\t' + this.dump(val, { tagName: 'li' }) + '\n'
214+
}
215+
201216
Dump.prototype.dumpBool = function (val) {
202217
return val ? 'true' : 'false'
203218
}

src/js_src/Logger/DumpObject.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ DumpObject.prototype.dump = function (abs) {
3434
var html = ''
3535
var strClassname = ''
3636
if (typeof abs.cfgFlags === 'undefined') {
37-
abs.cfgFlags = 0x3FFFFF // 21 bits
37+
abs.cfgFlags = 0x3FFFFF // 21 bits
3838
}
3939
strClassname = this.dumpClassname(abs)
4040
if (abs.isMaxDepth) {

src/js_src/Logger/DumpString.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,10 @@ DumpString.prototype.dumpBinary = function (abs) {
8989
val += '<span class="maxlen">&hellip; ' + strLenDiff + ' more bytes (not logged)</span>'
9090
}
9191
if (abs.brief) {
92+
// @todo display bytes
9293
return abs.contentType
9394
? '<span class="t_keyword">string</span>' +
9495
'<span class="text-muted">(' + abs.contentType + ')</span><span class="t_punct colon">:</span> '
95-
// + $this->debug->utility->getBytes($abs['strlen'])
9696
: val
9797
}
9898
dumpOpts.postDump = function (val, dumpOpts) {

0 commit comments

Comments
 (0)