Skip to content

Commit 127b4f0

Browse files
committed
Add RED.utils.getNodeLabel utility function
1 parent 629c63e commit 127b4f0

6 files changed

Lines changed: 25 additions & 75 deletions

File tree

editor/js/ui/deploy.js

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -362,18 +362,7 @@ RED.deploy = (function() {
362362
tabLabel = tab.label;
363363
}
364364
}
365-
var label = "";
366-
if (typeof node._def.label == "function") {
367-
try {
368-
label = node._def.label.call(node);
369-
} catch(err) {
370-
console.log("Definition error: "+node_def.type+".label",err);
371-
label = node_def.type;
372-
}
373-
} else {
374-
label = node._def.label;
375-
}
376-
label = label || node.id;
365+
var label = RED.utils.getNodeLabel(node,node.id);
377366
return {tab:tabLabel,type:node.type,label:label};
378367
}
379368
function sortNodeInfo(A,B) {

editor/js/ui/editor.js

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -265,17 +265,8 @@ RED.editor = (function() {
265265
var configNode = RED.nodes.node(node[property]);
266266
var node_def = RED.nodes.getType(type);
267267

268-
if (configNode && node_def.label) {
269-
if (typeof node_def.label == "function") {
270-
try {
271-
label = node_def.label.call(configNode);
272-
} catch(err) {
273-
console.log("Definition error: "+node_def.type+".label",err);
274-
label = node_def.type;
275-
}
276-
} else {
277-
label = node_def.label;
278-
}
268+
if (configNode) {
269+
label = RED.utils.getNodeLabel(configNode,configNode.id);
279270
}
280271
input.val(label);
281272
}
@@ -1209,17 +1200,7 @@ RED.editor = (function() {
12091200

12101201
RED.nodes.eachConfig(function(config) {
12111202
if (config.type == type && (!config.z || config.z === activeWorkspace.id)) {
1212-
var label = "";
1213-
if (typeof node_def.label == "function") {
1214-
try {
1215-
label = node_def.label.call(config);
1216-
} catch(err) {
1217-
console.log("Definition error: "+node_def.type+".label",err);
1218-
label = node_def.type;
1219-
}
1220-
} else {
1221-
label = node_def.label;
1222-
}
1203+
var label = RED.utils.getNodeLabel(config,config.id);
12231204
config.__label__ = label;
12241205
configNodes.push(config);
12251206
}

editor/js/ui/search.js

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,11 @@ RED.search = (function() {
2727
var results = [];
2828

2929
function indexNode(n) {
30-
var l = "";
31-
if (n._def && n._def.label) {
32-
l = n._def.label;
33-
try {
34-
l = (typeof l === "function" ? l.call(n) : l);
35-
if (l) {
36-
l = (""+l).toLowerCase();
37-
index[l] = index[l] || {};
38-
index[l][n.id] = {node:n,label:l}
39-
}
40-
} catch(err) {
41-
console.log("Definition error: "+n.type+".label",err);
42-
}
30+
var l = RED.utils.getNodeLabel(n);
31+
if (l) {
32+
l = (""+l).toLowerCase();
33+
index[l] = index[l] || {};
34+
index[l][n.id] = {node:n,label:l}
4335
}
4436
l = l||n.label||n.name||n.id||"";
4537

editor/js/ui/tab-config.js

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -131,19 +131,7 @@ RED.sidebar.config = (function() {
131131
} else {
132132
var currentType = "";
133133
nodes.forEach(function(node) {
134-
var label = "";
135-
if (typeof node._def.label == "function") {
136-
try {
137-
label = node._def.label.call(node);
138-
} catch(err) {
139-
console.log("Definition error: "+node._def.type+".label",err);
140-
label = node._def.type;
141-
}
142-
143-
} else {
144-
label = node._def.label;
145-
}
146-
label = label || node.id;
134+
var label = RED.utils.getNodeLabel(node,node.id);
147135
if (node.type != currentType) {
148136
$('<li class="config_node_type">'+node.type+'</li>').appendTo(list);
149137
currentType = node.type;

editor/js/ui/utils.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,20 @@ RED.utils = (function() {
267267
return element;
268268
}
269269

270+
function getNodeLabel(node,defaultLabel) {
271+
defaultLabel = defaultLabel||"";
272+
var l = node._def.label;
273+
try {
274+
l = (typeof l === "function" ? l.call(node) : l)||defaultLabel;
275+
} catch(err) {
276+
console.log("Definition error: "+node.type+".label",err);
277+
l = defaultLabel;
278+
}
279+
return RED.text.bidi.enforceTextDirectionWithUCC(l);
280+
}
281+
270282
return {
271283
createObjectElement: buildMessageElement,
284+
getNodeLabel: getNodeLabel
272285
}
273286
})();

editor/js/ui/view.js

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1725,14 +1725,7 @@ RED.view = (function() {
17251725
var node = d3.select(this);
17261726
var isLink = d.type === "link in" || d.type === "link out";
17271727
node.attr("id",d.id);
1728-
var l = d._def.label;
1729-
try {
1730-
l = (typeof l === "function" ? l.call(d) : l)||"";
1731-
} catch(err) {
1732-
console.log("Definition error: "+d.type+".label",err);
1733-
l = d.type;
1734-
}
1735-
1728+
var l = RED.utils.getNodeLabel(d);
17361729
if (isLink) {
17371730
d.w = node_height;
17381731
} else {
@@ -1920,13 +1913,7 @@ RED.view = (function() {
19201913
dirtyNodes[d.id] = d;
19211914
//if (d.x < -50) deleteSelection(); // Delete nodes if dragged back to palette
19221915
if (!isLink && d.resize) {
1923-
var l = d._def.label;
1924-
try {
1925-
l = (typeof l === "function" ? l.call(d) : l)||"";
1926-
} catch(err) {
1927-
console.log("Definition error: "+d.type+".label",err);
1928-
l = d.type;
1929-
}
1916+
var l = RED.utils.getNodeLabel(d);
19301917
var ow = d.w;
19311918
d.w = Math.max(node_width,gridSize*(Math.ceil((calculateTextWidth(l, "node_label", 50)+(d._def.inputs>0?7:0))/gridSize)) );
19321919
d.h = Math.max(node_height,(d.outputs||0) * 15);

0 commit comments

Comments
 (0)