From 5e95cd1db58454593513503059b83d7e8ab7a6ad Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Fri, 25 Sep 2015 13:53:04 +0000 Subject: [PATCH] Profile: when clicking "Generate Password", toggling visibility, then canceling, ensure that the UI resets properly for when the "Generate Password" button is clicked again. Props umesh.nevase. Fixes #33897. git-svn-id: https://develop.svn.wordpress.org/trunk@34539 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/js/user-profile.js | 35 ++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/wp-admin/js/user-profile.js b/src/wp-admin/js/user-profile.js index 247f29c92b..e591cb588d 100644 --- a/src/wp-admin/js/user-profile.js +++ b/src/wp-admin/js/user-profile.js @@ -98,26 +98,31 @@ } ); } + function resetToggle() { + $toggleButton + .data( 'toggle', 0 ) + .attr({ + 'aria-label': userProfileL10n.ariaHide + }) + .find( '.text' ) + .text( userProfileL10n.hide ) + .end() + .find( '.dashicons' ) + .removeClass( 'dashicons-visibility' ) + .addClass( 'dashicons-hidden' ); + + $pass1Text.focus(); + + $pass1Label.attr( 'for', 'pass1-text' ); + } + function bindToggleButton() { $toggleButton = $pass1Row.find('.wp-hide-pw'); $toggleButton.show().on( 'click', function () { if ( 1 === parseInt( $toggleButton.data( 'toggle' ), 10 ) ) { $pass1Wrap.addClass( 'show-password' ); - $toggleButton - .data( 'toggle', 0 ) - .attr({ - 'aria-label': userProfileL10n.ariaHide - }) - .find( '.text' ) - .text( userProfileL10n.hide ) - .end() - .find( '.dashicons' ) - .removeClass('dashicons-visibility') - .addClass('dashicons-hidden'); - $pass1Text.focus(); - - $pass1Label.attr( 'for', 'pass1-text' ); + resetToggle(); if ( ! _.isUndefined( $pass1Text[0].setSelectionRange ) ) { $pass1Text[0].setSelectionRange( 0, 100 ); @@ -234,6 +239,8 @@ $generateButton.show(); $passwordWrapper.hide(); + resetToggle(); + // Clear password field to prevent update $pass1.val( '' ).trigger( 'pwupdate' ); $submitButtons.prop( 'disabled', false );