"use strict"; const searchTree = (function() { const treeEl = $("#tree"); const searchInputEl = $("input[name='search-text']"); const resetSearchButton = $("button#reset-search-button"); const searchBoxEl = $("#search-box"); resetSearchButton.click(resetSearch); function showSearch() { searchBoxEl.show(); searchInputEl.focus(); } function toggleSearch() { if (searchBoxEl.is(":hidden")) { showSearch(); } else { resetSearch(); searchBoxEl.hide(); } } function resetSearch() { searchInputEl.val(""); getTree().clearFilter(); } function getTree() { return treeEl.fancytree('getTree'); } searchInputEl.keyup(e => { const searchText = searchInputEl.val(); if (e && e.which === $.ui.keyCode.ESCAPE || $.trim(searchText) === "") { resetSearchButton.click(); return; } if (e && e.which === $.ui.keyCode.ENTER) { server.get('notes?search=' + searchText).then(resp => { // Pass a string to perform case insensitive matching getTree().filterBranches(node => { return resp.includes(node.data.note_id); }); }); } }).focus(); $(document).bind('keydown', 'alt+s', showSearch); return { toggleSearch }; })();