From fae8b3596141777f74facaa897fbd85be81c824d Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Fri, 29 Aug 2014 20:37:30 +0100 Subject: [PATCH] Allow spaces in node category names Fixes #361 --- public/red/ui/palette.js | 145 ++++++++++++++++++++------------------- 1 file changed, 73 insertions(+), 72 deletions(-) diff --git a/public/red/ui/palette.js b/public/red/ui/palette.js index 4e84f7ddb..f33ede1da 100644 --- a/public/red/ui/palette.js +++ b/public/red/ui/palette.js @@ -20,9 +20,9 @@ RED.palette = (function() { var core = ['input', 'output', 'function', 'social', 'storage', 'analysis', 'advanced']; function createCategoryContainer(category){ - + var escapedCategory = category.replace(" ","_"); $("#palette-container").append('
'+ - '
'+category+'
'+ + '
'+category.replace("_"," ")+'
'+ '
'+ '
'+ '
'+ @@ -41,76 +41,77 @@ RED.palette = (function() { } if (exclusion.indexOf(def.category)===-1) { - - var category = def.category.split("-"); - - var d = document.createElement("div"); - d.id = "palette_node_"+nt; - d.type = nt; - - var label = /^(.*?)([ -]in|[ -]out)?$/.exec(nt)[1]; - - d.innerHTML = '
'+label+"
"; - d.className="palette_node"; - if (def.icon) { - d.style.backgroundImage = "url(icons/"+def.icon+")"; - if (def.align == "right") { - d.style.backgroundPosition = "95% 50%"; - } else if (def.inputs > 0) { - d.style.backgroundPosition = "10% 50%"; - } - } - - d.style.backgroundColor = def.color; - - if (def.outputs > 0) { - var portOut = document.createElement("div"); - portOut.className = "palette_port palette_port_output"; - d.appendChild(portOut); - } - - if (def.inputs > 0) { - var portIn = document.createElement("div"); - portIn.className = "palette_port"; - d.appendChild(portIn); - } - - if ($("#palette-base-category-"+category[0]).length === 0){ - createCategoryContainer(category[0]); - } - - if ($("#palette-"+def.category).length === 0) { - $("#palette-base-category-"+category[0]).append('
'); - } - - $("#palette-"+def.category).append(d); - d.onmousedown = function(e) { e.preventDefault(); } - - $(d).popover({ - title:d.type, - placement:"right", - trigger: "hover", - delay: { show: 750, hide: 50 }, - html: true, - container:'body', - content: $(($("script[data-help-name|='"+nt+"']").html()||"

no information available

").trim())[0] - }); - $(d).click(function() { - var help = '
'+($("script[data-help-name|='"+d.type+"']").html()||"")+"
"; - $("#tab-info").html(help); - }); - $(d).draggable({ - helper: 'clone', - appendTo: 'body', - revert: true, - revertDuration: 50 - }); - - $("#header-"+category[0]).off('click').on('click', function(e) { - $(this).next().slideToggle(); - $(this).children("i").toggleClass("expanded"); - }); - + + var category = def.category.replace(" ","_"); + var rootCategory = category.split("-")[0]; + + var d = document.createElement("div"); + d.id = "palette_node_"+nt; + d.type = nt; + + var label = /^(.*?)([ -]in|[ -]out)?$/.exec(nt)[1]; + + d.innerHTML = '
'+label+"
"; + d.className="palette_node"; + if (def.icon) { + d.style.backgroundImage = "url(icons/"+def.icon+")"; + if (def.align == "right") { + d.style.backgroundPosition = "95% 50%"; + } else if (def.inputs > 0) { + d.style.backgroundPosition = "10% 50%"; + } + } + + d.style.backgroundColor = def.color; + + if (def.outputs > 0) { + var portOut = document.createElement("div"); + portOut.className = "palette_port palette_port_output"; + d.appendChild(portOut); + } + + if (def.inputs > 0) { + var portIn = document.createElement("div"); + portIn.className = "palette_port"; + d.appendChild(portIn); + } + + if ($("#palette-base-category-"+rootCategory).length === 0) { + createCategoryContainer(rootCategory); + } + + if ($("#palette-"+category).length === 0) { + $("#palette-base-category-"+rootCategory).append('
'); + } + + $("#palette-"+category).append(d); + d.onmousedown = function(e) { e.preventDefault(); } + + $(d).popover({ + title:d.type, + placement:"right", + trigger: "hover", + delay: { show: 750, hide: 50 }, + html: true, + container:'body', + content: $(($("script[data-help-name|='"+nt+"']").html()||"

no information available

").trim())[0] + }); + $(d).click(function() { + var help = '
'+($("script[data-help-name|='"+d.type+"']").html()||"")+"
"; + $("#tab-info").html(help); + }); + $(d).draggable({ + helper: 'clone', + appendTo: 'body', + revert: true, + revertDuration: 50 + }); + + $("#header-"+category[0]).off('click').on('click', function(e) { + $(this).next().slideToggle(); + $(this).children("i").toggleClass("expanded"); + }); + } }