Rollup merge of #49439 - GuillaumeGomez:trait-impl-collapse, r=QuietMisdreavus

Fix trait implementation not collapsing docs

r? @QuietMisdreavus
This commit is contained in:
kennytm
2018-03-28 17:55:16 +02:00
committed by GitHub

View File

@@ -1717,19 +1717,20 @@
// we are collapsing the impl block // we are collapsing the impl block
function implHider(addOrRemove) { function implHider(addOrRemove) {
return function(n) { return function(n) {
if (hasClass(n, "method")) { var is_method = hasClass(n, "method");
if (is_method || hasClass(n, "type")) {
if (is_method === true) {
if (addOrRemove) { if (addOrRemove) {
addClass(n, "hidden-by-impl-hider"); addClass(n, "hidden-by-impl-hider");
} else { } else {
removeClass(n, "hidden-by-impl-hider"); removeClass(n, "hidden-by-impl-hider");
} }
}
var ns = n.nextElementSibling; var ns = n.nextElementSibling;
while (true) { while (true) {
if (ns && ( if (ns && (
hasClass(ns, "docblock") || hasClass(ns, "docblock") ||
hasClass(ns, "stability") || hasClass(ns, "stability"))) {
false
)) {
if (addOrRemove) { if (addOrRemove) {
addClass(ns, "hidden-by-impl-hider"); addClass(ns, "hidden-by-impl-hider");
} else { } else {
@@ -1745,12 +1746,13 @@
} }
var relatedDoc = toggle.parentNode; var relatedDoc = toggle.parentNode;
var docblock = relatedDoc.nextElementSibling;
while (!hasClass(relatedDoc, "impl-items")) { while (!hasClass(relatedDoc, "impl-items")) {
relatedDoc = relatedDoc.nextElementSibling; relatedDoc = relatedDoc.nextElementSibling;
} }
if (!relatedDoc) { if (!relatedDoc && !hasClass(docblock, "docblock")) {
return; return;
} }
@@ -1758,7 +1760,8 @@
var action = mode; var action = mode;
if (action === "toggle") { if (action === "toggle") {
if (hasClass(relatedDoc, "fns-now-collapsed")) { if (hasClass(relatedDoc, "fns-now-collapsed") ||
hasClass(docblock, "hidden-by-impl-hider")) {
action = "show"; action = "show";
} else { } else {
action = "hide"; action = "hide";
@@ -1767,10 +1770,12 @@
if (action === "show") { if (action === "show") {
removeClass(relatedDoc, "fns-now-collapsed"); removeClass(relatedDoc, "fns-now-collapsed");
removeClass(docblock, "hidden-by-usual-hider");
onEach(toggle.childNodes, adjustToggle(false)); onEach(toggle.childNodes, adjustToggle(false));
onEach(relatedDoc.childNodes, implHider(false)); onEach(relatedDoc.childNodes, implHider(false));
} else if (action === "hide") { } else if (action === "hide") {
addClass(relatedDoc, "fns-now-collapsed"); addClass(relatedDoc, "fns-now-collapsed");
addClass(docblock, "hidden-by-usual-hider");
onEach(toggle.childNodes, adjustToggle(true)); onEach(toggle.childNodes, adjustToggle(true));
onEach(relatedDoc.childNodes, implHider(true)); onEach(relatedDoc.childNodes, implHider(true));
} }