Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
| Line 68: | Line 68: | ||
} | } | ||
/** | /** Collapsible tables ********************************************************* | ||
* | * | ||
* | * Description: Allows tables to be collapsed, showing only the header. See | ||
* | * http://www.mediawiki.org/wiki/Manual:Collapsible_tables. | ||
* Maintainers: [[en:User:R. Koot]] | |||
*/ | */ | ||
var autoCollapse = 2; | |||
var collapseCaption = 'hide'; | var collapseCaption = 'hide'; | ||
var expandCaption = 'show'; | var expandCaption = 'show'; | ||
var | function collapseTable( tableIndex ) { | ||
var | 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; | |||
} else { | |||
for ( var i = 1; i < Rows.length; i++ ) { | |||
Rows[i].style.display = Rows[0].style.display; | |||
} | |||
Button.firstChild.data = collapseCaption; | |||
} | |||
} | } | ||
function createCollapseButtons() { | |||
var tableIndex = 0; | |||
var NavigationBoxes = new Object(); | |||
$( 'table.collapsible' ).each(function(e){ | |||
/* only add button and increment count if there is a header row to work with */ | |||
var HeaderRow = e.find( 'tr' ).first(); | |||
if ( !HeaderRow ) { | |||
return; | |||
} | |||
var Header = e.find( 'th' ).first(); | |||
if ( !Header ) { | |||
return; | |||
} | |||
NavigationBoxes[tableIndex] = e; | |||
e.setAttribute( 'id', 'collapsibleTable' + tableIndex ); | |||
var Button = document.createElement( 'span' ); | |||
var ButtonLink = document.createElement( 'a' ); | |||
var ButtonText = document.createTextNode( collapseCaption ); | |||
Button.className = 'collapseButton'; // Styles are declared in [[MediaWiki:Common.css]] | |||
ButtonLink.style.color = Header.style.color; | |||
ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex ); | |||
ButtonLink.setAttribute( 'href', "javascript:collapseTable(" + tableIndex + ");" ); | |||
Button.setAttribute( 'onClick', "collapseTable(" + tableIndex + ");" ); | |||
ButtonLink.appendChild( ButtonText ); | |||
Button.appendChild( document.createTextNode( '[' ) ); | |||
Button.appendChild( ButtonLink ); | |||
Button.appendChild( document.createTextNode( ']' ) ); | |||
Header.insertBefore( Button, Header.childNodes[0] ); | |||
Header.setAttribute( 'onClick', "collapseTable(" + tableIndex + ");" ); | |||
tableIndex++; | |||
}); | |||
for ( var i = 0; i < tableIndex; i++ ) { | |||
if ( $(NavigationBoxes[i]).hasClass('collapsed' ) || ( tableIndex >= autoCollapse && $(NavigationBoxes[i]).hasClass('autocollapse' ) ) ) { | |||
collapseTable( i ); | |||
} else if ( $(NavigationBoxes[i]).hasClass('innercollapse' ) ) { | |||
var element = NavigationBoxes[i]; | |||
while ( element = element.parent() ) { | |||
if ( element.hasClass('outercollapse' ) ) { | |||
collapseTable( i ); | |||
break; | |||
} | |||
} | |||
} | |||
} | |||
} | } | ||
$ ( createCollapseButtons ); | |||
function CustomizeModificationsOfSidebar() { | function CustomizeModificationsOfSidebar() { | ||
ModifySidebar("add", "toolbox", "Upload files", "http://wiki.industrial-craft.net/index.php?title=Special:MultiUpload"); | ModifySidebar("add", "toolbox", "Upload files", "http://wiki.industrial-craft.net/index.php?title=Special:MultiUpload"); | ||
Revision as of 01:54, 22 February 2015
/* Any JavaScript here will be loaded for all users on every page load. */
$( function() {
var pops = function( elems ) {
for (var i=0; i<elems.length; i++) {
if ( !(' '+elems[i].className+' ').match( / pops / ) ) continue;
var anchs = elems[i].getElementsByTagName('a');
for (var j=0; j<anchs.length; j++) anchs[j].target = '_blank';
}
};
var bc = document.getElementById('bodyContent');
var tags = ['span', 'div', 'table', 'td', 'th'];
for (var i=0; i<tags.length; i++) pops( bc.getElementsByTagName( tags[i] ) );
} );
function ModifySidebar(action, section, name, link) {
try {
switch (section) {
case "languages":
var target = "p-lang";
break;
case "toolbox":
var target = "p-tb";
break;
case "navigation":
var target = "p-navigation";
break;
default:
var target = "p-" + section;
break;
}
if (action == "add") {
var node = document.getElementById(target)
.getElementsByTagName('div')[0]
.getElementsByTagName('ul')[0];
var aNode = document.createElement('a');
var liNode = document.createElement('li');
aNode.appendChild(document.createTextNode(name));
aNode.setAttribute('href', link);
liNode.appendChild(aNode);
liNode.className='plainlinks';
node.appendChild(liNode);
}
if (action == "remove") {
var list = document.getElementById(target)
.getElementsByTagName('div')[0]
.getElementsByTagName('ul')[0];
var listelements = list.getElementsByTagName('li');
for (var i = 0; i < listelements.length; i++) {
if (listelements[i].getElementsByTagName('a')[0].innerHTML == name ||
listelements[i].getElementsByTagName('a')[0].href == link) {
list.removeChild(listelements[i]);
}
}
}
} catch(e) {
// lets just ignore what's happened
return;
}
}
/** Collapsible tables *********************************************************
*
* Description: Allows tables to be collapsed, showing only the header. See
* http://www.mediawiki.org/wiki/Manual:Collapsible_tables.
* Maintainers: [[en: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;
} else {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = Rows[0].style.display;
}
Button.firstChild.data = collapseCaption;
}
}
function createCollapseButtons() {
var tableIndex = 0;
var NavigationBoxes = new Object();
$( 'table.collapsible' ).each(function(e){
/* only add button and increment count if there is a header row to work with */
var HeaderRow = e.find( 'tr' ).first();
if ( !HeaderRow ) {
return;
}
var Header = e.find( 'th' ).first();
if ( !Header ) {
return;
}
NavigationBoxes[tableIndex] = e;
e.setAttribute( 'id', 'collapsibleTable' + tableIndex );
var Button = document.createElement( 'span' );
var ButtonLink = document.createElement( 'a' );
var ButtonText = document.createTextNode( collapseCaption );
Button.className = 'collapseButton'; // Styles are declared in [[MediaWiki:Common.css]]
ButtonLink.style.color = Header.style.color;
ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
ButtonLink.setAttribute( 'href', "javascript:collapseTable(" + tableIndex + ");" );
Button.setAttribute( 'onClick', "collapseTable(" + tableIndex + ");" );
ButtonLink.appendChild( ButtonText );
Button.appendChild( document.createTextNode( '[' ) );
Button.appendChild( ButtonLink );
Button.appendChild( document.createTextNode( ']' ) );
Header.insertBefore( Button, Header.childNodes[0] );
Header.setAttribute( 'onClick', "collapseTable(" + tableIndex + ");" );
tableIndex++;
});
for ( var i = 0; i < tableIndex; i++ ) {
if ( $(NavigationBoxes[i]).hasClass('collapsed' ) || ( tableIndex >= autoCollapse && $(NavigationBoxes[i]).hasClass('autocollapse' ) ) ) {
collapseTable( i );
} else if ( $(NavigationBoxes[i]).hasClass('innercollapse' ) ) {
var element = NavigationBoxes[i];
while ( element = element.parent() ) {
if ( element.hasClass('outercollapse' ) ) {
collapseTable( i );
break;
}
}
}
}
}
$ ( createCollapseButtons );
function CustomizeModificationsOfSidebar() {
ModifySidebar("add", "toolbox", "Upload files", "http://wiki.industrial-craft.net/index.php?title=Special:MultiUpload");
//adds [[Special:CategoryTree]] to toolbox
ModifySidebar("add", "tutorials", "First Steps", "http://wiki.industrial-craft.net/index.php?title=Tutorial:First_Steps");
ModifySidebar("add", "tutorials", "Wiring", "http://wiki.industrial-craft.net/index.php?title=Tutorial:Wiring");
ModifySidebar("add", "tutorials", "Nuclear Power", "http://wiki.industrial-craft.net/index.php?title=Tutorial:Nuclear_Power");
//ModifySidebar("add", "tutorials", "Pirate's Guide to Industrial Craft", "http://wiki.industrial-craft.net/index.php?title=Tutorial:Pirate's Guide to Industrial Craft");
ModifySidebar("add", "navigation", "Download", "http://wiki.industrial-craft.net/index.php?title=Download");
ModifySidebar("add", "navigation", "Version History", "http://wiki.industrial-craft.net/index.php?title=Updates");
ModifySidebar("add", "navigation", "Recipes & Resources", "http://wiki.industrial-craft.net/index.php?title=Recipes_and_Resources");
ModifySidebar("add", "navigation", "Forum", "http://forum.industrial-craft.net/");
ModifySidebar("add", "navigation", "Blog", "http://industrial-craft.net/");
ModifySidebar("add", "navigation", "April Fool 2012", "http://wiki.industrial-craft.net/index.php?title=April_Fools_Joke_2012");
//ModifySidebar("add", "navigation", "Mine4Dead", "http://wiki.industrial-craft.net/index.php?title=Mine4Dead:Main_Page");
//ModifySidebar("add", "navigation", "MedievalCraft", "http://wiki.industrial-craft.net/index.php?title=MedievalCraft-Mod:Main_Page");
ModifySidebar("add", "navigation", "AntiGriefer-Community", "http://wiki.industrial-craft.net/index.php?title=AntiGriefer-Community");
ModifySidebar("add", "navigation", "Banners", "http://wiki.industrial-craft.net/index.php?title=Banner");
ModifySidebar("add", "navigation", "Achievements", "http://wiki.industrial-craft.net/index.php?title=Achievements");
//removes [[Special:Upload]] from toolbox
ModifySidebar("remove", "toolbox", "Permanent Link", "http://wiki.industrial-craft.net/index.php/Main_Page&oldid=829");
ModifySidebar("remove", "toolbox", "Upload file", "http://wiki.industrial-craft.net/Special:Upload");
}
$(CustomizeModificationsOfSidebar);
$(document).ready(function(){
$('.animated-grids').each(function() {
var $current = $(this).children().first();
$current.addClass('active');
});
setInterval(function() {
$('.animated-grids').each(function() {
var $current = $(this).children('.active');
var $next = $current.nextAll(':not(.skip):first');
if (!$next.length) {
$next = $(this).children(':not(.skip):first');
}
$current.removeClass('active');
$next.addClass('active');
});
}, 2000);
});