1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Fix palette node id handling so search works

Fixes #2173
This commit is contained in:
Nick O'Leary 2019-05-24 22:13:21 +01:00
parent abaf363ddd
commit b105a12505
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9
3 changed files with 24 additions and 33 deletions

View File

@ -87,6 +87,7 @@
that._trigger("change");
},this.options.delay);
} else {
this.lastSent = this.element.val();
this._trigger("change");
}
}

View File

@ -149,13 +149,11 @@ RED.palette = (function() {
RED.utils.createIconElement(icon_url, iconContainer, true);
}
function escapeNodeType(nt) {
return nt.replace(" ","_").replace(".","_").replace(":","_");
function getPaletteNode(type) {
return $(".red-ui-palette-node[data-palette-type='"+type+"']");
}
function addNodeType(nt,def) {
var nodeTypeId = escapeNodeType(nt);
if ($("#red-ui-palette-node_"+nodeTypeId).length) {
if (getPaletteNode(nt).length) {
return;
}
if (exclusion.indexOf(def.category)===-1) {
@ -164,9 +162,7 @@ RED.palette = (function() {
var category = def.category.replace(/ /g,"_");
var rootCategory = category.split("-")[0];
var d = document.createElement("div");
d.id = "red-ui-palette-node_"+nodeTypeId;
d.type = nt;
var d = $('<div>',{class:"red-ui-palette-node"}).attr("data-palette-type",nt).data('category',rootCategory);
var label = /^(.*?)([ -]in|[ -]out)?$/.exec(nt)[1];
if (typeof def.paletteLabel !== "undefined") {
@ -182,7 +178,6 @@ RED.palette = (function() {
+ (((!def.align && def.inputs !== 0 && def.outputs === 0) || "right" === def.align) ? " red-ui-palette-label-right" : "")
}).appendTo(d);
d.className="red-ui-palette-node";
if (def.icon) {
var icon_url = RED.utils.getNodeIcon(def);
@ -193,36 +188,35 @@ RED.palette = (function() {
RED.utils.createIconElement(icon_url, iconContainer, true);
}
d.style.backgroundColor = RED.utils.getNodeColor(nt,def);
d.css("backgroundColor", RED.utils.getNodeColor(nt,def));
if (def.outputs > 0) {
var portOut = document.createElement("div");
portOut.className = "red-ui-palette-port red-ui-palette-port-output";
d.appendChild(portOut);
d.append(portOut);
}
if (def.inputs > 0) {
var portIn = document.createElement("div");
portIn.className = "red-ui-palette-port red-ui-palette-port-input";
d.appendChild(portIn);
d.append(portIn);
}
createCategory(def.category,rootCategory,category,(coreCategories.indexOf(rootCategory) !== -1)?"node-red":def.set.id);
$("#red-ui-palette-"+category).append(d);
$(d).data('category',rootCategory);
d.onmousedown = function(e) { e.preventDefault(); };
d.on("mousedown", function(e) { e.preventDefault();});
var popover = RED.popover.create({
target:$(d),
target:d,
trigger: "hover",
width: "300px",
content: "hi",
delay: { show: 750, hide: 50 }
});
$(d).data('popover',popover);
d.data('popover',popover);
// $(d).popover({
// title:d.type,
@ -232,7 +226,7 @@ RED.palette = (function() {
// html: true,
// container:'body'
// });
$(d).on("click", function() {
d.on("click", function() {
RED.view.focus();
var helpText;
if (nt.indexOf("subflow:") === 0) {
@ -330,13 +324,13 @@ RED.palette = (function() {
var nodeInfo = null;
if (nt.indexOf("subflow:") === 0) {
$(d).on("dblclick", function(e) {
d.on("dblclick", function(e) {
RED.workspaces.show(nt.substring(8));
e.preventDefault();
});
nodeInfo = marked(def.info||"");
}
setLabel(nt,$(d),label,nodeInfo);
setLabel(nt,d,label,nodeInfo);
var categoryNode = $("#red-ui-palette-container-"+rootCategory);
if (categoryNode.find(".red-ui-palette-node").length === 1) {
@ -347,8 +341,7 @@ RED.palette = (function() {
}
function removeNodeType(nt) {
var nodeTypeId = escapeNodeType(nt);
var paletteNode = $("#red-ui-palette-node_"+nodeTypeId);
var paletteNode = getPaletteNode(nt);
var categoryNode = paletteNode.closest(".red-ui-palette-category");
paletteNode.remove();
if (categoryNode.find(".red-ui-palette-node").length === 0) {
@ -360,8 +353,7 @@ RED.palette = (function() {
}
function hideNodeType(nt) {
var nodeTypeId = escapeNodeType(nt);
var paletteNode = $("#red-ui-palette-node_"+nodeTypeId);
var paletteNode = getPaletteNode(nt);
paletteNode.hide();
var categoryNode = paletteNode.closest(".red-ui-palette-category");
var cl = categoryNode.find(".red-ui-palette-node");
@ -373,8 +365,7 @@ RED.palette = (function() {
}
function showNodeType(nt) {
var nodeTypeId = escapeNodeType(nt);
var paletteNode = $("#red-ui-palette-node_"+nodeTypeId);
var paletteNode = getPaletteNode(nt);
var categoryNode = paletteNode.closest(".red-ui-palette-category");
categoryNode.show();
paletteNode.show();
@ -382,7 +373,7 @@ RED.palette = (function() {
function refreshNodeTypes() {
RED.nodes.eachSubflow(function(sf) {
var paletteNode = $("#red-ui-palette-node_subflow_"+sf.id.replace(".","_"));
var paletteNode = getPaletteNode('subflow:'+sf.id);
var portInput = paletteNode.find(".red-ui-palette-port-input");
var portOutput = paletteNode.find(".red-ui-palette-port-output");
@ -396,7 +387,6 @@ RED.palette = (function() {
+ (((!sf._def.align && sf.in.length !== 0 && sf.out.length === 0) || "right" === sf._def.align) ? " red-ui-palette-icon-container-right" : "")
);
if (portInput.length === 0 && sf.in.length > 0) {
var portIn = document.createElement("div");
portIn.className = "red-ui-palette-port red-ui-palette-port-input";
@ -446,7 +436,8 @@ RED.palette = (function() {
var re = new RegExp(val.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'),'i');
$("#red-ui-palette-container .red-ui-palette-node").each(function(i,el) {
var currentLabel = $(el).find(".red-ui-palette-label").text();
if (val === "" || re.test(el.id) || re.test(currentLabel)) {
var type = $(el).attr("data-palette-type");
if (val === "" || re.test(type) || re.test(currentLabel)) {
$(this).show();
} else {
$(this).hide();
@ -459,8 +450,10 @@ RED.palette = (function() {
.find(".red-ui-palette-node")
.filter(function() { return $(this).css('display') !== 'none'}).length === 0) {
categoryContainers[category].close();
categoryContainers[category].container.slideUp();
} else {
categoryContainers[category].open();
categoryContainers[category].container.show();
}
}
}
@ -539,9 +532,6 @@ RED.palette = (function() {
sidebarControls.hide();
})
var categoryList = coreCategories;
if (RED.settings.paletteCategories) {
categoryList = RED.settings.paletteCategories;

View File

@ -328,7 +328,7 @@ RED.view = (function() {
accept:".red-ui-palette-node",
drop: function( event, ui ) {
d3.event = event;
var selected_tool = ui.draggable[0].type;
var selected_tool = $(ui.draggable[0]).attr("data-palette-type");
var result = addNode(selected_tool);
if (!result) {
return;