Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
m (Hmmm, guess it must be something else) |
m (Hopefully this should all work) |
||
| (31 intermediate revisions by 2 users not shown) | |||
| Line 84: | Line 84: | ||
function CustomizeModificationsOfSidebar() { | function CustomizeModificationsOfSidebar() { | ||
//adds [[Special:CategoryTree]] to toolbox | //adds [[Special:CategoryTree]] to toolbox | ||
ModifySidebar("add", "tutorials", "First Steps", "http://wiki.industrial-craft.net/index.php?title=Tutorial:First_Steps"); | ModifySidebar("add", "tutorials", "First Steps", "http://wiki.industrial-craft.net/index.php?title=Tutorial:First_Steps"); | ||
| Line 101: | Line 100: | ||
ModifySidebar("add", "navigation", "Banners", "http://wiki.industrial-craft.net/index.php?title=Banner"); | 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"); | ModifySidebar("add", "navigation", "Achievements", "http://wiki.industrial-craft.net/index.php?title=Achievements"); | ||
ModifySidebar("remove", "toolbox", "Permanent Link", "http://wiki.industrial-craft.net/index.php/Main_Page&oldid=829"); | ModifySidebar("remove", "toolbox", "Permanent Link", "http://wiki.industrial-craft.net/index.php/Main_Page&oldid=829"); | ||
} | } | ||
$(CustomizeModificationsOfSidebar); | $(CustomizeModificationsOfSidebar); | ||
$(document).ready(function(){ | $(document).ready(function() { | ||
$('.animated-grids').each(function() { | $('.animated-grids').each(function() { | ||
$(this).children().first().addClass('active'); | |||
}); | |||
setInterval(function() { | setInterval(function() { | ||
$('.animated-grids').each(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); | |||
$('.animated-text').each(function() { | |||
$(this).children().first().addClass('active'); | |||
}); | |||
setInterval(function() { | |||
$('.animated-text').each(function() { | |||
var $current = $(this).children('.active'); | var $current = $(this).children('.active'); | ||
| Line 126: | Line 138: | ||
$next.addClass('active'); | $next.addClass('active'); | ||
}); | }); | ||
}, | }, 5000); | ||
}); | }); | ||
| Line 256: | Line 268: | ||
$( ".infobox:not(.infoboxNoCollapse) td" ).each( function() { | $( ".infobox:not(.infoboxNoCollapse) td" ).each( function() { | ||
if ( $( this ).html().match( /{{{[^}]+}}}/ ) ) { | if (( $( this ).html().match( /{{{[^}]+}}}/ ) || $( this ).html() === "\n") && !$( this ).parent( "tr" ).hasClass( "infoboxSubsectionBreak")) { | ||
$( this ).parent( "tr" ).hide(); | $( this ).parent( "tr" ).hide(); | ||
} | } | ||
}); | }); | ||
$( " | // TODO: Make less dodgy | ||
$( ".infobox:not(.infoboxNoCollapse) tr.infoboxSectionHeader" ).each( function() //.infobox:not(.infoboxNoCollapse) .infoboxSubsectionBreak, | |||
{ | |||
var flag = true, | var flag = true, | ||
next = $( this ).next(); | |||
while ( next && next !== undefined && next.html() !== undefined && | //console.log("\nNew Section\n"); | ||
var line = false; | |||
if ( next.css( "display" ) != "none" ) { | var draw_line = null; | ||
while ( next && next !== undefined && next.html() !== undefined && !next.hasClass( "infoboxSectionHeader") ) // && !next.hasClass( "infoboxSubsectionBreak" ) && | |||
{ | |||
if (next.hasClass( "infoboxSubsectionBreak" )) { | |||
//console.log("Next Line Break:"); | |||
//console.log(next); | |||
line = false; | |||
draw_line = next; | |||
} | |||
if ( next.css( "display" ) != "none" && !next.hasClass( "infoboxSubsectionBreak" ) ) { | |||
//console.log("So this is making it shown"); | |||
//console.log(next); | |||
//console.log(next.html()); | |||
flag = false; | flag = false; | ||
line = true; | |||
} | } | ||
next = next.next(); | next = next.next(); | ||
} | } | ||
if ( flag ) { | if ( flag ) { | ||
//console.log("Nothing made this section show"); | |||
$( this ).hide(); | $( this ).hide(); | ||
} | |||
if ( !line && draw_line !== null ) { | |||
try{draw_line.style.display = "none";}catch(TypeError){} //I think it has issues with the first object | |||
} | } | ||
}); | }); | ||
if(wgPageName === "User:Chocohead/Sandpit") { | |||
importScript("User:Chocohead/Lift.js"); | |||
} | |||
Latest revision as of 15:44, 13 July 2016
/* 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;
}
}
$ ( function(){
$( 'table.collapsible' ).each(function(i, tab){
var head = $(tab).find( 'tr th' ).first();
if (!head.length) return;
head.css('cursor', 'pointer');
var toggle = function(e){
head.closest('tr').parent().children(':not(:first)').toggle();
};
head.click(toggle);
if ($(tab).hasClass('collapsed')){
toggle();
}
});
} );
function CustomizeModificationsOfSidebar() {
//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");
ModifySidebar("remove", "toolbox", "Permanent Link", "http://wiki.industrial-craft.net/index.php/Main_Page&oldid=829");
}
$(CustomizeModificationsOfSidebar);
$(document).ready(function() {
$('.animated-grids').each(function() {
$(this).children().first().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);
$('.animated-text').each(function() {
$(this).children().first().addClass('active');
});
setInterval(function() {
$('.animated-text').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');
});
}, 5000);
});
/******************************************
* Tooltip Generator *
*****************************************/
$(function() {
var selector = '.tooltip, .a1';
$('#tooltip-display').remove();
var mc_tooltip = function() {
// Check to see if we've already created the div
if (!$('#tooltip-display').length) {
$('body').append($('<div id="tooltip-display">')
.hide());
}
return $('#tooltip-display');
};
$("body").on('mouseenter', selector, function(e) {
var $me = $(this);
// Make sure this isn't a link to upload a new file
if ($me.find('.new').length > 0) {
// This isn't one we want to show a tooltip for
return;
}
// Try to get the title
var title = $me.data('tooltip');
// See if we can find a title elsewhere
// Check this element or its child
if (title === undefined) {
title = $me.attr('title') || $me.children(':first').attr('title') || $me.find('img:first').attr('alt');
// Check if we found anything
if (title) {
// Save it for later
$me.data('tooltip', title);
}
else {
// Didn't find anything, no sense continuing
return;
}
}
// Remove any title elements to avoid the default tooltip
$me.add('*', $me).filter('[title]').removeAttr('title');
//Old methods of turning \ into <br/>
/*title = title.replace('Grid',"").replace('.png',"").replace("\\","<br/><span style=\"color: #AAAAAA;text-shadow: #2A2A2A 2px 2px 0px;display: block;margin-top: 0.25em;\">").trim() + "</span>";
title = title.replace("\\","<br/><span style=\"color: #AAAAAA;text-shadow: #2A2A2A 2px 2px 0px;display: block;margin-top: 0.25em;\">").trim() + "</span>";*/
var stitle = title.split("\\");
title = stitle[0];
if (stitle.length > 1) {
title += "<br/>";
for (var i = 1; i < stitle.length; i++) {
title += "<span style=\"color: #AAAAAA;text-shadow: #2A2A2A 2px 2px 0px;display: block;margin-top: 0.25em;\">" + stitle[i].trim() + "</span>";
}
}
// Add the text to the tooltip
mc_tooltip().html(title.replace(/_/g, " "));
// Need to update the position to the cursor position
$me.trigger('mousemove', e);
})
.on('mousemove', selector, function (e) {
// Check if the element exists already, create it if it doesn't
if (!$('#tooltip-display').length) {
$(this).trigger('mouseenter');
return;
}
// Get dimensions for bounds checking
var top = e.pageY - 30,
height = mc_tooltip().outerHeight(true),
left = e.pageX + 15,
width = mc_tooltip().outerWidth(true);
// Get window dimensions
var $w = $(window),
win_width = $w.width(),
win_height = $w.height();
// If going off the right of the screen, go to the left of the cursor
if ( left + width > win_width ) {
left -= width + 36;
}
// If now going off to the left of the screen, resort to going above the cursor
if ( left < 0 ) {
left = 0;
top -= height - 22;
// Go below the cursor if too high
if ( top < 0 ) {
top += height + 47;
}
// Don't go off the top of the screen
} else if ( top < 0 ) {
top = 0;
}/*
// Don't go off the bottom of the screen
} else if ( top + height > win_height ) {
top = win_height - height;
}*/
// Apply the position
mc_tooltip().css({
top: top,
left: left
}).show();
})
.on('mouseleave', selector, function (e) {
mc_tooltip().hide();
});
});
/******************************************
* Infobox Collapser *
*****************************************/
$( ".infoboxBlockImage img" ).each( function() {
var width = parseInt( $( this ).attr( "width" ), 10);
if ( width > 240 ) {
$( this ).attr( "height", "" );
$( this ).attr( "width", "240" );
}
});
$( ".infobox:not(.infoboxNoCollapse) td" ).each( function() {
if (( $( this ).html().match( /{{{[^}]+}}}/ ) || $( this ).html() === "\n") && !$( this ).parent( "tr" ).hasClass( "infoboxSubsectionBreak")) {
$( this ).parent( "tr" ).hide();
}
});
// TODO: Make less dodgy
$( ".infobox:not(.infoboxNoCollapse) tr.infoboxSectionHeader" ).each( function() //.infobox:not(.infoboxNoCollapse) .infoboxSubsectionBreak,
{
var flag = true,
next = $( this ).next();
//console.log("\nNew Section\n");
var line = false;
var draw_line = null;
while ( next && next !== undefined && next.html() !== undefined && !next.hasClass( "infoboxSectionHeader") ) // && !next.hasClass( "infoboxSubsectionBreak" ) &&
{
if (next.hasClass( "infoboxSubsectionBreak" )) {
//console.log("Next Line Break:");
//console.log(next);
line = false;
draw_line = next;
}
if ( next.css( "display" ) != "none" && !next.hasClass( "infoboxSubsectionBreak" ) ) {
//console.log("So this is making it shown");
//console.log(next);
//console.log(next.html());
flag = false;
line = true;
}
next = next.next();
}
if ( flag ) {
//console.log("Nothing made this section show");
$( this ).hide();
}
if ( !line && draw_line !== null ) {
try{draw_line.style.display = "none";}catch(TypeError){} //I think it has issues with the first object
}
});
if(wgPageName === "User:Chocohead/Sandpit") {
importScript("User:Chocohead/Lift.js");
}