diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-11-20 18:32:10 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-11-20 18:32:10 +0100 |
| commit | 4bd9168d7f9ed51291e7df4eed6bc7f7a928fb23 (patch) | |
| tree | f2c45146a93236599116c7608f7976450a6babac | |
| parent | 5a84f9b86ec3e2b5b6393faebeeaa96dc6c21192 (diff) | |
| parent | 00ef5c1b9877c309fc4814fa2f0c8022266feee6 (diff) | |
| download | rust-4bd9168d7f9ed51291e7df4eed6bc7f7a928fb23.tar.gz rust-4bd9168d7f9ed51291e7df4eed6bc7f7a928fb23.zip | |
Rollup merge of #66514 - GuillaumeGomez:fix-search-filter-save, r=kinnison
Fix selected crate search filter Fixes #62929. r? @kinnison
| -rw-r--r-- | src/librustdoc/html/render.rs | 4 | ||||
| -rw-r--r-- | src/librustdoc/html/static/main.js | 25 |
2 files changed, 13 insertions, 16 deletions
diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 2fa56f58512..bd2a6602e16 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -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 { diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index 7e6666d5904..cc0f470b349 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -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) { |
