No edit summary |
No edit summary |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ |
/* Any JavaScript here will be loaded for all users on every page load. */ |
||
⚫ | |||
− | //RailWAM configuration |
||
− | window.railWAM = { |
||
− | logPage:"Project:WAM Log" |
||
− | }; |
||
− | |||
− | window.AddRailModule = [ |
||
− | {page: 'Template:RailModule', prepend: true}, |
||
− | 'Template:RailModule2', |
||
− | 'Template:RailModule3', |
||
− | ]; |
||
− | |||
− | // Experimental javascript countdown timer (Splarka) |
||
− | // Version 0.0.3 |
||
− | // ************************************************** |
||
− | // |
||
− | // Usage example: |
||
− | // <span class="countdown" style="display:none;"> |
||
− | // Only <span class="countdowndate">January 01 2007 00:00:00 PST</span> until New years. |
||
− | // </span> |
||
− | // <span class="nocountdown">Javascript disabled.</span> |
||
− | |||
⚫ | |||
title : 'Blocked', |
title : 'Blocked', |
||
message : 'You have been blocked for $2 because you have committed the following offence(s): $1', |
message : 'You have been blocked for $2 because you have committed the following offence(s): $1', |
||
autocheck : true |
autocheck : true |
||
}; |
}; |
||
− | |||
− | function updatetimer(i) { |
||
− | var now = new Date(); |
||
− | var then = timers[i].eventdate; |
||
− | var diff = count = Math.floor((then.getTime() - now.getTime()) / 1000); |
||
− | |||
− | // catch bad date strings |
||
− | if (isNaN(diff)) { |
||
− | timers[i].firstChild.nodeValue = '** ' + timers[i].eventdate + ' **'; |
||
− | return; |
||
− | } |
||
− | |||
− | // determine plus/minus |
||
− | if (diff < 0) { |
||
− | diff = -diff; |
||
− | var tpm = ' '; |
||
− | } else { |
||
− | var tpm = ' '; |
||
− | } |
||
− | |||
− | // calcuate the diff |
||
− | var left = (diff % 60) + ' seconds'; |
||
− | diff = Math.floor(diff / 60); |
||
− | if (diff > 0) left = (diff % 60) + ' minutes ' + left; |
||
− | diff = Math.floor(diff / 60); |
||
− | if (diff > 0) left = (diff % 24) + ' hours ' + left; |
||
− | diff = Math.floor(diff / 24); |
||
− | if (diff > 0) left = diff + ' days ' + left |
||
− | timers[i].firstChild.nodeValue = tpm + left; |
||
− | |||
− | // a setInterval() is more efficient, but calling setTimeout() |
||
− | // makes errors break the script rather than infinitely recurse |
||
− | timeouts[i] = setTimeout('updatetimer(' + i + ')', 1000); |
||
− | } |
||
− | |||
− | function checktimers() { |
||
− | //hide 'nocountdown' and show 'countdown' |
||
− | var nocountdowns = getElementsByClassName(document, 'span', 'nocountdown'); |
||
− | for (var i in nocountdowns) nocountdowns[i].style.display = 'none' |
||
− | var countdowns = getElementsByClassName(document, 'span', 'countdown'); |
||
− | for (var i in countdowns) countdowns[i].style.display = 'inline' |
||
− | |||
− | //set up global objects timers and timeouts. |
||
− | timers = getElementsByClassName(document, 'span', 'countdowndate'); //global |
||
− | timeouts = new Array(); // generic holder for the timeouts, global |
||
− | if (timers.length == 0) return; |
||
− | for (var i in timers) { |
||
− | timers[i].eventdate = new Date(timers[i].firstChild.nodeValue); |
||
− | updatetimer(i); //start it up |
||
− | } |
||
− | } |
||
− | addOnloadHook(checktimers); |
||
− | |||
− | // ************************************************** |
||
− | // - end - Experimental javascript countdown timer |
||
− | // ************************************************** |
||
− | |||
− | |||
− | /* 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); |
||
− | }; |
||
− | })(); |
||
− | |||
− | /** Collapsible tables ********************************************************* |
||
− | * Description: Allows tables to be collapsed, showing only the header. See |
||
− | * [[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; |
||
− | } 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(); |
||
− | 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.className = "collapseButton"; //Styles are declared in Common.css |
||
− | |||
− | 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); |
||
− | } else if (hasClass(NavigationBoxes[i], "innercollapse")) { |
||
− | var element = NavigationBoxes[i]; |
||
− | while (element = element.parentNode) { |
||
− | if (hasClass(element, "outercollapse")) { |
||
− | collapseTable(i); |
||
− | break; |
||
− | } |
||
− | } |
||
− | } |
||
− | } |
||
− | } |
||
− | addOnloadHook(createCollapseButtons); |
||
/** Magic editintros **************************************************** |
/** Magic editintros **************************************************** |
||
Line 198: | Line 23: | ||
if (wgNamespaceNumber == 0) { |
if (wgNamespaceNumber == 0) { |
||
− | + | $(function() { |
|
if (document.getElementById('disambigbox')) |
if (document.getElementById('disambigbox')) |
||
addEditIntro('Template:Disambig_editintro'); |
addEditIntro('Template:Disambig_editintro'); |
||
Line 207: | Line 32: | ||
/* sliders using jquery by User:Tierrie */ |
/* sliders using jquery by User:Tierrie */ |
||
/****************************************/ |
/****************************************/ |
||
− | //wsl.loadScript("https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"); |
||
− | //wsl.loadScript("https://dragonage.wikia.com/index.php?title=MediaWiki:Jquery-ui.min.js&action=raw&ctype=text/javascript"); |
||
− | |||
mw.loader.using(['jquery.ui.tabs'], function() { |
mw.loader.using(['jquery.ui.tabs'], function() { |
||
$(function() { |
$(function() { |
||
Line 236: | Line 58: | ||
/* changes the redirect image */ |
/* changes the redirect image */ |
||
/******************************/ |
/******************************/ |
||
− | function ChangeRedirectImage() { |
+ | $(function ChangeRedirectImage() { |
$('.redirectMsg img').attr('src', 'https://images.wikia.nocookie.net/__cb20100902033555/dragonage/images/b/b5/Redirectltr.png'); |
$('.redirectMsg img').attr('src', 'https://images.wikia.nocookie.net/__cb20100902033555/dragonage/images/b/b5/Redirectltr.png'); |
||
− | } |
+ | }); |
− | addOnloadHook(ChangeRedirectImage); |
||
//ArchiveTool configuration |
//ArchiveTool configuration |
||
− | |||
var ArchiveToolConfig = { |
var ArchiveToolConfig = { |
||
archiveListTemplate: 'ArchCat', |
archiveListTemplate: 'ArchCat', |
||
Line 249: | Line 69: | ||
userLang: true |
userLang: true |
||
}; |
}; |
||
− | |||
− | window.ItemsToAdd = [ |
||
− | { |
||
− | 'Name': 'Stub', |
||
− | 'Page': 'Category:Stub', |
||
− | 'Description': 'Needs improvement' |
||
− | }, |
||
− | { |
||
− | 'Name': 'No picture', |
||
− | 'Page': 'Category:No picture', |
||
− | 'Description': 'Needs picture' |
||
− | }, |
||
− | { |
||
− | 'Name': 'No template', |
||
− | 'Page': 'Category:No template', |
||
− | 'Description': 'Needs template' |
||
− | }, |
||
− | ]; |
||
− | window.AffectsSidebar = true; |
||
///////////////// |
///////////////// |
Latest revision as of 15:49, 17 December 2020
/* Any JavaScript here will be loaded for all users on every page load. */
window.MessageBlock = {
title : 'Blocked',
message : 'You have been blocked for $2 because you have committed the following offence(s): $1',
autocheck : true
};
/** Magic editintros ****************************************************
*
* Description: Adds editintros on disambiguation pages.
*/
function addEditIntro(name) {
var el = document.getElementById('control_edit');
if (!el)
return;
el = el.getElementsByTagName('a')[0];
if (el)
el.href += '&editintro=' + name;
}
if (wgNamespaceNumber == 0) {
$(function() {
if (document.getElementById('disambigbox'))
addEditIntro('Template:Disambig_editintro');
});
}
/****************************************/
/* sliders using jquery by User:Tierrie */
/****************************************/
mw.loader.using(['jquery.ui.tabs'], function() {
$(function() {
var $tabs = $("#portal_slider").tabs({
fx: {
opacity: 'toggle',
duration: 100
}
});
$("[class^=portal_sliderlink]").click(function() { // bind click event to link
$tabs.tabs('select', this.className.replace("portal_sliderlink_", ""));
return false;
});
$('#portal_next').click(function() {
$tabs.tabs('select', ($tabs.tabs('option', 'selected') == ($tabs.tabs('length')) - 1) ? 0 : $tabs.tabs('option', 'selected') + 1); // switch to next tab
return false;
});
$('#portal_prev').click(function() { // bind click event to link
$tabs.tabs('select', ($tabs.tabs('option', 'selected') == 0) ? ($tabs.tabs('length') - 1) : $tabs.tabs('option', 'selected') - 1); // switch to previous tab
return false;
});
});
});
/******************************/
/* changes the redirect image */
/******************************/
$(function ChangeRedirectImage() {
$('.redirectMsg img').attr('src', 'https://images.wikia.nocookie.net/__cb20100902033555/dragonage/images/b/b5/Redirectltr.png');
});
//ArchiveTool configuration
var ArchiveToolConfig = {
archiveListTemplate: 'ArchCat',
archivePageTemplate: 'ArchPage',
archiveSubpage: 'Archive',
userLang: true
};
/////////////////
// END OF CODE //
/////////////////