diff --git a/webapp/src/main/webapp/themes/iph/js/toc.js b/webapp/src/main/webapp/themes/iph/js/toc.js new file mode 100644 index 00000000..7f5d4434 --- /dev/null +++ b/webapp/src/main/webapp/themes/iph/js/toc.js @@ -0,0 +1,34 @@ + document.addEventListener('DOMContentLoaded', createTOC(), false); + + function createTOC(){ + var complexDocElement = document.getElementById("complexDocument"); + var tocElement = document.getElementById("tocPlaceHolder"); + + if (complexDocElement === null || tocElement === null){ + console.log("no complex document or no placeholder"); + return; + } + addItemsToTOC(complexDocElement,tocElement) + } + function addItemsToTOC(docPart, tocElement){ + var docPartChilds = docPart.childNodes; + for (var i = 0; i < docPartChilds.length; i++){ + var docPartChild = docPartChilds[i]; + if ( docPartChild.nodeType === Node.ELEMENT_NODE && docPartChild.classList.contains("documentPart")){ + var tocElementChild = createTOCItem(docPartChild, tocElement); + addItemsToTOC(docPartChild,tocElementChild); + } + } + } + function createTOCItem(docPart, tocElement){ + var newTOCElement = document.createElement("div"); + var anchor = docPart.getAttribute('id'); + var docPartButton = docPart.previousElementSibling; + var itemName = docPartButton.textContent; + var link = document.createElement("a"); + link.setAttribute("href","#" + anchor); + link.innerText = itemName; + newTOCElement.appendChild(link); + tocElement.appendChild(newTOCElement); + return newTOCElement; + } \ No newline at end of file diff --git a/webapp/src/main/webapp/themes/iph/templates/text-lib.ftl b/webapp/src/main/webapp/themes/iph/templates/text-lib.ftl index a63819ba..fad4c505 100644 --- a/webapp/src/main/webapp/themes/iph/templates/text-lib.ftl +++ b/webapp/src/main/webapp/themes/iph/templates/text-lib.ftl @@ -53,7 +53,7 @@ #macro> <#macro arrangeDocumentParts > -