No edit summary |
No edit summary |
||
Line 140: | Line 140: | ||
} ); |
} ); |
||
− | $('a[href=\"#ajaxundo\"]').attr('title', 'Instantly undo this edit without leaving the page') |
+ | $('a[href=\"#ajaxundo\"]').attr('title', 'Instantly undo this edit without leaving the page'); |
function changeLinks() { |
function changeLinks() { |
||
$('a[href^="/wiki/Module_talk:"], a[href^="/wiki/Module talk:"]').each(function() { |
$('a[href^="/wiki/Module_talk:"], a[href^="/wiki/Module talk:"]').each(function() { |
||
if ($(this).prop('href').match(/Module[_ ]talk:(.+?)\/doc/g)) { |
if ($(this).prop('href').match(/Module[_ ]talk:(.+?)\/doc/g)) { |
||
− | $(this).html($(this).html().replace(/Module[ _]talk:(.+?)\/doc/g, 'Module documentation:$1')) |
+ | $(this).html($(this).html().replace(/Module[ _]talk:(.+?)\/doc/g, 'Module documentation:$1')); |
} |
} |
||
− | }) |
+ | }); |
$('h3').each(function() { |
$('h3').each(function() { |
||
if ($(this).html().match(/Module[_ ]talk:(.+?)\/doc/g)) { |
if ($(this).html().match(/Module[_ ]talk:(.+?)\/doc/g)) { |
||
− | $(this).html($(this).html().replace(/Module[ _]talk:(.+?)\/doc/g, 'Module documentation:$1')) |
+ | $(this).html($(this).html().replace(/Module[ _]talk:(.+?)\/doc/g, 'Module documentation:$1')); |
− | $(this).attr('title', $(this).attr('title').replace(/Module[ _]talk:(.+?)\/doc/g, 'Module documentation:$1')) |
+ | $(this).attr('title', $(this).attr('title').replace(/Module[ _]talk:(.+?)\/doc/g, 'Module documentation:$1')); |
} |
} |
||
− | }) |
+ | }); |
} |
} |
||
window.ajaxCallAgain = window.ajaxCallAgain || []; |
window.ajaxCallAgain = window.ajaxCallAgain || []; |
||
− | window.ajaxCallAgain.push(changeLinks) |
+ | window.ajaxCallAgain.push(changeLinks); |
− | $(document).ready(changeLinks) |
+ | $(document).ready(changeLinks); |
// Code to allow making {{Slot}} clickable to show different content |
// Code to allow making {{Slot}} clickable to show different content |
||
Line 261: | Line 261: | ||
lua: {u:'Lua'}, |
lua: {u:'Lua'}, |
||
translator: {u: 'Translator'}, |
translator: {u: 'Translator'}, |
||
+ | oldstaff: {u: 'Retired Staff'}, |
||
}, |
}, |
||
oasisPlaceBefore: '' |
oasisPlaceBefore: '' |
||
Line 267: | Line 268: | ||
UserTagsJS.modules.custom = { |
UserTagsJS.modules.custom = { |
||
// Old Wiki Staff |
// Old Wiki Staff |
||
− | 'IcyOfficial': ['mod', 'discord'], |
+ | 'IcyOfficial': ['oldstaff', 'mod', 'discord'], |
− | '4hrue2kd83f': ['discord'], |
+ | '4hrue2kd83f': ['oldstaff', 'discord'], |
− | 'SirCowMC': ['hypixelstaff', 'discord'], |
+ | 'SirCowMC': ['oldstaff', 'hypixelstaff', 'discord'], |
− | // |
+ | // Admins |
'Thundercraft5': ['templates', 'html', 'css', 'lua'], |
'Thundercraft5': ['templates', 'html', 'css', 'lua'], |
||
'Joker876': ['templates', 'html', 'css', 'lua'], |
'Joker876': ['templates', 'html', 'css', 'lua'], |
||
Line 285: | Line 286: | ||
'Thecrazybone': ['rollback'], |
'Thecrazybone': ['rollback'], |
||
− | //Rollbackers |
+ | // Rollbackers |
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
'BigBoiSchmeedas': ['rollback'], |
'BigBoiSchmeedas': ['rollback'], |
||
⚫ | |||
+ | 'Cloaked4': ['rollback'], |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
+ | 'Lunatic Lunala': ['rollback'], |
||
+ | 'OfTheAsh': ['rollback'], |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
+ | 'YakuzaMC': ['rollback'], |
||
// Users |
// Users |
Revision as of 03:00, 20 September 2020
/*
Any JavaScript here will be loaded for all users on every page load.
See MediaWiki:Wikia.js for scripts that only affect the oasis skin.
*/
/* Table of Contents
-----------------------
* (B00) Element animator
* (W00) Small scripts
* (X00) importArticle pre-script actions
* * (X01) Less
* * (X02) UserTagsJS
* * (X03) HighlightUsers
* (Y00) importArticles
*/
//##############################################################
/* ==Element animator== (B00)*/
// Taken from https://minecraft.gamepedia.com/MediaWiki:Gadget-site.js
/**
* Element animator
*
* Cycles through a set of elements (or "frames") on a 2 second timer per frame
* Add the "animated" class to the frame containing the elements to animate.
* Optionally, add the "animated-active" class to the frame to display first.
* Optionally, add the "animated-subframe" class to a frame, and the
* "animated-active" class to a subframe within, in order to designate a set of
* subframes which will only be cycled every time the parent frame is displayed.
* Animations with the "animated-paused" class will be skipped each interval.
*
* Requires some styling in wiki's CSS.
*/
$( function() {
( function() {
var $content = $( '#mw-content-text' );
var advanceFrame = function( parentElem, parentSelector ) {
var curFrame = parentElem.querySelector( parentSelector + ' > .animated-active' );
$( curFrame ).removeClass( 'animated-active' );
var $nextFrame = $( curFrame && curFrame.nextElementSibling || parentElem.firstElementChild );
return $nextFrame.addClass( 'animated-active' );
};
// Set the name of the hidden property
var hidden;
if ( typeof document.hidden !== 'undefined' ) {
hidden = 'hidden';
} else if ( typeof document.msHidden !== 'undefined' ) {
hidden = 'msHidden';
} else if ( typeof document.webkitHidden !== 'undefined' ) {
hidden = 'webkitHidden';
}
setInterval( function() {
if ( hidden && document[hidden] ) {
return;
}
$content.find( '.animated' ).each( function() {
if ( $( this ).hasClass( 'animated-paused' ) ) {
return;
}
var $nextFrame = advanceFrame( this, '.animated' );
if ( $nextFrame.hasClass( 'animated-subframe' ) ) {
advanceFrame( $nextFrame[0], '.animated-subframe' );
}
} );
}, 2000 );
}() );
/**
* Pause animations on mouseover of a designated container (.animated-container and .mcui)
*
* This is so people have a chance to look at the image and click on pages they want to view.
*/
$( '#mw-content-text' ).on( 'mouseenter mouseleave', '.animated-container, .mcui', function( e ) {
$( this ).find( '.animated' ).toggleClass( 'animated-paused', e.type === 'mouseenter' );
} );
// A work around to force wikia's lazy loading to fire
setTimeout(function(){
$(".animated .lzy[onload]").load();
}, 1000);
} );
//##############################################################
/* ==Small scripts== (W00)*/
/* Used to move ID from {{Text anchor}} onto a parent tr tag (if it exists), allowing the whole row to be styliszed in CSS (using the :target seloector) */
function _goToID(id) {
$("html, body").animate({ scrollTop: $('#'+id).offset().top-65 }, 500);
}
$("tr .text-anchor").each(function(){
var id = $(this).attr("id");
$(this).removeAttr("id");
$(this).closest("tr").attr("id", id);
// Re-trigger hash tag
if(location.hash.replace("#", "") === id) {
// Show table if collapsed:
var inCollapseTable = $(this).parents(".mw-collapsed");
setTimeout(function(){
if(inCollapseTable.length) {
var parentTable = $(inCollapseTable[0]);
parentTable.removeClass("mw-collapsed");
parentTable.find("tr").stop().show();
/*if(parentTable.hasClass("mw-made-collapsible")) {
var collapseID = parentTable.attr("id").replace("mw-customcollapsible-", "");
$(".mw-customtoggle-"+collapseID).click();
} else {
parentTable.removeClass("mw-collapsed");
}*/
}
_goToID(id);
}, 1000);
}
});
$(window).on( 'hashchange', function(e) {
var hash = location.hash.replace("#", "");
$("tr[id]").each(function(){
var $row = $(this);
var id = $row.attr("id");
if(id == hash) {
var inCollapseTable = $row.parents(".mw-collapsed");
if(inCollapseTable.length) {
var $parentTable = $(inCollapseTable[0]);
var collapseID = $parentTable.attr("id").replace("mw-customcollapsible-", "");
$(".mw-customtoggle-"+collapseID).click();
}
_goToID(id);
}
});
} );
$('a[href=\"#ajaxundo\"]').attr('title', 'Instantly undo this edit without leaving the page');
function changeLinks() {
$('a[href^="/wiki/Module_talk:"], a[href^="/wiki/Module talk:"]').each(function() {
if ($(this).prop('href').match(/Module[_ ]talk:(.+?)\/doc/g)) {
$(this).html($(this).html().replace(/Module[ _]talk:(.+?)\/doc/g, 'Module documentation:$1'));
}
});
$('h3').each(function() {
if ($(this).html().match(/Module[_ ]talk:(.+?)\/doc/g)) {
$(this).html($(this).html().replace(/Module[ _]talk:(.+?)\/doc/g, 'Module documentation:$1'));
$(this).attr('title', $(this).attr('title').replace(/Module[ _]talk:(.+?)\/doc/g, 'Module documentation:$1'));
}
});
}
window.ajaxCallAgain = window.ajaxCallAgain || [];
window.ajaxCallAgain.push(changeLinks);
$(document).ready(changeLinks);
// Code to allow making {{Slot}} clickable to show different content
$(function(){
if(!$(".sbw-ui-tabber").length) { return; }
// .hidden works on mobile, but not on desktop
$(".sbw-ui-tab-content.hidden").hide();
$(".sbw-ui-tabber .invslot").each(function(){
var classes = Array.from(
$(this)[0].classList
).filter(
function(c) {
return(
c.indexOf("goto-") === 0
|| c.indexOf("ui-") === 0
);
});
if(classes.length) {
var className = classes[(classes.length)-1]
.replace("goto-", "")
.replace("ui-", "");
$(this).click(function() {
clickTab(className);
});
}
});
$(".sbw-ui-tabber .sbw-ui-tab").click(function(){
var id = $(this).data("tab");
if(id) { clickTab(id); }
});
function clickTab(id) {
id = "ui-"+id;
if(!$("#"+id).length) { console.warn("No such tab ID"); return; }
$(".sbw-ui-tab-content").addClass("hidden").hide();
$(".sbw-ui-tab-content#"+id).removeClass("hidden").show();
// Since images don't load on hidden tabs, force them to load
$(".sbw-ui-tab-content#"+id+" .lzy[onload]").load();
}
});
//##############################################################
/* ==importArticle pre-script actions== (X00)*/
// The code in this section is for a script imported below
// AjaxRC
window.ajaxRefresh = 30000;
window.ajaxPages = [
"Special:RecentChanges",
"Special:WikiActivity",
"Special:Watchlist",
"Special:Log",
"Special:Contributions",
"Special:AbuseLog",
];
$.extend(true, window, {dev: {i18n: {overrides: {AjaxRC: {
'ajaxrc-refresh-text': 'Auto Refresh',
'ajaxrc-refresh-hover': 'Enable automatically refreshing of this page',
}}}}});
//###########################################
/* ===Less=== (X01) */
window.lessOpts = window.lessOpts || [];
window.lessOpts.push( {
// this is the page that has the compiled CSS
target: 'MediaWiki:Common.css',
// this is the page that lists the LESS files to compile
source: 'MediaWiki:Custom-common.less',
// these are the pages that you want to be able to update the target page from
// note, you should not have more than one update button per page
load: [ 'MediaWiki:Common.css', 'MediaWiki:Custom-common.less' ],
// target page header
header: 'MediaWiki:Custom-css-header/common'
} );
/*window.lessOpts.push( {
target: 'MediaWiki:Handheld.css',
source: 'MediaWiki:Custom-handheld.less',
load: [ 'MediaWiki:Handheld.css', 'MediaWiki:Custom-handheld.less' ],
header: 'MediaWiki:Custom-css-header/handheld'
} );*/
//###########################################
/* ===UserTagsJS=== (X02) */
window.UserTagsJS = {
modules: {},
tags: {
rollback: {u: 'Rollback'},
mod: {u:'Mod'},
hypixelstaff: {u:'Hypixel Staff'},
juniorsysop: {u:'Junior Sysop'},
discord: {u:'Discord Server'},
templates: {u:'Templates'},
css: {u:'CSS'},
html: {u:'HTML'},
js: {u:'Java Script'},
lua: {u:'Lua'},
translator: {u: 'Translator'},
oldstaff: {u: 'Retired Staff'},
},
oasisPlaceBefore: ''
};
UserTagsJS.modules.custom = {
// Old Wiki Staff
'IcyOfficial': ['oldstaff', 'mod', 'discord'],
'4hrue2kd83f': ['oldstaff', 'discord'],
'SirCowMC': ['oldstaff', 'hypixelstaff', 'discord'],
// Admins
'Thundercraft5': ['templates', 'html', 'css', 'lua'],
'Joker876': ['templates', 'html', 'css', 'lua'],
'Fewfre': ['templates', 'html', 'css', 'lua', 'js'],
'Specter Elite': ['html', 'css', 'templates'],
// Content Moderators
'Snoo999': ['templates', 'html', 'lua', 'css', 'translator'],
'Southmelon': ['templates', 'lua'],
'100KPureCool': ['html', 'translator'],
// Discussions Moderators
'Thecrazybone': ['rollback'],
// Rollbackers
'BigBoiSchmeedas': ['rollback'],
'BrandonXLF': ['rollback', 'lua', 'js'],
'Cloaked4': ['rollback'],
'Doej134567': ['rollback'],
'Fealtous': ['rollback'],
'Flachdachs': ['rollback', 'js'],
'Hexafish': ['rollback'],
'Lunatic Lunala': ['rollback'],
'OfTheAsh': ['rollback'],
'PaperAeroplane555': ['rollback'],
'Powman898': ['rollback'],
'Pwign': ['rollback', 'js', 'lua', 'templates'],
'SamuraiMosey': ['rollback'],
'Spectrogram': ['rollback'],
'YakuzaMC': ['rollback'],
// Users
'Eason329': ['translator'],
'HibiscusLavaR': ['translator'],
'DarkblueKR': ['translator'],
'EinsMarcel': ['translator'],
};
//###########################################
/* ===HighlightUsers=== (X03) */
window.highlightUsersConfig = {
colors: {
'bureaucrat': '#ff4f52',
'bot': 'darkgray',
'sysop': '#7e2dbc',
'content-moderator': '#7FFFD4',
'threadmoderator': '#1f9921',
'rollback': '#ff992b',
},
styles: {
'bureaucrat': 'text-shadow: 0 0 4px #c77979 !important;',
'bot': 'text-shadow: 0 0 3px gray !important;',
'sysop': 'text-shadow: 0 0 4px #7550ac !important;',
'content-moderator': 'text-shadow: 0 0 3px #397561 !important;',
'threadmoderator': 'text-shadow: 0 0 3px #648264 !important;',
'rollback': 'text-shadow: 0 0 4px #a36726 !important;',
}
};
//##############################################################
/* ==importArticles== (Y00)*/
// Imports scripts from other pages/wikis.
importArticles({
type: 'script',
articles: [
"MediaWiki:Common.js/minetip.js",
"MediaWiki:Common.js/skydate.js",
"MediaWiki:Common.js/calc.js",
// Both of these are deprecated (replaced by calc.js, and currently unused; leaving in to make sure no issue arise) - 1 Aug 2020 --Fewfre
"MediaWiki:Common.js/kat-cost-calculator.js",
"MediaWiki:Common.js/ehp-calculator.js",
]
});