<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://gw1wiki.ezgame.cc/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACollapsibleTables.js</id>
	<title>MediaWiki:CollapsibleTables.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://gw1wiki.ezgame.cc/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACollapsibleTables.js"/>
	<link rel="alternate" type="text/html" href="https://gw1wiki.ezgame.cc/index.php?title=MediaWiki:CollapsibleTables.js&amp;action=history"/>
	<updated>2026-10-18T01:32:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://gw1wiki.ezgame.cc/index.php?title=MediaWiki:CollapsibleTables.js&amp;diff=109&amp;oldid=prev</id>
		<title>gww&gt;Chieftain Alex at 16:17, 17 March 2016</title>
		<link rel="alternate" type="text/html" href="https://gw1wiki.ezgame.cc/index.php?title=MediaWiki:CollapsibleTables.js&amp;diff=109&amp;oldid=prev"/>
		<updated>2016-03-17T16:17:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**** CollapsibleTables.js&lt;br /&gt;
 * (c) 2007–2014 by Patrick Westerhoff [poke]&lt;br /&gt;
 *&lt;br /&gt;
 * This class allows to make tables collapsible and adds a show/hide button to&lt;br /&gt;
 * affected tables. Tables which class attribute contains 'collapsible' or&lt;br /&gt;
 * 'expandable' are affected by this class and can be collapsed; the latter&lt;br /&gt;
 * automatically hides the content of all sections.&lt;br /&gt;
 * Header rows are used to divide the table into sections which can be collapsed&lt;br /&gt;
 * separately. By default the first row of the table is interpreted as a header&lt;br /&gt;
 * row, however this can be overwritten by adding 'collapsible' to the class&lt;br /&gt;
 * attribute of header rows. You can also hide a section individually by default&lt;br /&gt;
 * when in 'collapsible' mode by using 'expandable' as the row's class name&lt;br /&gt;
 * instead.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
(function (document, $) {&lt;br /&gt;
  if (!mw.config.get('wgIsArticle') &amp;amp;&amp;amp; window.location.href.indexOf('action=submit') &amp;lt; 0 &amp;amp;&amp;amp; mw.config.get('wgNamespaceNumber') == -1)&lt;br /&gt;
      return;&lt;br /&gt;
&lt;br /&gt;
  var classCollapsible = 'collapsible';&lt;br /&gt;
  var classExpandable = 'expandable';&lt;br /&gt;
  var linkTextShow = '[show]';&lt;br /&gt;
  var linkTextHide = '[hide]';&lt;br /&gt;
&lt;br /&gt;
  var reClassName = new RegExp('(?:\\s|^)(' + classCollapsible + '|' + classExpandable + ')(?:\\s|$)');&lt;br /&gt;
  var sections = [];&lt;br /&gt;
&lt;br /&gt;
  // link element&lt;br /&gt;
  var linkElement = document.createElement('a');&lt;br /&gt;
  linkElement.style.fontSize = '85%';&lt;br /&gt;
  linkElement.style.fontWeight = 'normal';&lt;br /&gt;
  linkElement.style.width = '3em';&lt;br /&gt;
  linkElement.style.cssFloat = 'right';&lt;br /&gt;
  linkElement.style.styleFloat = 'right';&lt;br /&gt;
  linkElement.style.textAlign = 'center';&lt;br /&gt;
  linkElement.style.marginLeft = '1em';&lt;br /&gt;
  linkElement.style.padding = '0px 3px';&lt;br /&gt;
  linkElement.href = 'javascript:void(0);';&lt;br /&gt;
&lt;br /&gt;
  /** private void initHeaderRow ( headerRow, sectionId, sectionStatus ) :: adds show/hide button **/&lt;br /&gt;
  function initHeaderRow (headerRow, sectionId, sectionStatus) {&lt;br /&gt;
    headerRow.id = 'collapsible-section_' + sectionId;&lt;br /&gt;
    var lastCell = headerRow.cells[headerRow.cells.length - 1];&lt;br /&gt;
    var link = linkElement.cloneNode(false);&lt;br /&gt;
    link.appendChild(document.createTextNode(sectionStatus ? linkTextHide : linkTextShow));&lt;br /&gt;
    $(link).click(toggleSection);&lt;br /&gt;
&lt;br /&gt;
    lastCell.insertBefore(link, lastCell.firstChild);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /** private void toggleSection () :: onclick event handler **/&lt;br /&gt;
  function toggleSection () {&lt;br /&gt;
    var trHead = this.parentNode.parentNode;&lt;br /&gt;
    var section = sections[trHead.id.substr(20)];&lt;br /&gt;
    var content = section.content;&lt;br /&gt;
    var display = section.status ? 'none' : '';&lt;br /&gt;
&lt;br /&gt;
    for (var i = 0, n = content.length; i &amp;lt; n; i++) {&lt;br /&gt;
      content[i].style.display = display;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    section.status = !section.status;&lt;br /&gt;
    this.firstChild.data = section.status ? linkTextHide : linkTextShow;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // initialize&lt;br /&gt;
  var docContent = document.getElementById('bodyContent') || document.getElementById('article') || document.getElementById('mw_contentholder');&lt;br /&gt;
  var tables = docContent.getElementsByTagName('table');&lt;br /&gt;
  var sectionId = -1;&lt;br /&gt;
&lt;br /&gt;
  for (var i = 0, n = tables.length; i &amp;lt; n; i++) {&lt;br /&gt;
    var classMatch = tables[i].className.match(reClassName);&lt;br /&gt;
    if (!classMatch) {&lt;br /&gt;
      continue;&lt;br /&gt;
    }&lt;br /&gt;
    var defaultStatus = classMatch[1] == classCollapsible;&lt;br /&gt;
    var tableRows = tables[i].rows;&lt;br /&gt;
    var sectionFound = false;&lt;br /&gt;
&lt;br /&gt;
    for (var j = 0, m = tableRows.length; j &amp;lt; m; j++) {&lt;br /&gt;
      var classMatch = tableRows[j].className.match(reClassName);&lt;br /&gt;
      if (!classMatch) {&lt;br /&gt;
        if (sectionFound) {&lt;br /&gt;
          sections[sectionId].content.push(tableRows[j]);&lt;br /&gt;
          tableRows[j].style.display = sections[sectionId].status ? '' : 'none';&lt;br /&gt;
        }&lt;br /&gt;
        continue;&lt;br /&gt;
      }&lt;br /&gt;
      var section = {&lt;br /&gt;
        header: tableRows[j],&lt;br /&gt;
        content: [],&lt;br /&gt;
        status: defaultStatus ? classMatch[1] == classCollapsible : false&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      sectionFound = true;&lt;br /&gt;
      sections[++sectionId] = section;&lt;br /&gt;
      initHeaderRow(tableRows[j], sectionId, section.status);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!sectionFound) {&lt;br /&gt;
      var section = {&lt;br /&gt;
        header: tableRows[0],&lt;br /&gt;
        content: [],&lt;br /&gt;
        status: defaultStatus&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      for (var j = 1; j &amp;lt; tableRows.length; j++) {&lt;br /&gt;
        section.content.push(tableRows[j]);&lt;br /&gt;
        tableRows[j].style.display = section.status ? '' : 'none';&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      sections[++sectionId] = section;&lt;br /&gt;
      initHeaderRow(tableRows[0], sectionId, defaultStatus);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
})(document, $);&lt;/div&gt;</summary>
		<author><name>gww&gt;Chieftain Alex</name></author>
	</entry>
</feed>