/*!
* JavaScript for signup form.
*/
-( function ( mw, $ ) {
+( function () {
// When sending password by email, hide the password input fields.
$( function () {
// Always required if checked, otherwise it depends, so we use the original
updateForCheckbox();
} );
- // Check if the username is invalid or already taken
+ // Check if the username is invalid or already taken; show username normalisation warning
mw.hook( 'htmlform.enhance' ).add( function ( $root ) {
var $usernameInput = $root.find( '#wpName2' ),
$passwordInput = $root.find( '#wpPassword2' ),
// We could just use .then() if we didn't have to pass on .abort()…
var d, apiPromise;
+ // Leading/trailing/multiple whitespace characters are always stripped in usernames,
+ // this should not require a warning. We do warn about underscores.
+ username = username.replace( / +/g, ' ' ).trim();
+
d = $.Deferred();
apiPromise = api.get( {
action: 'query',
return m.html;
} ) : []
} );
+ } else if ( userinfo.name !== username ) {
+ d.resolve( { valid: true, messages: [
+ mw.message( 'createacct-normalization', username, userinfo.name ).parseDom()
+ ] } );
} else {
d.resolve( { valid: true, messages: [] } );
}
passwordChecker = new mw.htmlform.Checker( $passwordInput, checkPassword );
passwordChecker.attach( $usernameInput.add( $emailInput ).add( $realNameInput ) );
} );
-}( mediaWiki, jQuery ) );
+}() );