',{class:"red-ui-search-result-node"}).appendTo(div);
var colour = def.color;
var icon_url = "arrow-in.png";
if (def.category === 'config') {
icon_url = "cog.png";
} else {
try {
icon_url = (typeof def.icon === "function" ? def.icon.call({}) : def.icon);
} catch(err) {
console.log("Definition error: "+object.type+".icon",err);
}
}
nodeDiv.css('backgroundColor',colour);
var iconContainer = $('
',{class:"palette_icon_container"}).appendTo(nodeDiv);
$('
',{class:"palette_icon",style:"background-image: url(icons/"+icon_url+")"}).appendTo(iconContainer);
var contentDiv = $('
',{class:"red-ui-search-result-description"}).appendTo(div);
var label = object.type;
if (typeof def.paletteLabel !== "undefined") {
try {
label = (typeof def.paletteLabel === "function" ? def.paletteLabel.call(def) : def.paletteLabel)||"";
label += " ("+object.type+")";
object.index += "|"+label.toLowerCase();
} catch(err) {
console.log("Definition error: "+object.type+".paletteLabel",err);
}
}
$('
',{class:"red-ui-search-result-node-label"}).html(label).appendTo(contentDiv);
div.click(function(evt) {
evt.preventDefault();
confirm(object);
});
},
scrollOnAdd: false
});
}
function confirm(def) {
hide();
addCallback(def.type);
}
function handleMouseActivity(evt) {
if (visible) {
var t = $(evt.target);
while (t.prop('nodeName').toLowerCase() !== 'body') {
if (t.attr('id') === 'red-ui-type-search') {
return;
}
t = t.parent();
}
hide(true);
}
}
function show(opts) {
if (!visible) {
RED.keyboard.add("*",/* ESCAPE */ 27,function(){hide();d3.event.preventDefault();});
if (dialog === null) {
createDialog();
}
visible = true;
setTimeout(function() {
$(document).on('mousedown.type-search',handleMouseActivity);
$(document).on('mouseup.type-search',handleMouseActivity);
$(document).on('click.type-search',handleMouseActivity);
},200);
} else {
dialog.hide();
searchResultsDiv.hide();
}
refreshTypeList();
addCallback = opts.add;
RED.events.emit("type-search:open");
//shade.show();
dialog.css({left:opts.x+"px",top:opts.y+"px"}).show();
searchResultsDiv.slideDown();
setTimeout(function() {
searchInput.focus();
},100);
}
function hide(fast) {
if (visible) {
RED.keyboard.remove(/* ESCAPE */ 27);
visible = false;
if (dialog !== null) {
searchResultsDiv.slideUp(fast?50:200,function() {
dialog.hide();
searchInput.searchBox('value','');
});
//shade.hide();
}
RED.events.emit("type-search:close");
RED.view.focus();
$(document).off('mousedown.type-search');
$(document).off('mouseup.type-search');
$(document).off('click.type-search');
}
}
function refreshTypeList() {
searchResults.editableList('empty');
searchInput.searchBox('value','');
selected = -1;
searchResults.parent().scrollTop(0);
var common = {
"debug" : false,
"inject" : false,
"function": false
};
var nodeTypes = RED.nodes.registry.getNodeTypes().filter(function(n) {
if (common.hasOwnProperty(n)) {
common[n] = true;
return false;
}
return true;
});
// Just in case a core node has been disabled
if (common["function"]) {
nodeTypes.unshift("function");
}
if (common["inject"]) {
nodeTypes.unshift("inject");
}
if (common["debug"]) {
nodeTypes.unshift("debug");
}
var i;
for (i=0;i