Created
March 12, 2012 10:23
-
-
Save raine/2021067 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| commit 0d312a10767383902caa6f83b2605347ea03b74a | |
| Author: Raine Virta <raine@blaast.com> | |
| Date: Mon Mar 12 12:18:33 2012 +0200 | |
| rebased to original file | |
| diff --git a/index.php b/index.php | |
| index cb0e05c..e862ba1 100644 | |
| --- a/index.php | |
| +++ b/index.php | |
| @@ -1,5 +1,55 @@ | |
| +/* generated javascript */ | |
| +var skin = 'dtrush'; | |
| +var stylepath = '/starcraft/skins'; | |
| + | |
| +/* MediaWiki:Common.js */ | |
| /* Any JavaScript here will be loaded for all users on every page load. */ | |
| - | |
| + | |
| +var toggleMapListSetup = function() { | |
| + var btn = $('a[id^="collapseButton"]'); | |
| + | |
| + btn.each(function() { | |
| + var table = $(this).closest('table'); | |
| + var m = $('.maprow', table); | |
| + | |
| + if (m.length) { | |
| + m.hide(); // Collapse maps by default | |
| + | |
| + var span = $('<span>', { | |
| + class: 'mapsCollapseButton', | |
| + css: { | |
| + 'font-weight': 'normal', | |
| + 'float': 'right', | |
| + 'margin-right': '7px', | |
| + 'cursor': 'pointer' | |
| + } | |
| + }); | |
| + | |
| + table.data('maps-collapsed', true); | |
| + | |
| + var toggleMaps = function() { | |
| + table.find('.maprow').toggle(); | |
| + table.data('maps-collapsed', !table.data('maps-collapsed')); | |
| + | |
| + $(this).text(function(i, txt) { | |
| + return txt.replace(/\+|-/, function(a) { | |
| + return a === '+' ? '-' : '+'; | |
| + }); | |
| + }); | |
| + } | |
| + | |
| + var a = $('<a>+maps</a>').click(toggleMaps); | |
| + | |
| + span.append('[', a, ']'); | |
| + $(this).parent().after(span); | |
| + | |
| + if (table.hasClass('uncollapsed-maps')) { | |
| + a.trigger('click'); | |
| + } | |
| + } | |
| + }); | |
| +}; | |
| + | |
| /** Collapsible tables ********************************************************* | |
| * | |
| * From English Wikipedia, 2008-09-15 | |
| @@ -8,98 +58,110 @@ | |
| * [[Wikipedia:NavFrame]]. | |
| * Maintainers: [[User:R. Koot]] | |
| */ | |
| - | |
| + | |
| var autoCollapse = 2; | |
| var collapseCaption = "hide"; | |
| var expandCaption = "show"; | |
| - | |
| + | |
| function collapseTable( tableIndex ) | |
| { | |
| var Button = document.getElementById( "collapseButton" + tableIndex ); | |
| var Table = document.getElementById( "collapsibleTable" + tableIndex ); | |
| - | |
| + | |
| if ( !Table || !Button ) { | |
| return false; | |
| } | |
| - | |
| + | |
| var Rows = Table.rows; | |
| - | |
| + | |
| if ( Button.firstChild.data == collapseCaption ) { | |
| for ( var i = 1; i < Rows.length; i++ ) { | |
| Rows[i].style.display = "none"; | |
| } | |
| Button.firstChild.data = expandCaption; | |
| + | |
| + $('.mapsCollapseButton', Table).hide(); | |
| } else { | |
| for ( var i = 1; i < Rows.length; i++ ) { | |
| + if ( hasClass( Rows[i], "maprow" ) ) { | |
| + // Skip showing for this row if the maps are in collapsed state | |
| + if ($(Table).data('maps-collapsed')) { | |
| + continue; | |
| + } | |
| + } | |
| + | |
| Rows[i].style.display = Rows[0].style.display; | |
| } | |
| Button.firstChild.data = collapseCaption; | |
| + | |
| + $('.mapsCollapseButton', Table).show(); | |
| } | |
| } | |
| - | |
| + | |
| function createCollapseButtons() | |
| { | |
| var tableIndex = 0; | |
| var NavigationBoxes = new Object(); | |
| var Tables = document.getElementsByTagName( "table" ); | |
| - | |
| + | |
| for ( var i = 0; i < Tables.length; i++ ) { | |
| if ( hasClass( Tables[i], "collapsible" ) ) { | |
| - | |
| + | |
| /* only add button and increment count if there is a header row to work with */ | |
| var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; | |
| if (!HeaderRow) continue; | |
| var Header = HeaderRow.getElementsByTagName( "th" )[0]; | |
| if (!Header) continue; | |
| - | |
| + | |
| NavigationBoxes[ tableIndex ] = Tables[i]; | |
| Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); | |
| - | |
| + | |
| var Button = document.createElement( "span" ); | |
| var ButtonLink = document.createElement( "a" ); | |
| var ButtonText = document.createTextNode( collapseCaption ); | |
| - | |
| + | |
| Button.style.styleFloat = "right"; | |
| Button.style.cssFloat = "right"; | |
| Button.style.fontWeight = "normal"; | |
| Button.style.textAlign = "right"; | |
| - Button.style.width = "6em"; | |
| - | |
| + // Button.style.width = "6em"; | |
| + | |
| ButtonLink.style.color = Header.style.color; | |
| ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); | |
| ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" ); | |
| ButtonLink.appendChild( ButtonText ); | |
| - | |
| + | |
| Button.appendChild( document.createTextNode( "[" ) ); | |
| Button.appendChild( ButtonLink ); | |
| Button.appendChild( document.createTextNode( "]" ) ); | |
| - | |
| + | |
| Header.insertBefore( Button, Header.childNodes[0] ); | |
| tableIndex++; | |
| } | |
| } | |
| - | |
| + | |
| for ( var i = 0; i < tableIndex; i++ ) { | |
| if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) { | |
| collapseTable( i ); | |
| } | |
| } | |
| } | |
| - | |
| + | |
| addOnloadHook( createCollapseButtons ); | |
| +addOnloadHook( toggleMapListSetup ); | |
| + | |
| - | |
| /** Test if an element has a certain class ************************************** | |
| * | |
| * Description: Uses regular expressions and caching for better performance. | |
| * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]] | |
| */ | |
| - | |
| + | |
| var hasClass = (function () { | |
| - var reCache = {}; | |
| - return function (element, className) { | |
| - return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className); | |
| - }; | |
| + var reCache = {}; | |
| + return function (element, className) { | |
| + return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className); | |
| + }; | |
| })(); | |
| /** Dynamic Navigation Bars (experimental) ************************************* | |
| @@ -107,11 +169,11 @@ var hasClass = (function () { | |
| * Description: See [[Wikipedia:NavFrame]]. | |
| * Maintainers: UNMAINTAINED | |
| */ | |
| - | |
| + | |
| // set up the words in your language | |
| var NavigationBarHide = '[' + collapseCaption + ']'; | |
| var NavigationBarShow = '[' + expandCaption + ']'; | |
| - | |
| + | |
| // shows and hides content and picture (if available) of navigation bars | |
| // Parameters: | |
| // indexNavigationBar: the index of navigation bar to be toggled | |
| @@ -119,11 +181,11 @@ function toggleNavigationBar(indexNavigationBar) | |
| { | |
| var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); | |
| var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); | |
| - | |
| + | |
| if (!NavFrame || !NavToggle) { | |
| return false; | |
| } | |
| - | |
| + | |
| // if shown now | |
| if (NavToggle.firstChild.data == NavigationBarHide) { | |
| for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { | |
| @@ -135,7 +197,7 @@ function toggleNavigationBar(indexNavigationBar) | |
| } | |
| } | |
| NavToggle.firstChild.data = NavigationBarShow; | |
| - | |
| + | |
| // if hidden now | |
| } else if (NavToggle.firstChild.data == NavigationBarShow) { | |
| for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { | |
| @@ -149,7 +211,7 @@ function toggleNavigationBar(indexNavigationBar) | |
| NavToggle.firstChild.data = NavigationBarHide; | |
| } | |
| } | |
| - | |
| + | |
| // adds show/hide-button to navigation bars | |
| function createNavigationBarToggleButton() | |
| { | |
| @@ -159,13 +221,13 @@ function createNavigationBarToggleButton() | |
| for (var i = 0; NavFrame = divs[i]; i++) { | |
| // if found a navigation bar | |
| if (hasClass(NavFrame, "NavFrame")) { | |
| - | |
| + | |
| indexNavigationBar++; | |
| var NavToggle = document.createElement("a"); | |
| NavToggle.className = 'NavToggle'; | |
| NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); | |
| NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); | |
| - | |
| + | |
| var isCollapsed = hasClass( NavFrame, "collapsed" ); | |
| /* | |
| * Check if any children are already hidden. This loop is here for backwards compatibility: | |
| @@ -190,7 +252,7 @@ function createNavigationBarToggleButton() | |
| } | |
| var NavToggleText = document.createTextNode(isCollapsed ? NavigationBarShow : NavigationBarHide); | |
| NavToggle.appendChild(NavToggleText); | |
| - | |
| + | |
| // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) | |
| for(var j=0; j < NavFrame.childNodes.length; j++) { | |
| if (hasClass(NavFrame.childNodes[j], "NavHead")) { | |
| @@ -201,5 +263,7 @@ function createNavigationBarToggleButton() | |
| } | |
| } | |
| } | |
| - | |
| + | |
| addOnloadHook( createNavigationBarToggleButton ); | |
| + | |
| +/* MediaWiki:Dtrush.js */ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment