gecko-dev/dom/xml/test/old/toc/toc.js
Birunthan Mohanathas 0c516988d6 Bug 946065 - Part 6: Move content/xml/ to dom/ and flatten subdirectories. r=jst
--HG--
rename : content/xml/content/src/CDATASection.cpp => dom/xml/CDATASection.cpp
rename : content/xml/content/src/CDATASection.h => dom/xml/CDATASection.h
rename : content/xml/content/src/ProcessingInstruction.cpp => dom/xml/ProcessingInstruction.cpp
rename : content/xml/content/src/ProcessingInstruction.h => dom/xml/ProcessingInstruction.h
rename : content/xml/document/src/XMLDocument.cpp => dom/xml/XMLDocument.cpp
rename : content/xml/document/src/XMLDocument.h => dom/xml/XMLDocument.h
rename : content/xml/content/src/XMLStylesheetProcessingInstruction.cpp => dom/xml/XMLStylesheetProcessingInstruction.cpp
rename : content/xml/content/src/XMLStylesheetProcessingInstruction.h => dom/xml/XMLStylesheetProcessingInstruction.h
rename : content/xml/document/crashtests/136896-1.xml => dom/xml/crashtests/136896-1.xml
rename : content/xml/document/crashtests/185285-1.xml => dom/xml/crashtests/185285-1.xml
rename : content/xml/document/crashtests/382636-1.xml => dom/xml/crashtests/382636-1.xml
rename : content/xml/document/crashtests/382636-2.svg => dom/xml/crashtests/382636-2.svg
rename : content/xml/document/crashtests/382636-3.xhtml => dom/xml/crashtests/382636-3.xhtml
rename : content/xml/document/crashtests/382636-4.xul => dom/xml/crashtests/382636-4.xul
rename : content/xml/content/crashtest/420429.xul => dom/xml/crashtests/420429.xul
rename : content/xml/document/crashtests/431703-1.xhtml => dom/xml/crashtests/431703-1.xhtml
rename : content/xml/content/crashtest/453278-frame.xml => dom/xml/crashtests/453278-frame.xml
rename : content/xml/content/crashtest/453278.html => dom/xml/crashtests/453278.html
rename : content/xml/content/crashtest/803586.xhtml => dom/xml/crashtests/803586.xhtml
rename : content/xml/document/crashtests/994740-1.xhtml => dom/xml/crashtests/994740-1.xhtml
rename : content/xml/document/crashtests/crashtests.list => dom/xml/crashtests/crashtests.list
rename : content/xml/document/crashtests/tree.gif => dom/xml/crashtests/tree.gif
rename : content/xml/content/src/htmlmathml-f.ent => dom/xml/htmlmathml-f.ent
rename : content/xml/content/src/moz.build => dom/xml/moz.build
rename : content/xml/document/public/nsIXMLContentSink.h => dom/xml/nsIXMLContentSink.h
rename : content/xml/document/src/nsXMLContentSink.cpp => dom/xml/nsXMLContentSink.cpp
rename : content/xml/document/src/nsXMLContentSink.h => dom/xml/nsXMLContentSink.h
rename : content/xml/content/src/nsXMLElement.cpp => dom/xml/nsXMLElement.cpp
rename : content/xml/content/src/nsXMLElement.h => dom/xml/nsXMLElement.h
rename : content/xml/document/src/nsXMLFragmentContentSink.cpp => dom/xml/nsXMLFragmentContentSink.cpp
rename : content/xml/document/src/nsXMLPrettyPrinter.cpp => dom/xml/nsXMLPrettyPrinter.cpp
rename : content/xml/document/src/nsXMLPrettyPrinter.h => dom/xml/nsXMLPrettyPrinter.h
rename : content/xml/document/resources/XMLMonoPrint.css => dom/xml/resources/XMLMonoPrint.css
rename : content/xml/document/resources/XMLPrettyPrint.css => dom/xml/resources/XMLPrettyPrint.css
rename : content/xml/document/resources/XMLPrettyPrint.xml => dom/xml/resources/XMLPrettyPrint.xml
rename : content/xml/document/resources/XMLPrettyPrint.xsl => dom/xml/resources/XMLPrettyPrint.xsl
rename : content/xml/document/resources/jar.mn => dom/xml/resources/jar.mn
rename : content/xml/document/resources/moz.build => dom/xml/resources/moz.build
rename : content/xml/document/test/file_bug293347.xml => dom/xml/test/file_bug293347.xml
rename : content/xml/document/test/file_bug293347xslt.xml => dom/xml/test/file_bug293347xslt.xml
rename : content/xml/document/test/mochitest.ini => dom/xml/test/mochitest.ini
rename : content/xml/document/test/moz.build => dom/xml/test/moz.build
rename : content/xml/tests/books/bethlehem.gif => dom/xml/test/old/books/bethlehem.gif
rename : content/xml/tests/books/bill.gif => dom/xml/test/old/books/bill.gif
rename : content/xml/tests/books/books.js => dom/xml/test/old/books/books.js
rename : content/xml/tests/books/books.xml => dom/xml/test/old/books/books.xml
rename : content/xml/tests/books/charing.gif => dom/xml/test/old/books/charing.gif
rename : content/xml/tests/books/classic.css => dom/xml/test/old/books/classic.css
rename : content/xml/tests/books/common.css => dom/xml/test/old/books/common.css
rename : content/xml/tests/books/kerouac.gif => dom/xml/test/old/books/kerouac.gif
rename : content/xml/tests/books/list.css => dom/xml/test/old/books/list.css
rename : content/xml/tests/books/road.gif => dom/xml/test/old/books/road.gif
rename : content/xml/tests/books/welville.gif => dom/xml/test/old/books/welville.gif
rename : content/xml/tests/docbook.css => dom/xml/test/old/docbook.css
rename : content/xml/tests/docbooktest.xml => dom/xml/test/old/docbooktest.xml
rename : content/xml/tests/flamer.gif => dom/xml/test/old/flamer.gif
rename : content/xml/tests/load/display.css => dom/xml/test/old/load/display.css
rename : content/xml/tests/load/display.xml => dom/xml/test/old/load/display.xml
rename : content/xml/tests/load/load.html => dom/xml/test/old/load/load.html
rename : content/xml/tests/load/loadauth.html => dom/xml/test/old/load/loadauth.html
rename : content/xml/tests/load/loaddisplay.html => dom/xml/test/old/load/loaddisplay.html
rename : content/xml/tests/load/test.xml => dom/xml/test/old/load/test.xml
rename : content/xml/tests/script.xml => dom/xml/test/old/script.xml
rename : content/xml/tests/simple.xml => dom/xml/test/old/simple.xml
rename : content/xml/tests/toc/book.css => dom/xml/test/old/toc/book.css
rename : content/xml/tests/toc/irslogo.gif => dom/xml/test/old/toc/irslogo.gif
rename : content/xml/tests/toc/minus.gif => dom/xml/test/old/toc/minus.gif
rename : content/xml/tests/toc/plus.gif => dom/xml/test/old/toc/plus.gif
rename : content/xml/tests/toc/rights.xml => dom/xml/test/old/toc/rights.xml
rename : content/xml/tests/toc/toc.css => dom/xml/test/old/toc/toc.css
rename : content/xml/tests/toc/toc.js => dom/xml/test/old/toc/toc.js
rename : content/xml/tests/xlink/auto.xml => dom/xml/test/old/xlink/auto.xml
rename : content/xml/tests/xlink/link.css => dom/xml/test/old/xlink/link.css
rename : content/xml/tests/xlink/manual.xml => dom/xml/test/old/xlink/manual.xml
rename : content/xml/tests/xmlbase/xmlbase.css => dom/xml/test/old/xmlbase/xmlbase.css
rename : content/xml/tests/xmlbase/xmlbase.xml => dom/xml/test/old/xmlbase/xmlbase.xml
rename : content/xml/document/test/test_bug232004.xhtml => dom/xml/test/test_bug232004.xhtml
rename : content/xml/document/test/test_bug293347.html => dom/xml/test/test_bug293347.html
rename : content/xml/document/test/test_bug343870.xhtml => dom/xml/test/test_bug343870.xhtml
rename : content/xml/document/test/test_bug355213.xhtml => dom/xml/test/test_bug355213.xhtml
rename : content/xml/document/test/test_bug392338.html => dom/xml/test/test_bug392338.html
rename : content/xml/document/test/test_bug399502.xhtml => dom/xml/test/test_bug399502.xhtml
rename : content/xml/document/test/test_bug445330.html => dom/xml/test/test_bug445330.html
rename : content/xml/document/test/test_bug691215.html => dom/xml/test/test_bug691215.html
rename : content/xml/document/test/test_viewport.xhtml => dom/xml/test/test_viewport.xhtml
2014-07-25 14:15:35 -07:00

