app-overview
Version:
> A visualization of the application structure. See, read & learn the code, effortlessly.
58 lines (52 loc) • 1.36 kB
JavaScript
function findNodes(name) {
caseSensitivity = false;
if (!caseSensitivity) name = name.toLowerCase();
var found = [];
diagram.traverse(function(node) {
var nodename = node.name || node.data.name;
if (!caseSensitivity) nodename = nodename.toLowerCase();
if (nodename.search(name) !== -1) {
found.push(node);
}
}); // , diagram.root
console.log(found);
return found;
}
function showSearch() {
let jqSearch = $(`
<div id="container">
<div id="form">
<form action="#" class="entypo-search">
<fieldset><input id="search" placeholder="Search" /></fieldset>
</form>
</div>
</div>
`);
$(jqSearch).insertAfter("#switch");
$("#search").on("input", function(e) {
let inputText = $(e.delegateTarget).val();
console.log(inputText);
if (inputText.length > 0) {
let arrFoundNodes = findNodes(inputText);
highlight(arrFoundNodes);
} else removeHighlights();
});
}
function highlight(arrNodes) {
removeHighlights();
arrNodes.forEach(function(node) {
node.highlight = 1;
diagram.update(node, diagram.root);
});
}
function removeHighlights(exepArrNodes, doUpdate) {
diagram.traverse(function(node) {
delete node.highlight;
diagram.update(node, diagram.root);
}); // , diagram.root
}
(function($) {
$(document).ready(function() {
showSearch();
});
})(jQuery);