85,506
edits
m (Testing latest version from Wikiipedia) |
m (Undo revision 37163 by Abhidevananda (talk) - did not resolve problem of missing Twinkle) |
||
Line 11: | Line 11: | ||
* dependency hasn't arrived yet it'll make sure those are loaded before this. | * dependency hasn't arrived yet it'll make sure those are loaded before this. | ||
*/ | */ | ||
/*global mw, $, importStylesheet, importScript */ | |||
/*jshint curly:false eqnull:true, strict:false, browser:true, */ | |||
mw.loader.using( ['mediawiki.util', 'mediawiki.notify', 'jquery.client'], function () { | |||
mw.loader.using( ['mediawiki.util', 'mediawiki.notify', 'jquery.client'] | |||
/* Begin of mw.loader.using callback */ | /* Begin of mw.loader.using callback */ | ||
Line 23: | Line 22: | ||
* Description: Adds an additional link to the complete list of languages available. | * Description: Adds an additional link to the complete list of languages available. | ||
* Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]] | * Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]] | ||
* | * | ||
if ( mw.config.get( 'wgPageName' ) === 'Main_Page' || mw.config.get( 'wgPageName' ) === 'Talk:Main_Page' ) { | if ( mw.config.get( 'wgPageName' ) === 'Main_Page' || mw.config.get( 'wgPageName' ) === 'Talk:Main_Page' ) { | ||
$( function () { | $( function () { | ||
Line 30: | Line 29: | ||
} ); | } ); | ||
} | } | ||
*/ | |||
/** | /** | ||
Line 52: | Line 52: | ||
/** | /** | ||
* Map addPortletLink to mw.util | * Map addPortletLink to mw.util | ||
* | |||
* @deprecated: Use mw.util.addPortletLink instead. | * @deprecated: Use mw.util.addPortletLink instead. | ||
*/ | */ | ||
mw.log.deprecate( window, 'addPortletLink', mw.util.addPortletLink, 'Use mw.util.addPortletLink instead' ); | mw.log.deprecate( window, 'addPortletLink', function () { | ||
return mw.util.addPortletLink.apply( mw.util, arguments ); | |||
}, 'Use mw.util.addPortletLink() instead' ); | |||
/** | /** | ||
* Extract a URL parameter from the current URL | * Extract a URL parameter from the current URL | ||
* | |||
* @deprecated: Use mw.util.getParamValue with proper escaping | * @deprecated: Use mw.util.getParamValue with proper escaping | ||
*/ | */ | ||
mw.log.deprecate( window, 'getURLParamValue', mw.util.getParamValue, 'Use mw.util.getParamValue instead' ); | mw.log.deprecate( window, 'getURLParamValue', function () { | ||
return mw.util.getParamValue.apply( mw.util, arguments ); | |||
}, 'Use mw.util.getParamValue() instead' ); | |||
/** | /** | ||
* Test if an element has a certain class | * Test if an element has a certain class | ||
* | |||
* @deprecated: Use $(element).hasClass() instead. | * @deprecated: Use $(element).hasClass() instead. | ||
*/ | */ | ||
Line 73: | Line 80: | ||
/** | /** | ||
* @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL | * @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL | ||
* @rev | * @rev 5 | ||
*/ | */ | ||
var extraCSS = mw.util.getParamValue( 'withCSS | // CSS | ||
var extraCSS = mw.util.getParamValue( 'withCSS' ); | |||
if ( extraCSS ) { | if ( extraCSS ) { | ||
if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) { | |||
importStylesheet( extraCSS ); | |||
} else { | |||
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withCSS value' } ); | |||
} | |||
} | } | ||
// JS | |||
var extraJS = mw.util.getParamValue( 'withJS' ); | |||
if ( extraJS ) { | if ( extraJS ) { | ||
if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) { | |||
importScript( extraJS ); | |||
} else { | |||
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withJS value' } ); | |||
} | |||
} | } | ||
Line 110: | Line 118: | ||
/** | /** | ||
* | * Load scripts specific to Internet Explorer | ||
*/ | */ | ||
( | if ( $.client.profile().name === 'msie' ) { | ||
importScript( 'MediaWiki:Common.js/IEFixes.js' ); | |||
} | |||
/** | /** | ||
Line 130: | Line 128: | ||
*/ | */ | ||
if ( navigator.appVersion.search(/windows nt 5/i) !== -1 ) { | if ( navigator.appVersion.search(/windows nt 5/i) !== -1 ) { | ||
mw.util.addCSS( '.IPA { font-family: "Lucida Sans Unicode", "Arial Unicode MS"; } ' + | mw.util.addCSS( '.IPA { font-family: "Lucida Sans Unicode", "Arial Unicode MS"; } ' + | ||
'.Unicode { font-family: "Arial Unicode MS", "Lucida Sans Unicode"; } ' ); | '.Unicode { font-family: "Arial Unicode MS", "Lucida Sans Unicode"; } ' ); | ||
} | } | ||
Line 140: | Line 138: | ||
* This script causes all of our coordinate links to display the WikiMiniAtlas popup button. | * This script causes all of our coordinate links to display the WikiMiniAtlas popup button. | ||
* The script itself is located on meta because it is used by many projects. | * The script itself is located on meta because it is used by many projects. | ||
* See [[Meta:WikiMiniAtlas]] for more information. | * See [[Meta:WikiMiniAtlas]] for more information. | ||
* Maintainers: [[User:Dschwen]] | * Maintainers: [[User:Dschwen]] | ||
*/ | */ | ||
Line 162: | Line 160: | ||
} ); | } ); | ||
} )(); | } )(); | ||
/** | |||
* Interwiki links to featured articles *************************************** | |||
* | |||
* Description: Highlights interwiki links to featured articles (or | |||
* equivalents) by changing the bullet before the interwiki link | |||
* into a star. | |||
* Maintainers: [[User:R. Koot]] | |||
*/ | |||
function LinkFA() { | |||
if ( document.getElementById( 'p-lang' ) ) { | |||
var InterwikiLinks = document.getElementById( 'p-lang' ).getElementsByTagName( 'li' ); | |||
for ( var i = 0; i < InterwikiLinks.length; i++ ) { | |||
var className = InterwikiLinks[i].className.match(/interwiki-[-\w]+/); | |||
if ( document.getElementById( className + '-fa' ) ) { | |||
InterwikiLinks[i].className += ' FA'; | |||
InterwikiLinks[i].title = 'This is a featured article in this language.'; | |||
} else if ( document.getElementById( className + '-ga' ) ) { | |||
InterwikiLinks[i].className += ' GA'; | |||
InterwikiLinks[i].title = 'This is a good article in this language.'; | |||
} | |||
} | |||
} | |||
} | |||
mw.hook( 'wikipage.content' ).add( LinkFA ); | |||
/** | /** | ||
* Collapsible tables | * Collapsible tables | ||
* | * | ||
* Allows tables to be collapsed, showing only the header. See [[Wikipedia:NavFrame]]. | * Allows tables to be collapsed, showing only the header. See [[Wikipedia:NavFrame]]. | ||
* | * | ||
* @version 2.0.3 (2014-03-14) | * @version 2.0.3 (2014-03-14) | ||
Line 179: | Line 204: | ||
var collapseCaption = 'hide'; | var collapseCaption = 'hide'; | ||
var expandCaption = 'show'; | var expandCaption = 'show'; | ||
function collapseTable( tableIndex ) { | function collapseTable( tableIndex ) { | ||
Line 204: | Line 228: | ||
} | } | ||
} | } | ||
function createClickHandler( tableIndex ) { | function createClickHandler( tableIndex ) { | ||
return function ( e ) { | return function ( e ) { | ||
Line 212: | Line 236: | ||
} | } | ||
function createCollapseButtons( | function createCollapseButtons() { | ||
var tableIndex = 0; | |||
var NavigationBoxes = {}; | var NavigationBoxes = {}; | ||
var | var Tables = document.getElementsByTagName( 'table' ); | ||
var i; | var i; | ||
for ( i = 0; i < Tables.length; i++ ) { | |||
if ( $( | if ( $( Tables[i] ).hasClass( 'collapsible' ) ) { | ||
/* only add button and increment count if there is a header row to work with */ | /* only add button and increment count if there is a header row to work with */ | ||
var HeaderRow = | var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0]; | ||
if ( !HeaderRow ) { | if ( !HeaderRow ) { | ||
continue; | |||
} | } | ||
var Header = | var Header = HeaderRow.getElementsByTagName( 'th' )[0]; | ||
if ( !Header ) { | if ( !Header ) { | ||
continue; | |||
} | } | ||
NavigationBoxes[ tableIndex ] = | NavigationBoxes[ tableIndex ] = Tables[i]; | ||
Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex ); | |||
var Button = document.createElement( 'span' ); | var Button = document.createElement( 'span' ); | ||
Line 252: | Line 277: | ||
tableIndex++; | tableIndex++; | ||
} | } | ||
} | } | ||
for ( i = 0; i < tableIndex; i++ ) { | for ( i = 0; i < tableIndex; i++ ) { | ||
Line 259: | Line 284: | ||
) { | ) { | ||
collapseTable( i ); | collapseTable( i ); | ||
} | } | ||
else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) { | else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) { | ||
var element = NavigationBoxes[i]; | var element = NavigationBoxes[i]; | ||
Line 284: | Line 309: | ||
var NavigationBarHide = '[' + collapseCaption + ']'; | var NavigationBarHide = '[' + collapseCaption + ']'; | ||
var NavigationBarShow = '[' + expandCaption + ']'; | var NavigationBarShow = '[' + expandCaption + ']'; | ||
/** | /** | ||
Line 323: | Line 347: | ||
/* adds show/hide-button to navigation bars */ | /* adds show/hide-button to navigation bars */ | ||
function createNavigationBarToggleButton( | function createNavigationBarToggleButton() { | ||
var indexNavigationBar = 0; | |||
var NavFrame; | |||
var NavChild; | var NavChild; | ||
/* iterate over all < div >-elements */ | /* iterate over all < div >-elements */ | ||
var | var divs = document.getElementsByTagName( 'div' ); | ||
for ( var i = 0; (NavFrame = divs[i]); i++ ) { | |||
/* if found a navigation bar */ | /* if found a navigation bar */ | ||
if ( $( NavFrame ).hasClass( 'NavFrame' ) ) { | if ( $( NavFrame ).hasClass( 'NavFrame' ) ) { | ||
Line 372: | Line 398: | ||
NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar ); | NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar ); | ||
} | } | ||
} | } | ||
} | } | ||
Line 427: | Line 453: | ||
$( function () { | $( function () { | ||
var cats = | var cats = document.getElementById( 'mw-normal-catlinks' ); | ||
if ( !cats ) { | if ( !cats ) { | ||
return; | return; | ||
} | } | ||
cats = cats.getElementsByTagName( 'a' ); | |||
for ( var i = 0; i < cats.length; i++ ) { | |||
if ( cats[i].title === 'Category:Living people' || cats[i].title === 'Category:Possibly living people' ) { | |||
addEditIntro( 'Template:BLP_editintro' ); | |||
break; | |||
} | |||
} | } | ||
} ); | } ); | ||
} | |||
/** | |||
* Description: Stay on the secure server as much as possible | |||
* Maintainers: [[User:TheDJ]] | |||
*/ | |||
if ( document.location && document.location.protocol === 'https:' ) { | |||
/* New secure servers */ | |||
importScript( 'MediaWiki:Common.js/secure new.js' ); | |||
} | |||
/** | |||
* Description: Removes ArticleFeedback related cookies from clients. | |||
* Can be removed in a couple of weeks to a month or so. | |||
* Maintainers: [[User:Reedy]] | |||
*/ | |||
var match, re = /[\S]*articleFeedback[^=]*/g; | |||
while ( ( match = re.exec( document.cookie ) ) !== null ) { | |||
document.cookie = match + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/;'; | |||
} | } | ||