User:Krinkle/userPageMoveWarning.js
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.
Documentation for this user script can be added at User:Krinkle/userPageMoveWarning. |
/**
* 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> </p><div class="errorbox"><p>' + warning + '</p></div>' )
.hide();
}
});
}
userPageMoveWarning();