Skip to content

Commit 45bb03f

Browse files
Save selected search tab
1 parent af7de7b commit 45bb03f

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

src/librustdoc/html/static/main.js

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,13 @@
3939
"associatedconstant",
4040
"union"];
4141

42+
// On the search screen, so you remain on the last tab you opened.
43+
//
44+
// 0 for "Types/modules"
45+
// 1 for "As parameters"
46+
// 2 for "As return value"
47+
var currentTab = 0;
48+
4249
function hasClass(elem, className) {
4350
if (elem && className && elem.className) {
4451
var elemClass = elem.className;
@@ -747,7 +754,7 @@
747754

748755
var output = '';
749756
if (array.length > 0) {
750-
output = `<table class="search-results"${extraStyle}>`;
757+
output = '<table class="search-results"' + extraStyle + '>';
751758
var shown = [];
752759

753760
array.forEach(function(item) {
@@ -801,24 +808,32 @@
801808
});
802809
output += '</table>';
803810
} else {
804-
output = `<div class="search-failed"${extraStyle}>No results :(<br/>` +
811+
output = '<div class="search-failed"' + extraStyle + '>No results :(<br/>' +
805812
'Try on <a href="https://duckduckgo.com/?q=' +
806813
encodeURIComponent('rust ' + query.query) +
807814
'">DuckDuckGo</a>?</div>';
808815
}
809816
return output;
810817
}
811818

819+
function makeTabHeader(tabNb, text) {
820+
if (currentTab === tabNb) {
821+
return '<div class="selected">' + text + '</div>';
822+
}
823+
return '<div>' + text + '</div>';
824+
}
825+
812826
function showResults(results) {
813827
var output, query = getQuery();
814828

815829
currentResults = query.id;
816830
output = '<h1>Results for ' + escape(query.query) +
817831
(query.type ? ' (type: ' + escape(query.type) + ')' : '') + '</h1>' +
818832
'<div id="titles">' +
819-
'<div class="selected">Types/modules</div>' +
820-
'<div>As parameters</div>' +
821-
'<div>As return value</div></div><div id="results">';
833+
makeTabHeader(0, "Types/modules") +
834+
makeTabHeader(1, "As parameters") +
835+
makeTabHeader(2, "As return value") +
836+
'</div><div id="results">';
822837

823838
output += addTab(results['others'], query);
824839
output += addTab(results['in_args'], query, false);
@@ -1394,6 +1409,9 @@
13941409

13951410
// In the search display, allows to switch between tabs.
13961411
function printTab(nb) {
1412+
if (nb === 0 || nb === 1 || nb === 2) {
1413+
currentTab = nb;
1414+
}
13971415
var nb_copy = nb;
13981416
onEach(document.getElementById('titles').childNodes, function(elem) {
13991417
if (nb_copy === 0) {

0 commit comments

Comments
 (0)