diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2014-12-27 15:41:37 +0100 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2014-12-31 11:43:28 +0100 |
commit | c1f9b1f7b1b77776192048005dcc66dcf3df2bfb (patch) | |
tree | 2b38796e738dd74cb42ecd9bfd151803108386bc /resources/src/mediawiki.special/mediawiki.special.changeemail.js | |
parent | b88ab0086858470dd1f644e64cb4e4f62bb2be9b (diff) |
Update to MediaWiki 1.24.1
Diffstat (limited to 'resources/src/mediawiki.special/mediawiki.special.changeemail.js')
-rw-r--r-- | resources/src/mediawiki.special/mediawiki.special.changeemail.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/resources/src/mediawiki.special/mediawiki.special.changeemail.js b/resources/src/mediawiki.special/mediawiki.special.changeemail.js new file mode 100644 index 00000000..67531f78 --- /dev/null +++ b/resources/src/mediawiki.special/mediawiki.special.changeemail.js @@ -0,0 +1,52 @@ +/*! + * JavaScript for Special:ChangeEmail + */ +( function ( mw, $ ) { + /** + * Given an email validity status (true, false, null) update the label CSS class + * @ignore + */ + function updateMailValidityLabel( mail ) { + var isValid = mw.util.validateEmail( mail ), + $label = $( '#mw-emailaddress-validity' ); + + // Set up the validity notice if it doesn't already exist + if ( $label.length === 0 ) { + $label = $( '<label for="wpNewEmail" id="mw-emailaddress-validity"></label>' ) + .insertAfter( '#wpNewEmail' ); + } + + // We allow empty address + if ( isValid === null ) { + $label.text( '' ).removeClass( 'valid invalid' ); + + // Valid + } else if ( isValid ) { + $label.text( mw.msg( 'email-address-validity-valid' ) ).addClass( 'valid' ).removeClass( 'invalid' ); + + // Not valid + } else { + $label.text( mw.msg( 'email-address-validity-invalid' ) ).addClass( 'invalid' ).removeClass( 'valid' ); + } + } + + $( function () { + $( '#wpNewEmail' ) + // Lame tip to let user know if its email is valid. See bug 22449. + // Only bind once for 'blur' so that the user can fill it in without errors; + // after that, look at every keypress for immediate feedback. + .one( 'blur', function () { + var $this = $( this ); + updateMailValidityLabel( $this.val() ); + $this.keyup( function () { + updateMailValidityLabel( $this.val() ); + } ); + } ) + // Supress built-in validation notice and just call updateMailValidityLabel(), + // to avoid double notice. See bug 40909. + .on( 'invalid', function ( e ) { + e.preventDefault(); + updateMailValidityLabel( $( this ).val() ); + } ); + } ); +}( mediaWiki, jQuery ) ); |