MediaWiki:Common.js: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
/*global mw, $, importScript, jsMsg */ | |||
// Add "mainpage" class to the body element | |||
if ( | |||
mw.config.get( 'wgMainPageTitle' ) === mw.config.get( 'wgPageName' ) && | |||
mw.config.get( 'wgAction' ) === 'view' | |||
) { | |||
$( document ).ready( function() { | |||
document.body.className += ' mainpage'; | |||
}); | |||
} | } | ||
// Editpage scripts | |||
if ( mw.config.get( 'wgAction' ) == 'edit' || mw.config.get( 'wgAction' ) == 'submit' ) { | |||
importScript( 'MediaWiki:Editpage.js' ); | |||
} | } | ||
/* End of extra pages */ | |||
/** | |||
* Test if an element has a certain class | |||
* | |||
* Based on script from en.wikipedia.org, 2008-09-15. | |||
* Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]] | |||
* | |||
* @deprecated since MediaWiki 1.17: Use jQuery(element).hasClass instead | |||
*/ | |||
var hasClass = ( function () { | |||
var reCache = {}; | |||
return function ( element, className ) { | |||
return ( reCache[className] ? reCache[className] : ( reCache[className] = new RegExp( "(?:\\s|^)" + className + "(?:\\s|$)" ) ) ).test( element.className ); | |||
}; | |||
})(); | |||
/** | |||
* Hide prefix in category | |||
* | |||
* @source: www.mediawiki.org/wiki/Snippets/Hide_prefix_in_category | |||
* @rev: 3 | |||
* @author Krinkle | |||
*/ | |||
mw.loader.using( 'jquery.mwExtension', function () { | |||
var $tplHideCategoryPrefix = $( '#mw-cat-hideprefix' ); | |||
if ( $tplHideCategoryPrefix.length ) { | |||
var prefix = $tplHideCategoryPrefix.text(); | |||
if ( $.trim( prefix ) === '' ) { | |||
prefix = mw.config.get( 'wgTitle' ) + '/'; | |||
} | |||
$( '#mw-pages' ).find( 'a' ).text( function( i, val ){ | |||
return val.replace( new RegExp( '^' + $.escapeRE( prefix ) ), '' ); | |||
}); | |||
} | |||
}); | |||
/** | |||
* Load the CodeReview 'tooltips' gadget on [[MediaWiki roadmap]] subpages, | |||
* so it's available for the revision reports where it's particularly useful | |||
* @author: Happy-melon | |||
*/ | |||
if ( mw.config.get( 'wgPageName' ).match( /^MediaWiki_roadmap/ ) ) { | |||
mw.loader.load( 'ext.codereview.tooltips' ); | |||
} | |||
/** | |||
* Load withJS and withCSS | |||
* | |||
* @source: www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL#Load_withJS_and_withCSS | |||
* @rev: 1 | |||
* @author: Krinkle | |||
*/ | |||
/* withJS */ | |||
var extraJS = mw.util.getParamValue( 'withJS' ); | |||
if ( extraJS ) { | |||
// Disallow some characters in file name | |||
if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) { | |||
importScript( extraJS ); | |||
// Don't use alert but the jsMsg system. Run jsMsg only once the DOM is ready. | |||
} else { | |||
$( document ).ready( function() { | |||
jsMsg( extraJS + ' script not allowed to be loaded.', 'error' ); | |||
} ); | |||
} | |||
} | |||
/* withCSS */ | |||
var extraCSS = mw.util.getParamValue( 'withCSS' ); | |||
if ( extraCSS ) { | |||
// Disallow some characters in file name | |||
if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) { | |||
importStylesheet( extraCSS ); | |||
// Don't use alert but the jsMsg system. Run jsMsg only once the DOM is ready. | |||
} else { | |||
$( document ).ready( function() { | |||
jsMsg( extraCSS + ' stylesheet not allowed to be loaded.', 'error' ); | |||
} ); | |||
} | |||
} | } | ||
Revision as of 01:19, 15 November 2013
/*global mw, $, importScript, jsMsg */
// Add "mainpage" class to the body element
if (
mw.config.get( 'wgMainPageTitle' ) === mw.config.get( 'wgPageName' ) &&
mw.config.get( 'wgAction' ) === 'view'
) {
$( document ).ready( function() {
document.body.className += ' mainpage';
});
}
// Editpage scripts
if ( mw.config.get( 'wgAction' ) == 'edit' || mw.config.get( 'wgAction' ) == 'submit' ) {
importScript( 'MediaWiki:Editpage.js' );
}
/* End of extra pages */
/**
* Test if an element has a certain class
*
* Based on script from en.wikipedia.org, 2008-09-15.
* Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
*
* @deprecated since MediaWiki 1.17: Use jQuery(element).hasClass instead
*/
var hasClass = ( function () {
var reCache = {};
return function ( element, className ) {
return ( reCache[className] ? reCache[className] : ( reCache[className] = new RegExp( "(?:\\s|^)" + className + "(?:\\s|$)" ) ) ).test( element.className );
};
})();
/**
* Hide prefix in category
*
* @source: www.mediawiki.org/wiki/Snippets/Hide_prefix_in_category
* @rev: 3
* @author Krinkle
*/
mw.loader.using( 'jquery.mwExtension', function () {
var $tplHideCategoryPrefix = $( '#mw-cat-hideprefix' );
if ( $tplHideCategoryPrefix.length ) {
var prefix = $tplHideCategoryPrefix.text();
if ( $.trim( prefix ) === '' ) {
prefix = mw.config.get( 'wgTitle' ) + '/';
}
$( '#mw-pages' ).find( 'a' ).text( function( i, val ){
return val.replace( new RegExp( '^' + $.escapeRE( prefix ) ), '' );
});
}
});
/**
* Load the CodeReview 'tooltips' gadget on [[MediaWiki roadmap]] subpages,
* so it's available for the revision reports where it's particularly useful
* @author: Happy-melon
*/
if ( mw.config.get( 'wgPageName' ).match( /^MediaWiki_roadmap/ ) ) {
mw.loader.load( 'ext.codereview.tooltips' );
}
/**
* Load withJS and withCSS
*
* @source: www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL#Load_withJS_and_withCSS
* @rev: 1
* @author: Krinkle
*/
/* withJS */
var extraJS = mw.util.getParamValue( 'withJS' );
if ( extraJS ) {
// Disallow some characters in file name
if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) {
importScript( extraJS );
// Don't use alert but the jsMsg system. Run jsMsg only once the DOM is ready.
} else {
$( document ).ready( function() {
jsMsg( extraJS + ' script not allowed to be loaded.', 'error' );
} );
}
}
/* withCSS */
var extraCSS = mw.util.getParamValue( 'withCSS' );
if ( extraCSS ) {
// Disallow some characters in file name
if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) {
importStylesheet( extraCSS );
// Don't use alert but the jsMsg system. Run jsMsg only once the DOM is ready.
} else {
$( document ).ready( function() {
jsMsg( extraCSS + ' stylesheet not allowed to be loaded.', 'error' );
} );
}
}