summaryrefslogtreecommitdiff
path: root/resources/mediawiki.special/mediawiki.special.changeemail.js
diff options
context:
space:
mode:
Diffstat (limited to 'resources/mediawiki.special/mediawiki.special.changeemail.js')
-rw-r--r--resources/mediawiki.special/mediawiki.special.changeemail.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/resources/mediawiki.special/mediawiki.special.changeemail.js b/resources/mediawiki.special/mediawiki.special.changeemail.js
new file mode 100644
index 00000000..6b4ed81d
--- /dev/null
+++ b/resources/mediawiki.special/mediawiki.special.changeemail.js
@@ -0,0 +1,40 @@
+/*
+ * JavaScript for Special:ChangeEmail
+ */
+( function( $, mw ) {
+
+/**
+ * Given an email validity status (true, false, null) update the label CSS class
+ */
+var updateMailValidityLabel = function( mail ) {
+ var isValid = mw.util.validateEmail( mail ),
+ $label = $( '#mw-emailaddress-validity' );
+
+ // 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' );
+ }
+};
+
+// 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 direct feedback if it was invalid onblur
+$( '#wpNewEmail' ).one( 'blur', function() {
+ if ( $( '#mw-emailaddress-validity' ).length === 0 ) {
+ $(this).after( '<label for="wpNewEmail" id="mw-emailaddress-validity"></label>' );
+ }
+ updateMailValidityLabel( $(this).val() );
+ $(this).keyup( function() {
+ updateMailValidityLabel( $(this).val() );
+ } );
+} );
+
+} )( jQuery, mediaWiki );