UNPKG

documon

Version:

A documentation system for mortals. Use with any language.

87 lines (67 loc) 1.7 kB
/* Part of Documon. Copyright (c) Michael Gieson. www.documon.net */ /** * Provides the search mechanism across the documentation. * * @class Search * @package documon */ this.documon = this.documon || {}; this.documon.Search = (function(){ var searchText; var searchButton; var searchResults; var searchPanel; function init(){ searchText = document.getElementById("searchText"); searchButton = document.getElementById("searchButton"); searchResults = document.getElementById("searchResults"); searchPanel = document.getElementById("searchPanel"); searchText.addEventListener("keyup", keyup); searchButton.addEventListener("click", doSearch); } function doSearch(e){ console.log("doSearch", doSearch); search(searchText.value); } function search(val){ var re = new RegExp(val, "im"); var newResults = ""; var found = []; for(var id in SearchData){ var str = SearchData[id]; if( re.test(str) ){ found.push(id); var data = documon.MenuTree.getDataById(id); if(data){ newResults += `<div class="searchResultLine" onclick="documon.Search.openSearchLink('${data.id}')">${data.id}</div>`; } } } if(newResults){ jbeeb.utils.Layout.expand( searchPanel ); } else { newResults = "Nothing Found"; } searchResults.innerHTML = newResults; } function openSearchLink(id){ var item = documon.MenuTree.openById(id, true, true); console.log("openSearchLink", item); //documon.PageManager.loadPage("select", item); } function keyup(e){ var code = e.which || e.keyCode; if(code == 13){ doSearch(); } } return { init :init, search : search, openSearchLink : openSearchLink } }());