mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Make strings expandable in debug
This commit is contained in:
parent
f0f40a8606
commit
06ee9aa05c
@ -153,7 +153,7 @@ module.exports = function(RED) {
|
||||
msg.format = (msg.msg === null)?"null":"undefined";
|
||||
msg.msg = "(undefined)";
|
||||
} else {
|
||||
msg.format = "string ["+msg.msg.length+"]";
|
||||
msg.format = "string["+msg.msg.length+"]";
|
||||
if (msg.msg.length > debuglength) {
|
||||
msg.msg = msg.msg.substring(0,debuglength)+"...";
|
||||
}
|
||||
|
@ -185,8 +185,8 @@ RED.debug = (function() {
|
||||
}
|
||||
} else if (typeof value === 'string') {
|
||||
subvalue = value;
|
||||
if (subvalue.length > 50) {
|
||||
subvalue = subvalue.substring(0,50)+"…";
|
||||
if (subvalue.length > 30) {
|
||||
subvalue = subvalue.substring(0,30)+"…";
|
||||
}
|
||||
result = $('<span class="debug-message-object-value debug-message-type-string"></span>').html('"'+formatString(subvalue)+'"');
|
||||
} else {
|
||||
@ -241,7 +241,16 @@ RED.debug = (function() {
|
||||
if (obj === null || obj === undefined) {
|
||||
$('<span class="debug-message-type-null">'+obj+'</span>').appendTo(entryObj);
|
||||
} else if (typeof obj === 'string') {
|
||||
$('<span class="debug-message-type-string"></span>').html('"'+formatString(obj)+'"').appendTo(entryObj);
|
||||
element.addClass('collapsed');
|
||||
$('<i class="fa fa-caret-right debug-message-object-handle"></i> ').prependTo(header);
|
||||
$('<span class="debug-message-type-string debug-message-object-header"></span>').html('"'+formatString(obj)+'"').appendTo(entryObj);
|
||||
makeExpandable(header, function() {
|
||||
$('<span class="debug-message-type-meta debug-message-object-type-header"></span>').html(typeHint||'string').appendTo(header);
|
||||
var row = $('<div class="debug-message-object-entry collapsed"></div>').appendTo(element);
|
||||
$('<pre class="debug-message-type-string"></pre>').html(obj).appendTo(row);
|
||||
});
|
||||
|
||||
|
||||
} else if (typeof obj === 'number') {
|
||||
e = $('<span class="debug-message-type-number"></span>').text(""+obj).appendTo(entryObj);
|
||||
e.click(function(evt) {
|
||||
@ -271,6 +280,8 @@ RED.debug = (function() {
|
||||
originalLength = data.length;
|
||||
}
|
||||
type = obj.type.toLowerCase();
|
||||
} else if (/buffer/.test(typeHint)) {
|
||||
type = 'buffer';
|
||||
}
|
||||
var fullLength = data.length;
|
||||
|
||||
@ -278,7 +289,26 @@ RED.debug = (function() {
|
||||
$('<i class="fa fa-caret-right debug-message-object-handle"></i> ').prependTo(header);
|
||||
makeExpandable(header,function() {
|
||||
if (!key) {
|
||||
$('<span class="debug-message-type-meta debug-message-object-type-header"></span>').html(typeHint||(type+'['+originalLength+']')).appendTo(header);
|
||||
var headerHead = $('<span class="debug-message-type-meta debug-message-object-type-header"></span>').html(typeHint||(type+'['+originalLength+']')).appendTo(header);
|
||||
if (type === 'buffer') {
|
||||
// var bufferOpts = $('<span class="debug-message-buffer-opts"></span>').appendTo(headerHead);
|
||||
// //dec hex string
|
||||
// $('<a href="#"></a>').addClass('selected').html('dec').appendTo(bufferOpts).click(function(e) {
|
||||
// $(this).addClass('selected').siblings().removeClass('selected');
|
||||
// e.preventDefault();
|
||||
// e.stopPropagation();
|
||||
// })
|
||||
// $('<a href="#"></a>').html('hex').appendTo(bufferOpts).click(function(e) {
|
||||
// $(this).addClass('selected').siblings().removeClass('selected');
|
||||
// e.preventDefault();
|
||||
// e.stopPropagation();
|
||||
// })
|
||||
// $('<a href="#"></a>').html('string').appendTo(bufferOpts).click(function(e) {
|
||||
// $(this).addClass('selected').siblings().removeClass('selected');
|
||||
// e.preventDefault();
|
||||
// e.stopPropagation();
|
||||
// })
|
||||
}
|
||||
}
|
||||
var row;
|
||||
if (fullLength <= 10) {
|
||||
@ -305,6 +335,9 @@ RED.debug = (function() {
|
||||
})());
|
||||
$('<span class="debug-message-object-key"></span>').html("["+minRange+" … "+Math.min(fullLength-1,(minRange+9))+"]").appendTo(header);
|
||||
}
|
||||
if (fullLength < originalLength) {
|
||||
$('<div class="debug-message-object-entry collapsed"><span class="debug-message-object-key">['+fullLength+' … '+originalLength+']</span></div>').appendTo(element);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -332,7 +365,7 @@ RED.debug = (function() {
|
||||
} else if (typeof obj === 'object') {
|
||||
element.addClass('collapsed');
|
||||
var keys = Object.keys(obj);
|
||||
if (keys.length > 0) {
|
||||
if (key || keys.length > 0) {
|
||||
$('<i class="fa fa-caret-right debug-message-object-handle"></i> ').prependTo(header);
|
||||
makeExpandable(header, function() {
|
||||
if (!key) {
|
||||
@ -342,6 +375,9 @@ RED.debug = (function() {
|
||||
var row = $('<div class="debug-message-object-entry collapsed"></div>').appendTo(element);
|
||||
buildMessageElement(obj[keys[i]],keys[i],false).appendTo(row);
|
||||
}
|
||||
if (keys.length === 0) {
|
||||
$('<div class="debug-message-object-entry debug-message-type-meta collapsed"></div>').text("empty").appendTo(element);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (key) {
|
||||
@ -365,36 +401,6 @@ RED.debug = (function() {
|
||||
$('<span class="debug-message-type-meta">empty</span>').appendTo(headerHead);
|
||||
}
|
||||
$('<span> }</span>').appendTo(headerHead);
|
||||
|
||||
|
||||
// $('<span class="debug-message-type-meta debug-message-object-type-header"></span>').html('object').appendTo(header);
|
||||
// headerHead = $('<span class="debug-message-object-header"></span>').appendTo(header);
|
||||
// $('<span>{ </span>').appendTo(headerHead);
|
||||
// for (i=0;i<keys.length;i++) {
|
||||
// if (!key) {
|
||||
// if (i < 5) {
|
||||
// $('<span class="debug-message-object-key"></span>').text(keys[i]).appendTo(headerHead);
|
||||
// $('<span>: </span>').appendTo(headerHead);
|
||||
// buildMessageSummaryValue(obj[keys[i]]).appendTo(headerHead);
|
||||
// if (i < keys.length -1) {
|
||||
// $('<span>, </span>').appendTo(headerHead);
|
||||
// }
|
||||
// }
|
||||
// if (i === 5) {
|
||||
// $('<span> …</span>').appendTo(headerHead);
|
||||
// }
|
||||
// }
|
||||
// entryObj = $('<div class="debug-message-object-entry collapsed"></div>').appendTo(element);
|
||||
// var entryHeader = $('<span></span>').appendTo(entryObj);
|
||||
// $('<span class="debug-message-object-key"></span>').text(keys[i]).appendTo(entryHeader);
|
||||
// $('<span>: </span>').appendTo(entryHeader);
|
||||
// e = $('<span class="debug-message-object-value"></span>').appendTo(entryObj);
|
||||
// buildMessageElement(obj[keys[i]],keys[i]).appendTo(e);
|
||||
// }
|
||||
// $('<div class="debug-message-object-entry"><span class="debug-message-object-key">…</span></div>').appendTo(element);
|
||||
}
|
||||
if (keys.length === 0) {
|
||||
$('<div class="debug-message-object-entry debug-message-type-meta collapsed"></div>').text("empty").appendTo(element);
|
||||
}
|
||||
} else {
|
||||
$('<span class="debug-message-type-other"></span>').text(""+obj).appendTo(entryObj);
|
||||
@ -402,167 +408,6 @@ RED.debug = (function() {
|
||||
return element;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// function buildMessageElement(obj,topLevel,typeHint) {
|
||||
// var i;
|
||||
// var e;
|
||||
// var entryObj;
|
||||
// var header;
|
||||
// var headerHead;
|
||||
// var value,subvalue;
|
||||
// var element = $('<span class="debug-message-element"></span>').toggleClass('collapsed',topLevel);
|
||||
// if (Array.isArray(obj)) {
|
||||
// var originalLength = obj.length;
|
||||
// if (typeHint) {
|
||||
// var m = /\[(\d+)\]/.exec(typeHint);
|
||||
// if (m) {
|
||||
// originalLength = parseInt(m[1]);
|
||||
// }
|
||||
// }
|
||||
// var fullLength = obj.length;
|
||||
// var length = Math.min(obj.length,10);
|
||||
// if (!topLevel) {
|
||||
// header = $('<span class="debug-message-type-meta"></span>').html(typeHint||('array['+obj.length+']')).appendTo(element);
|
||||
// } else {
|
||||
// header = $('<span>').appendTo(element);
|
||||
// if (length > 0) {
|
||||
// $('<i class="fa fa-caret-right debug-message-object-handle"></i> ').prependTo(header);
|
||||
// makeExpandable(header);
|
||||
// }
|
||||
// $('<span class="debug-message-type-meta debug-message-object-type-header"></span>').html(typeHint||('array['+obj.length+']')).appendTo(header);
|
||||
// headerHead = $('<span class="debug-message-object-header"></span>').appendTo(header);
|
||||
// $('<span>[ </span>').appendTo(headerHead);
|
||||
// }
|
||||
// var row;
|
||||
// for (i=0;i<fullLength;i++) {
|
||||
// if (topLevel) {
|
||||
// if (i<length) {
|
||||
// buildMessageSummaryValue(obj[i]).appendTo(headerHead);
|
||||
// if (i < length -1) {
|
||||
// $('<span>, </span>').appendTo(headerHead);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if (fullLength < 10) {
|
||||
// row = element;
|
||||
// } else if (fullLength > 10 && (i%10) === 0) {
|
||||
// var minRange = 10*Math.floor(i/10);
|
||||
// row = $('<div class="debug-message-object-entry collapsed"></div>').appendTo(element);
|
||||
// header = $('<span></span>').appendTo(row);
|
||||
// $('<i class="fa fa-caret-right debug-message-object-handle"></i> ').appendTo(header);
|
||||
// makeExpandable(header);
|
||||
// $('<span class="debug-message-object-key"></span>').html("["+minRange+" … "+Math.min(fullLength-1,(minRange+9))+"]").appendTo(header);
|
||||
// }
|
||||
// entryObj = $('<div class="debug-message-object-entry collapsed"></div>').appendTo(row);
|
||||
//
|
||||
// header = $('<span></span>').appendTo(entryObj);
|
||||
// if (typeof obj[i] === 'object' && obj[i] !== null) {
|
||||
// $('<i class="fa fa-caret-right debug-message-object-handle"></i> ').appendTo(header);
|
||||
// makeExpandable(header);
|
||||
// }
|
||||
// $('<span class="debug-message-object-key"></span>').text(i).appendTo(header);
|
||||
//
|
||||
// $('<span>: </span>').appendTo(entryObj);
|
||||
// e = $('<span class="debug-message-object-value"></span>').appendTo(entryObj);
|
||||
// buildMessageElement(obj[i],false).appendTo(e);
|
||||
// }
|
||||
// if (length < obj.length) {
|
||||
// if (topLevel) {
|
||||
// $('<span> …</span>').appendTo(headerHead);
|
||||
// }
|
||||
// //$('<div class="debug-message-object-entry"><span class="debug-message-object-key">…</span></div>').appendTo(element);
|
||||
// }
|
||||
// if (fullLength < originalLength) {
|
||||
// row = $('<div class="debug-message-object-entry collapsed"></div>').appendTo(element);
|
||||
// $('<span> …</span>').appendTo(row);
|
||||
// }
|
||||
// if (topLevel) {
|
||||
// if (length === 0) {
|
||||
// $('<span class="debug-message-type-meta">empty</span>').appendTo(headerHead);
|
||||
// }
|
||||
// $('<span> ]</span>').appendTo(headerHead);
|
||||
// }
|
||||
// } else if (obj === null || obj === undefined) {
|
||||
// $('<span class="debug-message-object-value debug-message-type-null">'+obj+'</span>').appendTo(element);
|
||||
// } else if (typeof obj === 'object') {
|
||||
// if (obj.hasOwnProperty('type') && obj.type === 'Buffer' && obj.hasOwnProperty('data')) {
|
||||
// buildMessageElement(obj.data,false,'buffer['+obj.data.length+']').appendTo(element);
|
||||
//
|
||||
// } else {
|
||||
// var keys = Object.keys(obj);
|
||||
// if (topLevel) {
|
||||
// header = $('<span>').appendTo(element);
|
||||
// if (keys.length > 0) {
|
||||
// $('<i class="fa fa-caret-right debug-message-object-handle"></i> ').prependTo(header);
|
||||
// makeExpandable(header);
|
||||
// }
|
||||
// } else {
|
||||
// header = $('<span class="debug-message-type-meta"></span>').html('object').appendTo(element);
|
||||
// }
|
||||
// if (topLevel) {
|
||||
// $('<span class="debug-message-type-meta debug-message-object-type-header"></span>').html('object').appendTo(header);
|
||||
// headerHead = $('<span class="debug-message-object-header"></span>').appendTo(header);
|
||||
// $('<span>{ </span>').appendTo(headerHead);
|
||||
// }
|
||||
// for (i=0;i<keys.length;i++) {
|
||||
// if (topLevel) {
|
||||
// if (i < 5) {
|
||||
// $('<span class="debug-message-object-key"></span>').text(keys[i]).appendTo(headerHead);
|
||||
// $('<span>: </span>').appendTo(headerHead);
|
||||
// buildMessageSummaryValue(obj[keys[i]]).appendTo(headerHead);
|
||||
// if (i < keys.length -1) {
|
||||
// $('<span>, </span>').appendTo(headerHead);
|
||||
// }
|
||||
// }
|
||||
// if (i === 5) {
|
||||
// $('<span> …</span>').appendTo(headerHead);
|
||||
// }
|
||||
// }
|
||||
// entryObj = $('<div class="debug-message-object-entry collapsed"></div>').appendTo(element);
|
||||
// var entryHeader = $('<span></span>').appendTo(entryObj);
|
||||
// $('<span class="debug-message-object-key"></span>').text(keys[i]).appendTo(entryHeader);
|
||||
// $('<span>: </span>').appendTo(entryHeader);
|
||||
// e = $('<span class="debug-message-object-value"></span>').appendTo(entryObj);
|
||||
// if (typeof obj[keys[i]] === 'object' && obj[keys[i]] !== null) {
|
||||
// $('<i class="fa fa-caret-right debug-message-object-handle"></i> ').prependTo(entryHeader);
|
||||
// makeExpandable(entryHeader);
|
||||
// }
|
||||
// buildMessageElement(obj[keys[i]],false).appendTo(e);
|
||||
// }
|
||||
// if (keys.length === 0) {
|
||||
// $('<div class="debug-message-object-entry debug-message-type-meta collapsed"></div>').text("empty").appendTo(element);
|
||||
// }
|
||||
// if (topLevel) {
|
||||
// if (keys.length === 0) {
|
||||
// $('<span class="debug-message-type-meta">empty</span>').appendTo(headerHead);
|
||||
// }
|
||||
// $('<span> }</span>').appendTo(headerHead);
|
||||
// }
|
||||
// }
|
||||
// } else if (typeof obj === 'string') {
|
||||
// $('<span class="debug-message-object-value debug-message-type-string"></span>').html('"'+formatString(obj)+'"').appendTo(element);
|
||||
// } else if (typeof obj === 'number') {
|
||||
// e = $('<span class="debug-message-object-value debug-message-type-number"></span>').text(""+obj).appendTo(element);
|
||||
// e.click(function(evt) {
|
||||
// var format = $(this).data('format');
|
||||
// if (format === 'hex') {
|
||||
// $(this).text(""+obj).data('format','dec');
|
||||
// } else {
|
||||
// $(this).text("0x"+(obj).toString(16)).data('format','hex');
|
||||
// }
|
||||
// evt.preventDefault();
|
||||
// });
|
||||
// } else {
|
||||
// $('<span class="debug-message-object-value debug-message-type-other"></span>').text(""+obj).appendTo(element);
|
||||
// }
|
||||
// return element;
|
||||
// }
|
||||
|
||||
function buildMessageBody(obj,el) {
|
||||
|
||||
}
|
||||
|
||||
function handleDebugMessage(o) {
|
||||
var msg = document.createElement("div");
|
||||
|
||||
|
@ -116,14 +116,19 @@
|
||||
.debug-message-element.collapsed .debug-message-object-entry {
|
||||
display:none;
|
||||
}
|
||||
.debug-message-element:not(.collapsed) .debug-message-object-header {
|
||||
.debug-message-element:not(.collapsed)>.debug-message-expandable>.debug-message-object-value>.debug-message-object-header {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.debug-message-element.collapsed .debug-message-object-type-header {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.debug-message-object-entry pre {
|
||||
font-family: Menlo, monospace;
|
||||
font-size: 12px;
|
||||
line-height: 1.4em;
|
||||
margin: 0 0 0 -1em;
|
||||
}
|
||||
|
||||
.debug-message-type-other { color: #2033d6; }
|
||||
.debug-message-type-string { color: #b72828; }
|
||||
@ -140,3 +145,23 @@
|
||||
.debug-message-expandable:hover .debug-message-object-handle {
|
||||
color: #b72828 !important;
|
||||
}
|
||||
|
||||
.debug-message-buffer-opts a {
|
||||
font-size: 9px;
|
||||
color: #bbb;
|
||||
border: 1px solid #bbb;
|
||||
border-radius: 2px;
|
||||
padding: 2px 5px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
.debug-message-buffer-opts a.selected {
|
||||
background: #eee;
|
||||
color: #999;
|
||||
border: 1px solid #999;
|
||||
}
|
||||
.debug-message-buffer-opts a:hover {
|
||||
text-decoration: none;
|
||||
color: #999;
|
||||
border: 1px solid #999;
|
||||
background: #f3f3f3;
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ describe('debug node', function() {
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",data:{id:"n1",name:"Debug",msg:"test",
|
||||
format:"string [4]",property:"payload"}
|
||||
format:"string[4]",property:"payload"}
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
@ -64,7 +64,7 @@ describe('debug node', function() {
|
||||
n1.emit("input", {payload:"test"});
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",data:{id:"n1",msg:"test",property:"payload",format:"string [4]"}
|
||||
topic:"debug",data:{id:"n1",msg:"test",property:"payload",format:"string[4]"}
|
||||
});
|
||||
count++;
|
||||
}, function() {
|
||||
@ -108,7 +108,7 @@ describe('debug node', function() {
|
||||
n1.emit("input", {payload:"test", foo:"bar"});
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",data:{id:"n1",msg:"bar",property:"foo",format:"string [3]"}
|
||||
topic:"debug",data:{id:"n1",msg:"bar",property:"foo",format:"string[3]"}
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
@ -122,7 +122,7 @@ describe('debug node', function() {
|
||||
n1.emit("input", {payload:"test", foo: {bar: "bar"}});
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",data:{id:"n1",msg:"bar",property:"foo.bar",format:"string [3]"}
|
||||
topic:"debug",data:{id:"n1",msg:"bar",property:"foo.bar",format:"string[3]"}
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
@ -236,7 +236,7 @@ describe('debug node', function() {
|
||||
id:"n1",
|
||||
msg: Array(1001).join("X")+'...',
|
||||
property:"payload",
|
||||
format:"string [1001]"
|
||||
format:"string[1001]"
|
||||
}
|
||||
});
|
||||
}, done);
|
||||
@ -277,7 +277,7 @@ describe('debug node', function() {
|
||||
});
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",data:{id:"n1",msg:"message 2",property:"payload",format:"string [9]"}
|
||||
topic:"debug",data:{id:"n1",msg:"message 2",property:"payload",format:"string[9]"}
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user