From 039bd1ddc0f862a981df2295a1ff786454492f84 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Wed, 27 Sep 2017 17:05:18 +0100 Subject: [PATCH] Auto hide empty palette categories (#1395) to close #1382 --- editor/js/ui/palette.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/editor/js/ui/palette.js b/editor/js/ui/palette.js index b19190a3a..99d99a214 100644 --- a/editor/js/ui/palette.js +++ b/editor/js/ui/palette.js @@ -21,7 +21,7 @@ RED.palette = (function() { var categoryContainers = {}; - function createCategoryContainer(category, label){ + function createCategoryContainer(category, label) { label = (label || category).replace(/_/g, " "); var catDiv = $('
'+ '
'+label+'
'+ @@ -325,14 +325,26 @@ RED.palette = (function() { } } } + function hideNodeType(nt) { var nodeTypeId = escapeNodeType(nt); - $("#palette_node_"+nodeTypeId).hide(); + var paletteNode = $("#palette_node_"+nodeTypeId); + paletteNode.hide(); + var categoryNode = paletteNode.closest(".palette-category"); + var cl = categoryNode.find(".palette_node"); + var c = 0; + for (var i = 0; i < cl.length; i++) { + if ($(cl[i]).css('display') === 'none') { c += 1; } + } + if (c === cl.length) { categoryNode.hide(); } } function showNodeType(nt) { var nodeTypeId = escapeNodeType(nt); - $("#palette_node_"+nodeTypeId).show(); + var paletteNode = $("#palette_node_"+nodeTypeId); + var categoryNode = paletteNode.closest(".palette-category"); + categoryNode.show(); + paletteNode.show(); } function refreshNodeTypes() { @@ -396,7 +408,6 @@ RED.palette = (function() { RED.events.on('registry:node-type-removed', function(nodeType) { removeNodeType(nodeType); }); - RED.events.on('registry:node-set-enabled', function(nodeSet) { for (var j=0;j .palette-spinner").show(); $("#palette-search input").searchBox({