User:Krinkle/userPageMoveWarning.js

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
/**
 * Warn when new users move user (talk) pages
 * @created January 31, 2010
 * @revision 2
 * @author Krinkle
 * @license Released in the public domain
 *
 * @TODO: Currently it also warns when moving subpages. This should be filtered out. Only warn for moving the main user/user talk page
 *
 * To simulate it for non-new users importScript() this page and set 'moveWarnDemo' to true *before* the import
 * <source lang="javascript:>
   window.moveWarnDemo = true;
   importScript( 'User:Krinkle/userPageMoveWarning.js' );
   </source>
 *
 */
function userPageMoveWarning(){
	jQuery( document ).ready( function( $ ) {
		// Check environment
		var	isMovingUsertalk = $( 'body' )[0].className.indexOf('page-Special_MovePage_User_talk_') !== -1,
			isMovingUser = $( 'body' )[0].className.indexOf('page-Special_MovePage_User_') !== -1,
			isAutoconfirmed = $.inArray( 'autoconfirmed', wgUserGroups ) !== -1,
		// Messages
			msgMoveWarn = {
				'en' : 'Pages in the User or User talk namespace can not be moved. To rename your account visit <a href="$1">Commons:Changing username</a>. If you wish you archive your user talk page, please ask someone at the <a href="$2">Help desk</a>.'
			},
			msgComCHU = {
				'en' : 'Commons:Changing_username'
			},
			msgComHD = {
				'en' : 'Commons:Help_desk'
			},
		// Process
			urlComCHU = wgArticlePath.replace( '$1', msgComCHU[wgUserLanguage] || msgComCHU.en ),
			urlComHD = wgArticlePath.replace( '$1', msgComHD[wgUserLanguage] || msgComHD.en ),
			warningRaw = msgMoveWarn[wgUserLanguage] || msgMoveWarn.en,
			warning = warningRaw.replace( /\$1/g, urlComCHU ).replace( /\$2/g, urlComHD ),
			simulateWarning = typeof window.moveWarnDemo !== 'undefined' && window.moveWarnDemo === true;
		
		
		if ( ( isMovingUsertalk || isMovingUser ) && ( !isAutoconfirmed || simulateWarning ) ) {
			$( '#movepage' )
				.before( '<hr /><p>&nbsp;</p><div class="errorbox"><p>' + warning + '</p></div>' )
				.hide();
		}
	});
}
userPageMoveWarning();