Skip to content

Commit

Permalink
Add delete unused config nodes button to config panel
Browse files Browse the repository at this point in the history
  • Loading branch information
Dave Conway-Jones committed May 23, 2018
1 parent 26bc142 commit c4d4961
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 16 deletions.
74 changes: 58 additions & 16 deletions editor/js/ui/tab-config.js
Expand Up @@ -15,17 +15,16 @@
**/
RED.sidebar.config = (function() {


var content = document.createElement("div");
content.className = "sidebar-node-config";

$('<div class="button-group sidebar-header">'+
'<a class="sidebar-header-button-toggle selected" id="workspace-config-node-filter-all" href="#"><span data-i18n="sidebar.config.filterAll"></span></a>'+
'<a class="sidebar-header-button-toggle" id="workspace-config-node-filter-unused" href="#"><span data-i18n="sidebar.config.filterUnused"></span></a> '+
'<a style="float:left;" class="sidebar-header-button-toggle selected" id="workspace-config-node-delete-all" href="#"><span data-i18n="sidebar.config.deleteUnused"></a>'+
'<a class="sidebar-header-button-toggle" id="workspace-config-node-filter-all" href="#"><span data-i18n="sidebar.config.filterAll"></span></a>'+
'<a class="sidebar-header-button-toggle selected" id="workspace-config-node-filter-unused" href="#"><span data-i18n="sidebar.config.filterUnused"></span></a> '+
'</div>'
).appendTo(content);


var toolbar = $('<div>'+
'<a class="sidebar-footer-button" id="workspace-config-node-collapse-all" href="#"><i class="fa fa-angle-double-up"></i></a> '+
'<a class="sidebar-footer-button" id="workspace-config-node-expand-all" href="#"><i class="fa fa-angle-double-down"></i></a>'+
Expand All @@ -36,7 +35,7 @@ RED.sidebar.config = (function() {
var subflowCategories = $("<div>").appendTo(content);

var showUnusedOnly = false;

var unused = [];
var categories = {};

function getOrCreateCategory(name,parent,label) {
Expand Down Expand Up @@ -110,12 +109,20 @@ RED.sidebar.config = (function() {
if (A.type > B.type) { return 1;}
return 0;
});

unused = nodes.filter(function(n) {
return n._def.hasUsers!==false && n.users.length === 0;
})

if (unused.length > 0) {
$('#workspace-config-node-delete-all').addClass("selected");
} else {
$('#workspace-config-node-delete-all').removeClass("selected");
}

if (showUnusedOnly) {
var hiddenCount = nodes.length;
nodes = nodes.filter(function(n) {
return n._def.hasUsers!==false && n.users.length === 0;
})
hiddenCount = hiddenCount - nodes.length;
var hiddenCount = nodes.length - unused.length;
nodes = unused;
if (hiddenCount > 0) {
list.parent().find('.config-node-filter-info').text(RED._('sidebar.config.filtered',{count:hiddenCount})).show();
} else {
Expand Down Expand Up @@ -244,27 +251,61 @@ RED.sidebar.config = (function() {
}
}
});
$("#workspace-config-node-delete-all").on("click", function(e) {
e.preventDefault();
unused.forEach(function(node) {
var configTypeDef = RED.nodes.getType(node.type);
if (configTypeDef.oneditdelete) {
configTypeDef.oneditdelete.call(node);
}
var historyEvent = {
t:'delete',
nodes:[node],
changes: {},
dirty: RED.nodes.dirty()
}
for (var i=0; i<node.users.length; i++) {
var user = node.users[i];
historyEvent.changes[user.id] = {
changed: user.changed,
valid: user.valid
};
for (var d in user._def.defaults) {
if (user._def.defaults.hasOwnProperty(d) && user[d] == configId) {
historyEvent.changes[user.id][d] = configId
user[d] = "";
user.changed = true;
user.dirty = true;
}
}
validateNode(user);
}
RED.nodes.remove(node.id);
RED.nodes.dirty(true);
RED.view.redraw(true);
RED.history.push(historyEvent);
});
});
$('#workspace-config-node-filter-all').on("click",function(e) {
e.preventDefault();
if (showUnusedOnly) {
$(this).addClass('selected');
$('#workspace-config-node-filter-unused').removeClass('selected');
$(this).removeClass('selected');
$('#workspace-config-node-filter-unused').addClass('selected');
showUnusedOnly = !showUnusedOnly;
refreshConfigNodeList();
}
});
$('#workspace-config-node-filter-unused').on("click",function(e) {
e.preventDefault();
if (!showUnusedOnly) {
$(this).addClass('selected');
$('#workspace-config-node-filter-all').removeClass('selected');
$(this).removeClass('selected');
$('#workspace-config-node-filter-all').addClass('selected');
showUnusedOnly = !showUnusedOnly;
refreshConfigNodeList();
}
});


}

function show(id) {
if (typeof id === 'boolean') {
if (id) {
Expand Down Expand Up @@ -306,6 +347,7 @@ RED.sidebar.config = (function() {
}
RED.sidebar.show("config");
}

return {
init:init,
show:show,
Expand Down
1 change: 1 addition & 0 deletions red/api/editor/locales/en-US/editor.json
Expand Up @@ -421,6 +421,7 @@
"flows": "flows",
"filterUnused":"unused",
"filterAll":"all",
"deleteUnused":"Delete unused",
"filtered": "__count__ hidden"
},
"palette": {
Expand Down

0 comments on commit c4d4961

Please sign in to comment.