From 59e9daf6e7a4d1e016b5e9d97d6a3fc7d7072d6d Mon Sep 17 00:00:00 2001 From: Robin Pepermans Date: Sat, 17 Dec 2011 18:31:25 +0000 Subject: [PATCH] Follow-up r92924: move the CSS/JS for e-mail validation to Special:ChangeEmail. Also merge the different LTR/RTL styles, it is flipped anyway. --- includes/specials/SpecialChangeEmail.php | 1 + resources/Resources.php | 7 +++- ....css => mediawiki.special.changeemail.css} | 6 +-- .../mediawiki.special.changeemail.js | 38 +++++++++++++++++++ .../mediawiki.special.preferences.js | 35 ----------------- 5 files changed, 45 insertions(+), 42 deletions(-) rename resources/mediawiki.special/{mediawiki.special.preferences.css => mediawiki.special.changeemail.css} (70%) create mode 100644 resources/mediawiki.special/mediawiki.special.changeemail.js diff --git a/includes/specials/SpecialChangeEmail.php b/includes/specials/SpecialChangeEmail.php index 9f03ecfe92..0f85f516b8 100644 --- a/includes/specials/SpecialChangeEmail.php +++ b/includes/specials/SpecialChangeEmail.php @@ -67,6 +67,7 @@ class SpecialChangeEmail extends UnlistedSpecialPage { $out = $this->getOutput(); $out->disallowUserJs(); + $out->addModules( 'mediawiki.special.changeemail' ); $this->mPassword = $request->getVal( 'wpPassword' ); $this->mNewEmail = $request->getVal( 'wpNewEmail' ); diff --git a/resources/Resources.php b/resources/Resources.php index 33243f2ca6..74a8e0fdf6 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -720,6 +720,11 @@ return array( 'mediawiki.special.block' => array( 'scripts' => 'resources/mediawiki.special/mediawiki.special.block.js', ), + 'mediawiki.special.changeemail' => array( + 'scripts' => 'resources/mediawiki.special/mediawiki.special.changeemail.js', + 'styles' => 'resources/mediawiki.special/mediawiki.special.changeemail.css', + 'messages' => array( 'email-address-validity-valid', 'email-address-validity-invalid' ), + ), 'mediawiki.special.changeslist' => array( 'styles' => 'resources/mediawiki.special/mediawiki.special.changeslist.css', 'dependencies' => array( 'jquery.makeCollapsible' ), @@ -730,8 +735,6 @@ return array( ), 'mediawiki.special.preferences' => array( 'scripts' => 'resources/mediawiki.special/mediawiki.special.preferences.js', - 'styles' => 'resources/mediawiki.special/mediawiki.special.preferences.css', - 'messages' => array( 'email-address-validity-valid', 'email-address-validity-invalid' ), ), 'mediawiki.special.recentchanges' => array( 'scripts' => 'resources/mediawiki.special/mediawiki.special.recentchanges.js', diff --git a/resources/mediawiki.special/mediawiki.special.preferences.css b/resources/mediawiki.special/mediawiki.special.changeemail.css similarity index 70% rename from resources/mediawiki.special/mediawiki.special.preferences.css rename to resources/mediawiki.special/mediawiki.special.changeemail.css index 8f628a95b9..3d53e8dbde 100644 --- a/resources/mediawiki.special/mediawiki.special.preferences.css +++ b/resources/mediawiki.special/mediawiki.special.changeemail.css @@ -1,14 +1,10 @@ #mw-emailaddress-validity { padding: 2px 1em; } -body.ltr #mw-emailaddress-validity { +#mw-emailaddress-validity { border-bottom-right-radius: 0.8em; border-top-right-radius: 0.8em; } -body.rtl #mw-emailaddress-validity { - border-bottom-left-radius: 0.8em; - border-top-left-radius: 0.8em; -} #mw-emailaddress-validity.valid { border: 1px solid #80FF80; background-color: #C0FFC0; diff --git a/resources/mediawiki.special/mediawiki.special.changeemail.js b/resources/mediawiki.special/mediawiki.special.changeemail.js new file mode 100644 index 0000000000..578a15e201 --- /dev/null +++ b/resources/mediawiki.special/mediawiki.special.changeemail.js @@ -0,0 +1,38 @@ +/* + * 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( '' ); + } + updateMailValidityLabel( $(this).val() ); + $(this).keyup( function() { + updateMailValidityLabel( $(this).val() ); + } ); +} ); +} )( jQuery, mediaWiki ); \ No newline at end of file diff --git a/resources/mediawiki.special/mediawiki.special.preferences.js b/resources/mediawiki.special/mediawiki.special.preferences.js index 63e3885bcb..b720082625 100644 --- a/resources/mediawiki.special/mediawiki.special.preferences.js +++ b/resources/mediawiki.special/mediawiki.special.preferences.js @@ -58,41 +58,6 @@ $( function() { } } ); -/** - * 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 -$( '#mw-input-wpemailaddress' ).one( 'blur', function() { - if ( $( '#mw-emailaddress-validity' ).length === 0 ) { - $(this).after( '' ); - } - updateMailValidityLabel( $(this).val() ); - $(this).keyup( function() { - updateMailValidityLabel( $(this).val() ); - } ); -} ); - - /** * Timezone functions. -- 2.20.1