Skip to content

Commit

Permalink
Auto merge of #62941 - GuillaumeGomez:save-crate-filter, r=Mark-Simul…
Browse files Browse the repository at this point in the history
…acrum

Save crate filtering on rustdoc

Fixes #62929.

I added a hashmap and a hash encoding for the current crate list in case you have multiple crates handling on a same website (who talked about docs.rs?!). Like that, for each context, you have the filter crate selected.

r? @QuietMisdreavus
  • Loading branch information
bors committed Aug 28, 2019
2 parents 17e73e8 + 06228d3 commit 0414dfa
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
20 changes: 18 additions & 2 deletions src/librustdoc/html/static/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,21 @@ if (!DOMTokenList.prototype.remove) {
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
Expand Down Expand Up @@ -1658,9 +1673,10 @@ if (!DOMTokenList.prototype.remove) {
};
search_input.onpaste = search_input.onchange;

var selectCrate = document.getElementById('crate-search');
var selectCrate = document.getElementById("crate-search");
if (selectCrate) {
selectCrate.onchange = function() {
updateLocalStorage("rustdoc-saved-filter-crate", selectCrate.value);
search(undefined, true);
};
}
Expand Down Expand Up @@ -2496,7 +2512,7 @@ if (!DOMTokenList.prototype.remove) {
}

function addSearchOptions(crates) {
var elem = document.getElementById('crate-search');
var elem = document.getElementById("crate-search");

if (!elem) {
return;
Expand Down
2 changes: 1 addition & 1 deletion src/librustdoc/html/static/storage.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ function onEachLazy(lazyArray, func, reversed) {

function usableLocalStorage() {
// Check if the browser supports localStorage at all:
if (typeof(Storage) === "undefined") {
if (typeof Storage === "undefined") {
return false;
}
// Check if we can access it; this access will fail if the browser
Expand Down

0 comments on commit 0414dfa

Please sign in to comment.