Revert "mediawiki.special.userlogin.signup: Remove unnecessary field hiding code"
authorBartosz Dziewoński <matma.rex@gmail.com>
Mon, 25 Jul 2016 13:55:20 +0000 (13:55 +0000)
committerBartosz Dziewoński <matma.rex@gmail.com>
Mon, 25 Jul 2016 13:55:20 +0000 (13:55 +0000)
Whoops, we actually still have the option to bring back the old
custom HTML login forms ($wgDisableAuthManager). Too early.

This reverts commit 23e5bcb767c57d3a3f90b9fc597b87c8706a4027.

Change-Id: Ifb3ab1bf27ba2190177b65f5442dde74d20140e9

resources/src/mediawiki.special/mediawiki.special.userlogin.signup.js

index 770a2f0..24f54d0 100644 (file)
@@ -2,6 +2,34 @@
  * JavaScript for signup form.
  */
 ( function ( mw, $ ) {
+       // When sending password by email, hide the password input fields.
+       $( function () {
+               // Always required if checked, otherwise it depends, so we use the original
+               var $emailLabel = $( 'label[for="wpEmail"]' ),
+                       originalText = $emailLabel.text(),
+                       requiredText = mw.message( 'createacct-emailrequired' ).text(),
+                       $createByMailCheckbox = $( '#wpCreateaccountMail' ),
+                       $beforePwds = $( '.mw-row-password:first' ).prev(),
+                       $pwds;
+
+               function updateForCheckbox() {
+                       var checked = $createByMailCheckbox.prop( 'checked' );
+                       if ( checked ) {
+                               $pwds = $( '.mw-row-password' ).detach();
+                               $emailLabel.text( requiredText );
+                       } else {
+                               if ( $pwds ) {
+                                       $beforePwds.after( $pwds );
+                                       $pwds = null;
+                               }
+                               $emailLabel.text( originalText );
+                       }
+               }
+
+               $createByMailCheckbox.on( 'change', updateForCheckbox );
+               updateForCheckbox();
+       } );
+
        // Check if the username is invalid or already taken
        $( function () {
                var