117 lines
4 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// Event handler for display togglers in Table of Contents
function toggleDisplay(event)
{
if (event.target.localName != "img")
return;
var img = event.target;
var div = img.nextSibling.nextSibling;
// Change the display: property of the container to
// hide and show the container.
if (div.style.display == "none") {
div.style.display = "block";
img.src = "minus.gif";
}
else {
div.style.display = "none";
img.src = "plus.gif";
}
}
// Function that recurses down the tree, looking for
// structural elements. For each structural element,
// a corresponding element is created in the table of
// contents.
var searchTags = new Array("book", "chapter", "section");
var tocTags = new Array("level1", "level2", "level3");
function addToToc(root, tocFrame)
{
var i;
var newTocFrame = tocFrame;
var newTocElement = null;
var newTocLink = null;
for (i=0; i < searchTags.length; i++) {
if (root.tagName == searchTags[i]) {
// If we've found a structural element, create the
// equivalent TOC element.
newTocElement = document.createElement(tocTags[i]);
// Create the toclink element that is a link to the
// corresponding structural element.
newTocLink = document.createElement("toclink");
newTocLink.setAttributeNS("http://www.w3.org/1999/xlink","xlink:type", "simple");
newTocLink.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href", "#"+ root.getAttribute("id"));
newTocLink.setAttributeNS("http://www.w3.org/1999/xlink","xlink:show", "replace");
newTocElement.appendChild(newTocLink);
// Create the image and toggling container in the table of contents
if (i < searchTags.length-1) {
var img = document.createElementNS("http://www.w3.org/1999/xhtml","img");
img.src = "minus.gif";
newTocElement.insertBefore(img,newTocLink);
newTocFrame = document.createElementNS("http://www.w3.org/1999/xhtml","div");
newTocElement.appendChild(newTocFrame);
}
else {
newTocFrame = null;
}
tocFrame.appendChild(newTocElement);
break;
}
}
// Recurse down through the childNodes list
for (i=0; i < root.childNodes.length; i++) {
var child = root.childNodes[i];
if (child.nodeType == Node.ELEMENT_NODE) {
if ((newTocLink != null) && (child.tagName == "title")) {
var text = child.firstChild.cloneNode(true);
newTocLink.appendChild(text);
}
else {
addToToc(child, newTocFrame);
}
}
}
}
// Create the root table of contents element (a fixed element)
// and its contents.
function createToc()
{
if (document.getElementsByTagName("toc").length == 0) {
var toc = document.createElement("toc");
var title = document.createElement("title");
title.appendChild(document.createTextNode("Table of Contents"));
toc.appendChild(title);
// Recurse down and build up the document element
addToToc(document.documentElement, toc);
// Since we've created the toc element as a fixed element,
// insert a rule that shifts over the document element by
// the width of the toc element.
document.styleSheets[0].cssRules[0].style.marginLeft = "12em";
document.documentElement.appendChild(toc);
// Attach the event handler for table of contents buttons.
// This will only work for content that is already a part
// of a document, which is why we had to wait until here
// to do this.
toc.addEventListener("mouseup",toggleDisplay,1);
} else {
// Hide the table of contents.
// This is not very intelligent if we have a static document, we should
// just hide/show the toc via stylesheet mungling
document.documentElement.removeChild(document.getElementsByTagName("toc")[0]);
document.styleSheets[0].cssRules[0].style.marginLeft = "0em";
}
}