Skip to content

Commit

Permalink
Improve code readability
Browse files Browse the repository at this point in the history
  • Loading branch information
GuillaumeGomez committed Dec 22, 2019
1 parent 4ce2384 commit b677013
Showing 1 changed file with 37 additions and 43 deletions.
80 changes: 37 additions & 43 deletions src/librustdoc/html/static/main.js
Expand Up @@ -138,6 +138,22 @@ function getSearchElement() {
}
}

function showSearchResults(search) {
if (search === null || typeof search === 'undefined') {
search = getSearchElement();
}
addClass(main, "hidden");
removeClass(search, "hidden");
}

function hideSearchResults(search) {
if (search === null || typeof search === 'undefined') {
search = getSearchElement();
}
addClass(search, "hidden");
removeClass(main, "hidden");
}

// used for special search precedence
var TY_PRIMITIVE = itemTypes.indexOf("primitive");
var TY_KEYWORD = itemTypes.indexOf("keyword");
Expand Down Expand Up @@ -169,8 +185,7 @@ function getSearchElement() {
if (ev !== null && search && !hasClass(search, "hidden") && ev.newURL) {
// This block occurs when clicking on an element in the navbar while
// in a search.
addClass(search, "hidden");
removeClass(main, "hidden");
hideSearchResults(search);
var hash = ev.newURL.slice(ev.newURL.indexOf("#") + 1);
if (browserSupportsHistoryApi()) {
history.replaceState(hash, "", "?search=#" + hash);
Expand Down Expand Up @@ -324,16 +339,14 @@ function getSearchElement() {
}

function handleEscape(ev) {
debugger;
var help = getHelpElement();
var search = getSearchElement();
hideModal();
if (hasClass(help, "hidden") === false) {
displayHelp(false, ev, help);
} else if (hasClass(search, "hidden") === false) {
ev.preventDefault();
addClass(search, "hidden");
removeClass(main, "hidden");
hideSearchResults(search);
document.title = titleBeforeSearch;
}
defocusSearchBar();
Expand Down Expand Up @@ -1265,8 +1278,7 @@ function getSearchElement() {
}
dst = dst[0];
if (window.location.pathname === dst.pathname) {
addClass(getSearchElement(), "hidden");
removeClass(main, "hidden");
hideSearchResults();
document.location.href = dst.href;
}
};
Expand Down Expand Up @@ -1341,8 +1353,6 @@ function getSearchElement() {
e.preventDefault();
} else if (e.which === 16) { // shift
// Does nothing, it's just to avoid losing "focus" on the highlighted element.
} else if (e.which === 27) { // escape
handleEscape(e);
} else if (actives[currentTab].length > 0) {
removeClass(actives[currentTab][0], "highlighted");
}
Expand Down Expand Up @@ -1492,10 +1502,9 @@ function getSearchElement() {
"</div><div id=\"results\">" +
ret_others[0] + ret_in_args[0] + ret_returned[0] + "</div>";

addClass(main, "hidden");
var search = getSearchElement();
removeClass(search, "hidden");
search.innerHTML = output;
showSearchResults(search);
var tds = search.getElementsByTagName("td");
var td_width = 0;
if (tds.length > 0) {
Expand Down Expand Up @@ -1700,13 +1709,7 @@ function getSearchElement() {
if (browserSupportsHistoryApi()) {
history.replaceState("", window.currentCrate + " - Rust", "?search=");
}
if (hasClass(main, "content")) {
removeClass(main, "hidden");
}
var search_c = getSearchElement();
if (hasClass(search_c, "content")) {
addClass(search_c, "hidden");
}
hideSearchResults();
} else {
searchTimeout = setTimeout(search, 500);
}
Expand Down Expand Up @@ -1742,19 +1745,8 @@ function getSearchElement() {
// Store the previous <title> so we can revert back to it later.
var previousTitle = document.title;

window.onpopstate = function(e) {
window.addEventListener("popstate", function(e) {
var params = getQueryStringParams();
// When browsing back from search results the main page
// visibility must be reset.
if (!params.search) {
if (hasClass(main, "content")) {
removeClass(main, "hidden");
}
var search_c = getSearchElement();
if (hasClass(search_c, "content")) {
addClass(search_c, "hidden");
}
}
// Revert to the previous title manually since the History
// API ignores the title parameter.
document.title = previousTitle;
Expand All @@ -1766,18 +1758,21 @@ function getSearchElement() {
// perform the search. This will empty the bar if there's
// nothing there, which lets you really go back to a
// previous state with nothing in the bar.
if (params.search) {
if (params.search && params.search.length > 0) {
search_input.value = params.search;
// Some browsers fire "onpopstate" for every page load
// (Chrome), while others fire the event only when actually
// popping a state (Firefox), which is why search() is
// called both here and at the end of the startSearch()
// function.
search(e);
} else {
search_input.value = "";
// When browsing back from search results the main page
// visibility must be reset.
hideSearchResults();
}
// Some browsers fire "onpopstate" for every page load
// (Chrome), while others fire the event only when actually
// popping a state (Firefox), which is why search() is
// called both here and at the end of the startSearch()
// function.
search();
};
});
}
search();
}
Expand Down Expand Up @@ -2523,9 +2518,9 @@ function getSearchElement() {
}

function putBackSearch(search_input) {
if (search_input.value !== "") {
addClass(main, "hidden");
removeClass(getSearchElement(), "hidden");
var search = getSearchElement();
if (search_input.value !== "" && hasClass(search, "hidden")) {
showSearchResults(search);
if (browserSupportsHistoryApi()) {
history.replaceState(search_input.value,
"",
Expand All @@ -2542,10 +2537,9 @@ function getSearchElement() {

var params = getQueryStringParams();
if (params && params.search) {
addClass(main, "hidden");
var search = getSearchElement();
removeClass(search, "hidden");
search.innerHTML = "<h3 style=\"text-align: center;\">Loading search results...</h3>";
showSearchResults(search);
}

var sidebar_menu = document.getElementsByClassName("sidebar-menu")[0];
Expand Down

0 comments on commit b677013

Please sign in to comment.