1
Fork 0

Rollup merge of #66514 - GuillaumeGomez:fix-search-filter-save, r=kinnison

Fix selected crate search filter

Fixes #62929.

r? @kinnison
This commit is contained in:
Mazdak Farrokhzad 2019-11-20 18:32:10 +01:00 committed by GitHub
commit 4bd9168d7f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 16 deletions

View file

@ -882,7 +882,9 @@ themePicker.onblur = handleThemeButtonsBlur;
v.push_str(&minify_replacer(
&format!("{}\n{}", variables.join(""), all_indexes.join("\n")),
options.enable_minification));
v.push_str("initSearch(searchIndex);addSearchOptions(searchIndex);");
// "addSearchOptions" has to be called first so the crate filtering can be set before the
// search might start (if it's set into the URL for example).
v.push_str("addSearchOptions(searchIndex);initSearch(searchIndex);");
cx.shared.fs.write(&dst, &v)?;
}
if options.enable_index_page {

View file

@ -521,21 +521,6 @@ function getSearchElement() {
var OUTPUT_DATA = 1;
var params = getQueryStringParams();
// Set the crate filter from saved storage, if the current page has the saved crate filter.
//
// If not, ignore the crate filter -- we want to support filtering for crates on sites like
// doc.rust-lang.org where the crates may differ from page to page while on the same domain.
var savedCrate = getCurrentValue("rustdoc-saved-filter-crate");
if (savedCrate !== null) {
onEachLazy(document.getElementById("crate-search").getElementsByTagName("option"),
function(e) {
if (e.value === savedCrate) {
document.getElementById("crate-search").value = e.value;
return true;
}
});
}
// Populate search bar with query string search term when provided,
// but only if the input bar is empty. This avoid the obnoxious issue
// where you start trying to do a search, and the index loads, and
@ -2629,11 +2614,21 @@ function getSearchElement() {
}
return 0;
});
var savedCrate = getCurrentValue("rustdoc-saved-filter-crate");
for (var i = 0; i < crates_text.length; ++i) {
var option = document.createElement("option");
option.value = crates_text[i];
option.innerText = crates_text[i];
elem.appendChild(option);
// Set the crate filter from saved storage, if the current page has the saved crate
// filter.
//
// If not, ignore the crate filter -- we want to support filtering for crates on sites
// like doc.rust-lang.org where the crates may differ from page to page while on the
// same domain.
if (crates_text[i] === savedCrate) {
elem.value = savedCrate;
}
}
if (search_input) {