1
Fork 0

Auto merge of #24973 - roryokane:fix-minus-doc-buttons, r=alexcrichton

My change in #24797 had a bug, described in that issue’s comments, and first discovered in issue #24918. This fixes it.

I tested this new `main.js` by changing the `main.js` content of [a rendered docs page](https://doc.rust-lang.org/std/option/) to this new content. The ‘[−]’ button worked again.

I am also including another related fix, because it would require manual merging if I made a separate pull request for it. The page-global ‘[−]’ button currently adds `#` to the end of the URL whenever it is clicked. I am changing its `href` from `#` to `javascript:void(0)` (the same as the `href` for section-specific ‘[−]’ links) to fix that.
This commit is contained in:
bors 2015-05-07 17:19:33 +00:00
commit f0ac7e04e6
3 changed files with 31 additions and 15 deletions

View file

@ -1460,7 +1460,9 @@ impl<'a> fmt::Display for Item<'a> {
try!(write!(fmt, "<span class='out-of-band'>")); try!(write!(fmt, "<span class='out-of-band'>"));
try!(write!(fmt, try!(write!(fmt,
r##"<span id='render-detail'> r##"<span id='render-detail'>
<a id="toggle-all-docs" href="#" title="collapse all docs">[&minus;]</a> <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
[<span class='inner'>&#x2212;</span>]
</a>
</span>"##)); </span>"##));
// Write `src` tag // Write `src` tag

View file

@ -581,7 +581,7 @@ pre.rust { position: relative; }
.collapse-toggle > .inner { .collapse-toggle > .inner {
display: inline-block; display: inline-block;
width: 1ch; width: 1.2ch;
text-align: center; text-align: center;
} }

View file

@ -806,22 +806,35 @@
window.location = $('.srclink').attr('href'); window.location = $('.srclink').attr('href');
} }
function labelForToggleButton(sectionIsCollapsed) {
if (sectionIsCollapsed) {
// button will expand the section
return "+";
} else {
// button will collapse the section
// note that this text is also set in the HTML template in render.rs
return "\u2212"; // "\u2212" is '' minus sign
}
}
$("#toggle-all-docs").on("click", function() { $("#toggle-all-docs").on("click", function() {
var toggle = $("#toggle-all-docs"); var toggle = $("#toggle-all-docs");
if (toggle.html() == "[&minus;]") { if (toggle.hasClass("will-expand")) {
toggle.html("[&plus;]"); toggle.removeClass("will-expand");
toggle.attr("title", "expand all docs"); toggle.children(".inner").text(labelForToggleButton(false));
$(".docblock").hide();
$(".toggle-label").show();
$(".toggle-wrapper").addClass("collapsed");
$(".collapse-toggle").children(".inner").html("&plus;");
} else {
toggle.html("[&minus;]");
toggle.attr("title", "collapse all docs"); toggle.attr("title", "collapse all docs");
$(".docblock").show(); $(".docblock").show();
$(".toggle-label").hide(); $(".toggle-label").hide();
$(".toggle-wrapper").removeClass("collapsed"); $(".toggle-wrapper").removeClass("collapsed");
$(".collapse-toggle").children(".inner").html("&minus;"); $(".collapse-toggle").children(".inner").text(labelForToggleButton(false));
} else {
toggle.addClass("will-expand");
toggle.children(".inner").text(labelForToggleButton(true));
toggle.attr("title", "expand all docs");
$(".docblock").hide();
$(".toggle-label").show();
$(".toggle-wrapper").addClass("collapsed");
$(".collapse-toggle").children(".inner").text(labelForToggleButton(true));
} }
}); });
@ -835,12 +848,12 @@
if (relatedDoc.is(":visible")) { if (relatedDoc.is(":visible")) {
relatedDoc.slideUp({duration:'fast', easing:'linear'}); relatedDoc.slideUp({duration:'fast', easing:'linear'});
toggle.parent(".toggle-wrapper").addClass("collapsed"); toggle.parent(".toggle-wrapper").addClass("collapsed");
toggle.children(".inner").html("&plus;"); toggle.children(".inner").text(labelForToggleButton(true));
toggle.children(".toggle-label").fadeIn(); toggle.children(".toggle-label").fadeIn();
} else { } else {
relatedDoc.slideDown({duration:'fast', easing:'linear'}); relatedDoc.slideDown({duration:'fast', easing:'linear'});
toggle.parent(".toggle-wrapper").removeClass("collapsed"); toggle.parent(".toggle-wrapper").removeClass("collapsed");
toggle.children(".inner").html("&minus;"); toggle.children(".inner").text(labelForToggleButton(false));
toggle.children(".toggle-label").hide(); toggle.children(".toggle-label").hide();
} }
} }
@ -848,7 +861,8 @@
$(function() { $(function() {
var toggle = $("<a/>", {'href': 'javascript:void(0)', 'class': 'collapse-toggle'}) var toggle = $("<a/>", {'href': 'javascript:void(0)', 'class': 'collapse-toggle'})
.html("[<span class='inner'>&minus;</span>]"); .html("[<span class='inner'></span>]");
toggle.children(".inner").text(labelForToggleButton(false));
$(".method").each(function() { $(".method").each(function() {
if ($(this).next().is(".docblock") || if ($(this).next().is(".docblock") ||