function hcSearchCategory(label, version) { // optional version filters search results for a single specific product version // currently can be used with OCP and OKD docs only // elements used repeatedly: var modalSearch = $("#hc-search-modal"); var searchBtn = $("#hc-search-btn"); var closeModal = $("#hc-modal-close"); var query = $("#hc-search-input"); // pressing enter in the input = search btn click query.keyup( function(event) { event.preventDefault(); if (event.keyCode == 13) { searchBtn.click(); } }); // open the modal and fetch the first set of results on click searchBtn.click(function() { if (query.val()) { // remove any results from previous searches $("#hc-search-results").empty(); var searchParams = { si: 0, q: query.val(), label: label, urlFilter: (typeof version === "undefined" || version == "Branch Build") ? "" : (" url:*\\/" + version + "\\/*") }; // work around the current OKD-specific version=4 and URL discrepancy if (window.location.href.includes("docs.okd.io/latest/") && version == 4) searchParams.urlFilter = " url:*\\/latest\\/*" modalSearch.show(); hcsearch(searchParams); } }); // hide search modal by 'X' or by clicking outside of the modal closeModal.click(function() { modalSearch.hide(); }); $(window).click(function(event) { if ($(event.target).is(modalSearch)) { modalSearch.hide(); } }); } // hcSearchCategory(label, version) // fetch search results function hcsearch(searchParams) { // elements used repeatedly var hcMoreBtn = $("#hc-search-more-btn"); var hcSearchIndicator = $("#hc-search-progress-indicator"); var hcSearchResult = $("#hc-search-results"); // the "searchprovider" is to return a JSON response in the expected format var searchprovider = "https://search.help.openshift.com/json"; var searchReq = { "q" : searchParams.q + searchParams.urlFilter, "fields.label" : searchParams.label, "start" : searchParams.si } hcMoreBtn.hide(); hcSearchIndicator.show(); $.get(searchprovider, searchReq).done(function (hcsearchresults) { // GET success if (hcsearchresults == "") { // success, but no response (response code mismatch) $("#hc-search-result").append("
An error occurred while retrieving search results. Please try again later.
"); hcSearchIndicator.hide(); } if (hcsearchresults.response.result) { // if there are any results $(hcsearchresults.response.result).each(function () { var row = '' + this.content_description.replace(/\
/g, ' ') + '
No more results.
"); } } else { if (searchParams.si > 0) { // no results reurned, but some already displayed hcSearchResult.append("No more results.
"); } else { // no results on initial search hcSearchResult.append("No results found. Try rewording your search.
"); } } hcSearchIndicator.hide(); }).fail(function(response) { // GET error hcSearchResult.append("An error occurred while retrieving search results. Please try again later.
"); hcSearchIndicator.hide(); }); } // function hcsearch()