Make WordPress Core

Ticket #42888: 48222-5.diff

File 48222-5.diff, 19.2 KB (added by Iceable, 6 years ago)

icon & tooltip instead of text + fixed overlap

  • src/js/_enqueues/admin/user-profile.js

    diff --git src/js/_enqueues/admin/user-profile.js src/js/_enqueues/admin/user-profile.js
    index 7fa3064400..ec84a91ef6 100644
     
    99                $pass1Row,
    1010                $pass1Wrap,
    1111                $pass1,
    12                 $pass1Text,
    13                 $pass1Label,
    1412                $pass2,
    1513                $weakRow,
    1614                $weakCheckbox,
     
    4846                }
    4947
    5048                if ( 1 !== parseInt( $toggleButton.data( 'start-masked' ), 10 ) ) {
    51                         $pass1Wrap.addClass( 'show-password' );
     49                        $pass1.attr( 'type', 'text' );
    5250                } else {
    5351                        $toggleButton.trigger( 'click' );
    5452                }
     
    6260
    6361                $pass1Wrap = $pass1.parent();
    6462
    65                 $pass1Text = $( '<input type="text"/>' )
    66                         .attr( {
    67                                 'id':           'pass1-text',
    68                                 'name':         'pass1-text',
    69                                 'autocomplete': 'off'
    70                         } )
    71                         .addClass( $pass1[0].className )
    72                         .data( 'pw', $pass1.data( 'pw' ) )
    73                         .val( $pass1.val() )
    74                         .on( inputEvent, function () {
    75                                 if ( $pass1Text.val() === currentPass ) {
    76                                         return;
    77                                 }
    78                                 $pass2.val( $pass1Text.val() );
    79                                 $pass1.val( $pass1Text.val() ).trigger( 'pwupdate' );
    80                                 currentPass = $pass1Text.val();
    81                         } );
    82 
    83                 $pass1.after( $pass1Text );
    84 
    8563                if ( 1 === parseInt( $pass1.data( 'reveal' ), 10 ) ) {
    8664                        generatePassword();
    8765                }
     
    9270                        }
    9371
    9472                        currentPass = $pass1.val();
    95                         if ( $pass1Text.val() !== currentPass ) {
    96                                 $pass1Text.val( currentPass );
    97                         }
    98                         $pass1.add( $pass1Text ).removeClass( 'short bad good strong' );
     73
     74                        $pass1.removeClass( 'short bad good strong' );
    9975                        showOrHideWeakPasswordCheckbox();
    10076                } );
    10177        }
    10278
    103         function resetToggle() {
    104                 $toggleButton
    105                         .data( 'toggle', 0 )
    106                         .attr({
    107                                 'aria-label': userProfileL10n.ariaHide
    108                         })
    109                         .find( '.text' )
    110                                 .text( userProfileL10n.hide )
    111                         .end()
    112                         .find( '.dashicons' )
    113                                 .removeClass( 'dashicons-visibility' )
    114                                 .addClass( 'dashicons-hidden' );
    115 
    116                 $pass1Text.focus();
    117 
    118                 $pass1Label.attr( 'for', 'pass1-text' );
    119         }
    120 
    12179        function bindToggleButton() {
    12280                $toggleButton = $pass1Row.find('.wp-hide-pw');
    12381                $toggleButton.show().on( 'click', function () {
    124                         if ( 1 === parseInt( $toggleButton.data( 'toggle' ), 10 ) ) {
    125                                 $pass1Wrap.addClass( 'show-password' );
    126 
    127                                 resetToggle();
    128 
    129                                 if ( ! _.isUndefined( $pass1Text[0].setSelectionRange ) ) {
    130                                         $pass1Text[0].setSelectionRange( 0, 100 );
    131                                 }
     82                        if ( 'password' === $pass1.attr( 'type' ) ) {
     83                                $pass1.attr( 'type', 'text' );
     84                                $toggleButton
     85                                        .attr({
     86                                                'title': userProfileL10n.ariaHide,
     87                                                'aria-label': userProfileL10n.ariaHide
     88                                        })
     89                                        .find( '.text' )
     90                                                .text( userProfileL10n.hide )
     91                                        .end()
     92                                        .find( '.dashicons' )
     93                                                .removeClass( 'dashicons-visibility' )
     94                                                .addClass( 'dashicons-hidden' );
    13295                        } else {
    133                                 $pass1Wrap.removeClass( 'show-password' );
     96                                $pass1.attr( 'type', 'password' );
    13497                                $toggleButton
    135                                         .data( 'toggle', 1 )
    13698                                        .attr({
     99                                                'title': userProfileL10n.ariaShow,
    137100                                                'aria-label': userProfileL10n.ariaShow
    138101                                        })
    139102                                        .find( '.text' )
     
    143106                                                .removeClass('dashicons-hidden')
    144107                                                .addClass('dashicons-visibility');
    145108
    146                                 $pass1.focus();
    147 
    148                                 $pass1Label.attr( 'for', 'pass1' );
    149 
    150109                                if ( ! _.isUndefined( $pass1[0].setSelectionRange ) ) {
    151110                                        $pass1[0].setSelectionRange( 0, 100 );
    152111                                }
    153112                        }
     113                        $pass1.focus();
    154114                });
    155115        }
    156116
     
    159119                        $generateButton,
    160120                        $cancelButton;
    161121
    162                 $pass1Row = $('.user-pass1-wrap');
    163                 $pass1Label = $pass1Row.find('th label').attr( 'for', 'pass1-text' );
     122                $pass1Row = $('.user-pass1-wrap, .user-pass-wrap');
    164123
    165124                // hide this
    166125                $('.user-pass2-wrap').hide();
     
    180139                $pass1 = $('#pass1');
    181140                if ( $pass1.length ) {
    182141                        bindPass1();
     142                } else {
     143                        // Password field for the login form
     144                        $pass1 = $('#user_pass');
    183145                }
    184146
    185147                /**
     
    201163                if ( $pass1.is( ':hidden' ) ) {
    202164                        $pass1.prop( 'disabled', true );
    203165                        $pass2.prop( 'disabled', true );
    204                         $pass1Text.prop( 'disabled', true );
    205166                }
    206167
    207168                $passwordWrapper = $pass1Row.find( '.wp-pwd' );
     
    223184                        // Enable the inputs when showing.
    224185                        $pass1.attr( 'disabled', false );
    225186                        $pass2.attr( 'disabled', false );
    226                         $pass1Text.attr( 'disabled', false );
    227 
    228                         if ( $pass1Text.val().length === 0 ) {
    229                                 generatePassword();
    230                         }
    231187
    232                         _.defer( function() {
    233                                 $pass1Text.focus();
    234                                 if ( ! _.isUndefined( $pass1Text[0].setSelectionRange ) ) {
    235                                         $pass1Text[0].setSelectionRange( 0, 100 );
    236                                 }
    237                         }, 0 );
    238188                } );
    239189
    240190                $cancelButton = $pass1Row.find( 'button.wp-cancel-pw' );
    241191                $cancelButton.on( 'click', function () {
    242192                        updateLock = false;
    243193
    244                         // Clear any entered password.
    245                         $pass1Text.val( '' );
    246 
    247194                        // Generate a new password.
    248195                        wp.ajax.post( 'generate-password' )
    249196                                .done( function( data ) {
     
    260207                        // Disable the inputs when hiding to prevent autofill and submission.
    261208                        $pass1.prop( 'disabled', true );
    262209                        $pass2.prop( 'disabled', true );
    263                         $pass1Text.prop( 'disabled', true );
    264210
    265211                        resetToggle();
    266212
     
    277223                        $pass1.prop( 'disabled', false );
    278224                        $pass2.prop( 'disabled', false );
    279225                        $pass2.val( $pass1.val() );
    280                         $pass1Wrap.removeClass( 'show-password' );
    281226                });
    282227        }
    283228
     
    317262                var passStrength = $('#pass-strength-result')[0];
    318263
    319264                if ( passStrength.className ) {
    320                         $pass1.add( $pass1Text ).addClass( passStrength.className );
     265                        $pass1.addClass( passStrength.className );
    321266                        if ( $( passStrength ).is( '.short, .bad' ) ) {
    322267                                if ( ! $weakCheckbox.prop( 'checked' ) ) {
    323268                                        $submitButtons.prop( 'disabled', true );
  • src/wp-admin/css/login.css

    diff --git src/wp-admin/css/login.css src/wp-admin/css/login.css
    index 686be7dde9..b8d93b791b 100644
    p { 
    7979}
    8080
    8181.login .password-input-wrapper {
    82     display: table;
     82        display: table;
     83        margin: 2px 0 16px 0;
    8384}
    8485
    8586.login .input.password-input {
    8687    display: table-cell;
    8788    margin: 0;
     89        padding-right: 40px;
    8890}
    8991
    9092.login .pw-weak {
    p { 
    9294}
    9395
    9496.login .button.button-secondary {
    95     display: table-cell;
    96     border-radius: 0;
    97     vertical-align: middle;
     97        display: table-cell;
     98        border-radius: 0;
     99        box-shadow: none;
     100        height: 100%;
     101        vertical-align: middle;
     102}
     103
     104.login .wp-hide-pw-wrap {
     105        display: table-cell;
     106        vertical-align: middle;
     107        height: 28px;
     108}
     109
     110.login .wp-pwd {
     111        position: relative;
     112}
     113
     114.login .wp-pwd .button {
     115        background: 0 0;
     116        border: none;
     117        box-shadow: none;
     118        line-height: 2;
     119        margin: 0;
     120        padding: 5px 10px;
     121        position: absolute;
     122        right: 0;
     123        top: 0;
     124}
     125
     126.no-js .hide-if-no-js{
     127        display: none;
    98128}
    99129
    100130.login form {
    p { 
    231261
    232262.login #pass-strength-result {
    233263        font-weight: 600;
    234         margin: -1px 5px 16px 0;
     264        margin: -17px 5px 16px 0;
    235265        padding: 6px 5px;
    236266        text-align: center;
    237267        width: 100%;
  • src/wp-login.php

    diff --git src/wp-login.php src/wp-login.php
    index 263a19637b..179d2716a9 100644
    function login_header( $title = 'Log In', $message = '', $wp_error = null ) { 
    175175
    176176        ?>
    177177        </head>
    178         <body class="login <?php echo esc_attr( implode( ' ', $classes ) ); ?>">
     178        <body class="login no-js <?php echo esc_attr( implode( ' ', $classes ) ); ?>">
     179        <script type="text/javascript">
     180                document.body.className = document.body.className.replace('no-js','js');
     181        </script>
    179182        <?php
    180183        /**
    181184         * Fires in the login page header after the body tag is opened.
    switch ( $action ) { 
    606609        ?>
    607610
    608611        <form name="lostpasswordform" id="lostpasswordform" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=lostpassword', 'login_post' ) ); ?>" method="post">
    609         <p>
    610                 <label for="user_login" ><?php _e( 'Username or Email Address' ); ?><br />
    611                 <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" /></label>
    612         </p>
     612        <div>
     613                <label for="user_login" ><?php _e( 'Username or Email Address' ); ?></label>
     614                <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" />
     615        </div>
    613616        <?php
    614617        /**
    615618         * Fires inside the lostpassword form tags, before the hidden fields.
    switch ( $action ) { 
    619622        do_action( 'lostpassword_form' );
    620623        ?>
    621624                <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
    622                 <p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Get New Password' ); ?>" /></p>
     625                <div class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Get New Password' ); ?>" /></div>
    623626        </form>
    624627
    625         <p id="nav">
    626         <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
    627         <?php
    628         if ( get_option( 'users_can_register' ) ) :
    629                 $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
     628        <div id="nav">
     629                <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
     630                <?php
     631                if ( get_option( 'users_can_register' ) ) :
     632                        $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
    630633
    631                 echo esc_html( $login_link_separator );
     634                        echo esc_html( $login_link_separator );
    632635
    633                 /** This filter is documented in wp-includes/general-template.php */
    634                 echo apply_filters( 'register', $registration_url );
    635         endif;
    636         ?>
    637         </p>
     636                        /** This filter is documented in wp-includes/general-template.php */
     637                        echo apply_filters( 'register', $registration_url );
     638                endif;
     639                ?>
     640        </div>
    638641
    639642        <?php
    640643        login_footer( 'user_login' );
    switch ( $action ) { 
    710713        <input type="hidden" id="user_login" value="<?php echo esc_attr( $rp_login ); ?>" autocomplete="off" />
    711714
    712715        <div class="user-pass1-wrap">
    713                 <p>
    714                         <label for="pass1"><?php _e( 'New password' ); ?></label>
    715                 </p>
     716
     717                <label for="pass1"><?php _e( 'New password' ); ?></label>
    716718
    717719                <div class="wp-pwd">
    718720                        <div class="password-input-wrapper">
    719721                                <input type="password" data-reveal="1" data-pw="<?php echo esc_attr( wp_generate_password( 16 ) ); ?>" name="pass1" id="pass1" class="input password-input" size="24" value="" autocomplete="off" aria-describedby="pass-strength-result" />
    720                                 <span class="button button-secondary wp-hide-pw hide-if-no-js">
    721                                         <span class="dashicons dashicons-hidden"></span>
    722                                 </span>
     722
     723                                <div class="wp-hide-pw-wrap hide-if-no-js">
     724                                        <button type="button" class="button button-secondary wp-hide-pw" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
     725                                                <span class="dashicons dashicons-hidden"></span>
     726                                                <span class="text"><?php _e( 'Hide' ); ?></span>
     727                                        </button>
     728                                </div>
     729
    723730                        </div>
    724731                        <div id="pass-strength-result" class="hide-if-no-js" aria-live="polite"><?php _e( 'Strength indicator' ); ?></div>
    725732                </div>
    switch ( $action ) { 
    731738                </div>
    732739        </div>
    733740
    734         <p class="user-pass2-wrap">
    735                 <label for="pass2"><?php _e( 'Confirm new password' ); ?></label><br />
     741        <div class="user-pass2-wrap">
     742                <label for="pass2"><?php _e( 'Confirm new password' ); ?></label>
    736743                <input type="password" name="pass2" id="pass2" class="input" size="20" value="" autocomplete="off" />
    737         </p>
     744        </div>
    738745
    739746        <p class="description indicator-hint"><?php echo wp_get_password_hint(); ?></p>
    740747        <br class="clear" />
    switch ( $action ) { 
    750757        do_action( 'resetpass_form', $user );
    751758        ?>
    752759        <input type="hidden" name="rp_key" value="<?php echo esc_attr( $rp_key ); ?>" />
    753         <p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Reset Password' ); ?>" /></p>
     760        <div class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Reset Password' ); ?>" /></div>
    754761        </form>
    755762
    756         <p id="nav">
    757         <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
    758         <?php
    759         if ( get_option( 'users_can_register' ) ) :
    760                 $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
     763        <div id="nav">
     764                <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
     765                <?php
     766                if ( get_option( 'users_can_register' ) ) :
     767                        $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
    761768
    762                 echo esc_html( $login_link_separator );
     769                        echo esc_html( $login_link_separator );
    763770
    764                 /** This filter is documented in wp-includes/general-template.php */
    765                 echo apply_filters( 'register', $registration_url );
    766         endif;
    767         ?>
    768         </p>
     771                        /** This filter is documented in wp-includes/general-template.php */
     772                        echo apply_filters( 'register', $registration_url );
     773                endif;
     774                ?>
     775        </div>
    769776
    770777        <?php
    771778        login_footer( 'user_pass' );
    switch ( $action ) { 
    826833                login_header( __( 'Registration Form' ), '<p class="message register">' . __( 'Register For This Site' ) . '</p>', $errors );
    827834        ?>
    828835        <form name="registerform" id="registerform" action="<?php echo esc_url( site_url( 'wp-login.php?action=register', 'login_post' ) ); ?>" method="post" novalidate="novalidate">
    829         <p>
    830                 <label for="user_login"><?php _e( 'Username' ); ?><br />
    831                 <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( wp_unslash( $user_login ) ); ?>" size="20" autocapitalize="off" /></label>
    832         </p>
    833         <p>
    834                 <label for="user_email"><?php _e( 'Email' ); ?><br />
    835                 <input type="email" name="user_email" id="user_email" class="input" value="<?php echo esc_attr( wp_unslash( $user_email ) ); ?>" size="25" /></label>
    836         </p>
     836        <div>
     837                <label for="user_login"><?php _e( 'Username' ); ?></label>
     838                <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( wp_unslash( $user_login ) ); ?>" size="20" autocapitalize="off" />
     839        </div>
     840        <div>
     841                <label for="user_email"><?php _e( 'Email' ); ?></label>
     842                <input type="email" name="user_email" id="user_email" class="input" value="<?php echo esc_attr( wp_unslash( $user_email ) ); ?>" size="25" />
     843        </div>
    837844        <?php
    838845        /**
    839846         * Fires following the 'Email' field in the user registration form.
    switch ( $action ) { 
    845852        <p id="reg_passmail"><?php _e( 'Registration confirmation will be emailed to you.' ); ?></p>
    846853        <br class="clear" />
    847854        <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
    848         <p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Register' ); ?>" /></p>
     855        <div class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Register' ); ?>" /></div>
    849856        </form>
    850857
    851         <p id="nav">
    852         <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
    853         <?php echo esc_html( $login_link_separator ); ?>
    854         <a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php _e( 'Lost your password?' ); ?></a>
    855         </p>
     858        <div id="nav">
     859                <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
     860                <?php echo esc_html( $login_link_separator ); ?>
     861                <a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php _e( 'Lost your password?' ); ?></a>
     862        </div>
    856863
    857864        <?php
    858865        login_footer( 'user_login' );
    switch ( $action ) { 
    10621069                } else {
    10631070                        $aria_describedby_error = '';
    10641071                }
     1072
     1073                wp_enqueue_script( 'user-profile' );
    10651074        ?>
    10661075
    10671076        <form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
    1068         <p>
    1069                 <label for="user_login"><?php _e( 'Username or Email Address' ); ?><br />
    1070                 <input type="text" name="log" id="user_login"<?php echo $aria_describedby_error; ?> class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" /></label>
    1071         </p>
    1072         <p>
    1073                 <label for="user_pass"><?php _e( 'Password' ); ?><br />
    1074                 <input type="password" name="pwd" id="user_pass"<?php echo $aria_describedby_error; ?> class="input" value="" size="20" /></label>
    1075         </p>
     1077        <div>
     1078                <label for="user_login"><?php _e( 'Username or Email Address' ); ?></label>
     1079                <input type="text" name="log" id="user_login"<?php echo $aria_describedby_error; ?> class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" />
     1080        </div>
     1081        <div class="user-pass-wrap">
     1082                <label for="user_pass"><?php _e( 'Password' ); ?></label>
     1083                <div class="wp-pwd">
     1084                        <div class="password-input-wrapper">
     1085                                <input type="password" name="pwd" id="user_pass"<?php echo $aria_describedby_error; ?> class="input password-input" value="" size="20" />
     1086                                <div class="wp-hide-pw-wrap hide-if-no-js" style="
     1087                                ">
     1088                                        <button type="button" class="button button-secondary wp-hide-pw" data-toggle="0" title="<?php esc_attr_e( 'Show password' ); ?>" aria-label="<?php esc_attr_e( 'Show password' ); ?>">
     1089                                                <span class="dashicons dashicons-visibility"></span>
     1090                                        </button>
     1091                                </div>
     1092
     1093                        </div>
     1094                </div>
     1095
     1096        </div>
     1097
    10761098        <?php
    10771099        /**
    10781100         * Fires following the 'Password' field in the login form.
    switch ( $action ) { 
    10811103         */
    10821104        do_action( 'login_form' );
    10831105        ?>
    1084         <p class="forgetmenot"><label for="rememberme"><input name="rememberme" type="checkbox" id="rememberme" value="forever" <?php checked( $rememberme ); ?> /> <?php esc_html_e( 'Remember Me' ); ?></label></p>
    1085         <p class="submit">
     1106        <div class="forgetmenot"><label for="rememberme"><input name="rememberme" type="checkbox" id="rememberme" value="forever" <?php checked( $rememberme ); ?> /> <?php esc_html_e( 'Remember Me' ); ?></label></div>
     1107        <div class="submit">
    10861108                <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Log In' ); ?>" />
    10871109        <?php   if ( $interim_login ) { ?>
    10881110                <input type="hidden" name="interim-login" value="1" />
    switch ( $action ) { 
    10931115                <input type="hidden" name="customize-login" value="1" />
    10941116        <?php endif; ?>
    10951117                <input type="hidden" name="testcookie" value="1" />
    1096         </p>
     1118        </div>
    10971119        </form>
    10981120
    10991121        <?php if ( ! $interim_login ) { ?>
    1100         <p id="nav">
    1101         <?php
    1102         if ( ! isset( $_GET['checkemail'] ) || ! in_array( $_GET['checkemail'], array( 'confirm', 'newpass' ) ) ) :
    1103                 if ( get_option( 'users_can_register' ) ) :
    1104                         $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
     1122        <div id="nav">
     1123                <?php
     1124                if ( ! isset( $_GET['checkemail'] ) || ! in_array( $_GET['checkemail'], array( 'confirm', 'newpass' ) ) ) :
     1125                        if ( get_option( 'users_can_register' ) ) :
     1126                                $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
    11051127
    1106                         /** This filter is documented in wp-includes/general-template.php */
    1107                         echo apply_filters( 'register', $registration_url );
     1128                                /** This filter is documented in wp-includes/general-template.php */
     1129                                echo apply_filters( 'register', $registration_url );
    11081130
    1109                         echo esc_html( $login_link_separator );
    1110                 endif;
    1111                 ?>
    1112                 <a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php _e( 'Lost your password?' ); ?></a>
    1113         <?php endif; ?>
    1114         </p>
     1131                                echo esc_html( $login_link_separator );
     1132                        endif;
     1133                        ?>
     1134                        <a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php _e( 'Lost your password?' ); ?></a>
     1135                <?php endif; ?>
     1136        </div>
    11151137        <?php } ?>
    11161138
    11171139        <script type="text/javascript">