From b49f1694745c95442b15e0bba5fa5679c4e2161d Mon Sep 17 00:00:00 2001 From: Georgy Litvinov Date: Fri, 5 Mar 2021 00:04:59 +0100 Subject: [PATCH] Open parent document parts when go to part from TOC --- webapp/src/main/webapp/themes/iph/js/toc.js | 25 +++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/webapp/src/main/webapp/themes/iph/js/toc.js b/webapp/src/main/webapp/themes/iph/js/toc.js index 7f5d4434..8200dc0e 100644 --- a/webapp/src/main/webapp/themes/iph/js/toc.js +++ b/webapp/src/main/webapp/themes/iph/js/toc.js @@ -26,9 +26,30 @@ var docPartButton = docPart.previousElementSibling; var itemName = docPartButton.textContent; var link = document.createElement("a"); - link.setAttribute("href","#" + anchor); + link.setAttribute("href", "javascript:goToDocumentPart(\"" + anchor + "\");" ); link.innerText = itemName; newTOCElement.appendChild(link); tocElement.appendChild(newTOCElement); return newTOCElement; - } \ No newline at end of file + } + function goToDocumentPart(targetId){ + if (targetId ===""){ + return; + } + var targetNode = document.getElementById(targetId); + if (targetNode === null){ + console.log("document has no target node to go to") + return; + } + showParents(targetNode); + document.getElementById(targetId).scrollIntoView(); + } + function showParents(targetNode){ + if (targetNode != null && "complexDocument" !== targetNode.id){ + if (targetNode.style.display === "none") { + targetNode.style.display = "block"; + } + showParents(targetNode.parentElement); + } + } + \ No newline at end of file