MediaWiki:Common.js: Difference between revisions
From Tardis Wiki, the free Doctor Who reference
(cleaning house; kicking stuff over to importJs) Tag: sourceedit |
(and some more) Tag: sourceedit |
||
Line 140: | Line 140: | ||
} | } | ||
/* ================ | /* ================ | ||
Line 290: | Line 268: | ||
AjaxRCRefreshText = 'Auto-refresh via AJAX'; | AjaxRCRefreshText = 'Auto-refresh via AJAX'; | ||
AjaxRCRefreshHoverText = 'Automatically refreshes the page'; | AjaxRCRefreshHoverText = 'Automatically refreshes the page'; | ||
/* ================ | |||
ARCHIVE TOOL | |||
customisation | |||
================ */ | |||
var ArchiveToolConfig = { | |||
archiveListTemplate: 'ArchCat', | |||
archivePageTemplate: 'ArchPage', | |||
archiveSubpage: 'Archive', | |||
userLang: true | |||
}; | |||
/* ================ | /* ================ | ||
Line 314: | Line 303: | ||
}; | }; | ||
/* ============= | |||
MOS box | |||
from Brickipedia | |||
============== | |||
This is the little box underneath the | |||
search bar and article tally, which has the | |||
Seal of Rassilon in it. | |||
=============== | |||
Keep at end of common.js, but before | |||
any addOnloadHooks. | |||
================ */ | |||
importScript('MediaWiki:Common.js/mosbox.js'); | |||
/* ================ | /* ================ |
Revision as of 00:41, 27 April 2017
/* Any JavaScript here will be loaded for all users on every page load. */
// This contains the April 2012 code,
// found at [[starwars:MediaWiki:Common.js]]. Grunny no longer
// keeps this code in a separate file, but it seems to be
// working just as well to have it separately as to have it
// imbedded in THIS file. Since it's fairly arcane, mundane code
// it may be better to have it out of the way in its own file.
/* =================
BEGIN PRELOADS
================= */
/* =================
Edit summaries
from runescape.wikia.com
=================
$(function() {
if (skin == 'oasis'){
var $label = $('#edit_enhancements_toolbar #wpSummaryLabel');
if (!$label.size()) {
return;
}
}
if (skin == 'monobook'){
var $label = $('.editOptions #wpSummaryLabel');
if (!$label.size()) {
return;
}
}
$combo = $('<select />').attr('id', 'stdSummaries').change(function() {
var val = $(this).val();
if (val != '') {
$('#wpSummaryEnhanced,#wpSummary').val(val);
}
});
$label.prepend('<br />').prepend($combo).prepend('Summaries: ');
$.ajax({
'dataType': 'text',
'data': {
'title': 'Template:Stdsummaries',
'action': 'raw',
'ctype': 'text/plain'
},
'url': wgScript,
'success': function(data) {
var lines = data.split("\n");
for (var i in lines) {
var val = (lines[i].indexOf('-- ') == 0) ? lines[i].substring(3) : '';
var text = (lines[i].indexOf('-- ') == 0) ? ' ' + lines[i].substring(3) : lines[i];
var disable = (lines[i].indexOf('-- ') == 0 || lines[i].indexOf('(') == 0) ? '' : 'disabled';
var $opt = '<option value="' + val + '" ' + disable + '>' + text + '</option>';
$combo.append($opt);
}
}
});
})
*/
/* =================
* jQuery version of fillPreloads
* by Grunny at starwars.wikia.com
* ================= */
function fillPreloads() {
if( !$( '#lf-preload' ).length ) {
return;
}
var preloadOptionsHtml = '',
$preloadOptionsList;
$( '#lf-preload' ).attr( 'style', 'display: block' );
$.get( wgScript, { title: 'Template:Stdpreloads', action: 'raw', ctype: 'text/plain' }, function( data ) {
var lines = data.split( '\n' );
for( var i = 0; i < lines.length; i++ ) {
var value = ( lines[i].indexOf( '-- ' ) === 0 ) ? lines[i].substring(3) : "";
preloadOptionsHtml += '<option value="' + value + '">' + lines[i] + '</option>';
}
$preloadOptionsList = $( '<select />' ).attr( 'id', 'stdSummaries' ).html( preloadOptionsHtml ).change( function() {
var value = $( this ).val();
if ( value !== '' ) {
value = 'Template:' + value + '/preload';
value = value.replace( ' ', '_' );
$.get( wgScript, { title: value, action: 'raw', ctype: 'text/plain' }, function( data ) {
insertAtCursor( document.getElementById( 'wpTextbox1' ), data );
} );
}
} );
$( '#lf-preload-cbox' ).html( $preloadOptionsList );
} );
$( '#lf-preload-pagename' ).html( '<input type="text" class="textbox" />' );
$( '#lf-preload-button' ).html( '<input type="button" class="button" value="Insert" onclick="doCustomPreload()" />' );
}
function doCustomPreload() {
var value = $( '#lf-preload-pagename > input' ).val();
value = value.replace( ' ', '_' );
$.get( wgScript, { title: value, action: 'raw', ctype: 'text/plain' }, function( data ) {
insertAtCursor( document.getElementById( 'wpTextbox1' ), data );
} );
}
/* =============
Title rewrite
jQuery version and new wikia skin fixes by Grunny
==============
This is what powers
[[template:title]],
principally allowing
for italic page titles
============== */
function rewriteTitle() {
if( typeof( window.SKIP_TITLE_REWRITE ) != 'undefined' && window.SKIP_TITLE_REWRITE ) {
return;
}
if( $('#title-meta').length == 0 ) {
return;
}
var newTitle = $('#title-meta').html();
if( skin == "oasis" ) {
$('header.WikiaPageHeader > h1').html('<div id="title-meta" style="display: inline;">' + newTitle + '</div>');
$('header.WikiaPageHeader > h1').attr('style','text-align:' + $('#title-align').html() + ';');
} else {
$('.firstHeading').html('<div id="title-meta" style="display: inline;">' + newTitle + '</div>');
$('.firstHeading').attr('style','text-align:' + $('#title-align').html() + ';');
}
}
/* ================
TABLE stuff
================ */
//$("tr:odd").addClass("zebra-stripe"); (adversely affects TOCs for a reason I've not yet determined)
$("table").delegate('td','mouseover mouseleave', function(e) {
if (e.type == 'mouseover') {
$(this).parent().addClass("hover");
$("colgroup").eq($(this).index()).addClass("hover2");
}
else {
$(this).parent().removeClass("hover");
$("colgroup").eq($(this).index()).removeClass("hover2");
}
});
/*globals defaults:true, window:false, $:false */
// First of all we need to detect whether browser
// supports animation natively or it needs a javascript
// polyfill.
// The detection code by the courtesy of Christian Heilmann
// http://hacks.mozilla.org/2011/09/detecting-and-generating-css-animations-in-javascript/
var animation = false,
elm = document.createElement('detect'),
animationstring = 'animation',
keyframeprefix = '',
domPrefixes = 'Webkit Moz O ms Khtml'.split(' '),
pfx = '';
if( elm.style.animationName ) { animation = true; }
if( animation === false ) {
for( var i = 0; i < domPrefixes.length; i++ ) {
if( elm.style[ domPrefixes[i] + 'AnimationName' ] !== undefined ) {
pfx = domPrefixes[ i ];
animationstring = pfx + 'Animation';
keyframeprefix = '-' + pfx.toLowerCase() + '-';
animation = true;
break;
}
}
}
(function ($) {
$.slowEach = function (array, interval, callback) {
if (!array.length) {
return;
}
var i = 0;
function next() {
if (callback.call(array[i], i, array[i]) !== false) {
if (++i < array.length) {
setTimeout(next, interval);
}
}
}
next();
return array;
};
$.fn.dissolve = function (options) {
var op = $.extend(defaults, options),
$that = $(this),
interval = op.visibleItemDuration + op.transitionDuration;
return $.slowEach(this, interval, function () {
var $this = $(this);
$this
.animate({
opacity: 1
}, op.transitionDuration, function () {
function initCarousel() {
$that.dissolve(options);
}
if ($this.is(':last-child')) {
setTimeout(initCarousel, op.visibleItemDuration);
}
})
.delay(op.visibleItemDuration)
.animate({
opacity: 0
}, op.transitionDuration);
});
};
var defaults = {
visibleItemDuration: 4000,
transitionDuration: 1000
};
}(window.jQuery));
$(function () {
if( animation === false ) {
$('.dissolve .item').dissolve({
// TUNE YOUR CAROUSEL HERE
// duration of an item being visible in miliseconds
visibleItemDuration: 4000,
// duration of a transition between items in miliseconds
transitionDuration: 1000
});
}
});
/* ================
Other imports
================ */
importArticles({
type: "script",
articles: [
"MediaWiki:Functions.js",
"MediaWiki:Common.js/forumnote.js"
]
});
/* ================
AJAX
customisation
================ */
window.ajaxPages = ["Special:RecentChanges","Special:WikiActivity","Special:Watchlist","Special:Log","Special:Contributions"];
window.ajaxRefresh = 30000
AjaxRCRefreshText = 'Auto-refresh via AJAX';
AjaxRCRefreshHoverText = 'Automatically refreshes the page';
/* ================
ARCHIVE TOOL
customisation
================ */
var ArchiveToolConfig = {
archiveListTemplate: 'ArchCat',
archivePageTemplate: 'ArchPage',
archiveSubpage: 'Archive',
userLang: true
};
/* ================
SPOILER ALERT
customisation
================ */
/**
* SpoilerAlert
* documentation at: http://dev.wikia.com/wiki/SpoilerAlert
* © Peter Coester, 2012
*
* __NOWYSIWYG__
*/
SpoilerAlert = {
question: 'This page may contain spoilers about unreleased stories. Are you sure you want to read it?',
yes: 'Hit me with your best shot',
no: 'Get me the hell out of here',
isSpoiler: function () {
return -1 !== wgCategories.indexOf('Contains spoilers');
},
back:true
};
/* =============
MOS box
from Brickipedia
==============
This is the little box underneath the
search bar and article tally, which has the
Seal of Rassilon in it.
===============
Keep at end of common.js, but before
any addOnloadHooks.
================ */
importScript('MediaWiki:Common.js/mosbox.js');
/* ================
addOnloadHook area
================
Necessary for calling to life functions
specified elsewhere in this document.
================= */
addOnloadHook( rewriteTitle );