Diferencia entre revisiones de «MediaWiki:Common.js»

Ir a la navegación Ir a la búsqueda
5991 bytes añadidos ,  hace 9 años
m
fix problem
m (unbreak)
m (fix problem)
$("[name='title']",$('form')).remove()
})
 
 
/* Any JavaScript here will be loaded for all users on every page load. */
 
/* 2014-05
add title attributes to all ref tags, containing the text shown in the ref
*/
$('[id*="cite_ref"]').each(function (i, el) {
var el = $(el)
var a = $('[href="#'+el.attr('id')+'"]')
el.attr('title', a.next('.reference-text').text() || a.parent().nextAll('.reference-text').text())
})
 
/** 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);
};
})();
 
/*
some skin tweaks
*/
jQuery(function ($) {
/* push Notes down below infoboxes */
$('h2:contains("Notes")').attr('class','notes');
/* replace "Coppermind:Welcome" with "Welcome to the Coppermind" */
$('h1:contains("Coppermind:Welcome")').text("Welcome to the Coppermind");
/* autocollapse infoboxes if off page
$('.notes').nextAll('.collapsible').each(function(i,el){
if (el.getBoundingClientRect().top > 0)
return;
})
*/
})
 
/*
filters for the first previous `sel` on each of `this`
cb gets the passed element and the first matched element (or _default, if nothing matched)
*/
$.fn.previous = function(sel, cb/*(el)*/, _default){
$(this).each(function(){ var pre = $(this).prevAll(sel); cb.call(this, pre.length ? pre.first() : _default); })
}
/* returns true if the element has the passed class */
$.fn.classed = function(cls){ return $(this)[0].classList?$(this)[0].classList.contains(cls):false; }
 
function ne(tag, attrs){ var _ = $(document.createElement(tag)); for (var i in attrs) _.attr(i, attrs[i]); return _; }
 
/*
filter for all .notice instances (not including .stub's)
returning the 'parent' header:
- subsection: the hX of the subsection
- preamble: the first h1 element
*/
function NoticeHeaderPairs(cb/*(el_header)*/){
$('.notice:not(.stub)').previous('h1,h2,h3,h4,h5', cb, $('h1'))
}
 
/*
pass to NoticeHeaderPairs to add notices to headers
*/
function AddNoticeToHeader(h){
var that = $(this)
function _match(cls,el){
if (!that.classed(cls))
return;
h.append(el);
that.hide();
el.click(function(){ that.toggle(); });
}
function _el(text,color){ return ne('span').attr('class','notice').attr('title',text).css('color',color); }
function _img(source,text){ return ne('img').attr('class','notice').attr('src', source).attr('alt', text).attr('title', text); }
/* matches */
_match('exemplary',_el('This article is exemplary','gold').text('★'));
_match('attention',_el('This article needs serious attention', 'red').text('!'));
_match('delete',_img('http://upload.wikimedia.org/wikipedia/commons/9/93/Trash_can.svg', 'This article is to be deleted'));
_match('move',_el('This article may be moved', 'blue').text('⇄'));
_match('copyright',_el('This article is copyright','brown').text('©'));
_match('spoilers',_el('This article/section has spoilers','#FAA').text('¬.¬'));
_match('theory',_el('This article/section contains theory or speculation','#29F').text('¿'));
}
 
jQuery(function($){
NoticeHeaderPairs(AddNoticeToHeader);
$('h1,h2:not(.notes),h3,h4').children(':not(.editsection,.notice)').css('margin-right','1em');
$('head').append(ne('meta', { name: 'viewport', content: 'width=device-width' }))
})
 
/* 2014-04
augment actionpaths edits to LocalSetting.php
*/
jQuery(function ($) {
$('[href*="title="]').attr('href', function (i, value) {
return value.replace(/\/w\/index.php\?title=(.+?)\&(.+?)/, "/wiki/$1?$2")
})
$('#searchform').attr('action', '/wiki/Special:Search')
$('form').attr('action', function (i, value) {
return value.replace("/w/index.php", "/wiki/" + $('[name="title"]', this).attr('value'))
})
$("[name='title']",$('form')).remove()
})
 
/* from https://www.mediawiki.org/wiki/Manual:Interface/Sidebar#Add_or_remove_toolbox_sections_.28JavaScript.29 */
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 ) {
// let's just ignore what's happened
return;
}
}
 
jQuery(function () {
if (!mw.config.get('wgIsArticle') && mw.config.get('wgAction') !== 'edit')
return;
var title = mw.config.get('wgTitle');
ModifySidebar( 'add', 'toolbox', "Search Brandon's website for " + title, //brandonsanderson.com/?s=' + title );
ModifySidebar( 'add', 'toolbox', "Interviews relating to " + title, '//www.theoryland.com/intvsresults.php?kw=' + title );
});
40 275

ediciones

Menú de navegación