Make WordPress Core

Changeset 56008


Ignore:
Timestamp:
06/23/2023 11:07:10 PM (18 months ago)
Author:
joedolson
Message:

Upgrade/Install: Show/hide toggle on password fields.

Add a show/hide toggle for new passwords in initial user creation and database access during install and setup process using the same model as on user profiles. Add a new password toggle script. Change setup config table to two columns, matching the install table layout.

Props xmarcos, matt, markjaquith, nazgul, akbigdog, intoxination, rob1n, MichaelH, empireoflight, rmccue, markoheijnen, r0uter, amansurov, bi0xid, DrewAPicture, Narthur, wpnook, markparnell, costdev, clorith, ryokuhi, sabernhardt, bgoewert, ironprogrammer, adeltahri, joedolson, mukesh27, audrasjb, sergeybiryukov.
Fixes #3534.

Location:
trunk
Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Gruntfile.js

    r55494 r56008  
    318318                    [ WORKING_DIR + 'wp-admin/js/nav-menu.js' ]: [ './src/js/_enqueues/lib/nav-menu.js' ],
    319319                    [ WORKING_DIR + 'wp-admin/js/password-strength-meter.js' ]: [ './src/js/_enqueues/wp/password-strength-meter.js' ],
     320                    [ WORKING_DIR + 'wp-admin/js/password-toggle.js' ]: [ './src/js/_enqueues/admin/password-toggle.js' ],
    320321                    [ WORKING_DIR + 'wp-admin/js/plugin-install.js' ]: [ './src/js/_enqueues/admin/plugin-install.js' ],
    321322                    [ WORKING_DIR + 'wp-admin/js/post.js' ]: [ './src/js/_enqueues/admin/post.js' ],
  • trunk/src/wp-admin/css/forms.css

    r55989 r56008  
    548548.wp-generate-pw {
    549549    margin-top: 1em;
     550    position: relative;
     551}
     552
     553.wp-pwd button {
     554    height: min-content;
     555}
     556
     557.wp-pwd button.pwd-toggle .dashicons {
     558    position: relative;
     559    top: 0.25rem;
    550560}
    551561
     
    639649    border-color: #68de7c;
    640650    opacity: 1;
     651}
     652
     653.password-input-wrapper {
     654    display: inline-block;
    641655}
    642656
     
    16311645    }
    16321646
     1647    .password-input-wrapper {
     1648        display: block;
     1649    }
     1650
    16331651    p.search-box {
    16341652        float: none;
  • trunk/src/wp-admin/css/install.css

    r51727 r56008  
    132132    text-align: left;
    133133    padding: 10px 20px 10px 0;
    134     width: 140px;
     134    width: 115px;
    135135    vertical-align: top;
    136136}
     
    144144    margin: 4px 0 0;
    145145    font-size: 11px;
     146}
     147
     148.form-table .setup-description {
     149    margin: 4px 0 0;
     150    line-height: 1.6;
    146151}
    147152
     
    150155    font-size: 15px;
    151156    padding: 3px 5px;
     157}
     158
     159.wp-pwd {
     160    margin-top: 0;
     161}
     162
     163.form-table .wp-pwd {
     164    display: flex;
     165    column-gap: 4px;
     166}
     167
     168.form-table .password-input-wrapper {
     169    width: 100%;
    152170}
    153171
     
    162180.form-table input[type=password],
    163181#pass-strength-result {
    164     width: 218px;
     182    width: 100%;
    165183}
    166184
     
    287305    }
    288306
     307    #pwd {
     308        padding-right: 2.5rem;
     309    }
     310
    289311    .wp-pwd #pass1 {
    290312        padding-right: 50px;
  • trunk/src/wp-admin/install.php

    r55933 r56008  
    141141                <div class="wp-pwd">
    142142                    <?php $initial_password = isset( $_POST['admin_password'] ) ? stripslashes( $_POST['admin_password'] ) : wp_generate_password( 18 ); ?>
    143                     <input type="password" name="admin_password" id="pass1" class="regular-text" autocomplete="new-password" spellcheck="false" data-reveal="1" data-pw="<?php echo esc_attr( $initial_password ); ?>" aria-describedby="pass-strength-result" />
     143                    <div class="password-input-wrapper">
     144                        <input type="password" name="admin_password" id="pass1" class="regular-text" autocomplete="new-password" spellcheck="false" data-reveal="1" data-pw="<?php echo esc_attr( $initial_password ); ?>" aria-describedby="pass-strength-result" />
     145                        <div id="pass-strength-result" aria-live="polite"></div>
     146                    </div>
    144147                    <button type="button" class="button wp-hide-pw hide-if-no-js" data-start-masked="<?php echo (int) isset( $_POST['admin_password'] ); ?>" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
    145148                        <span class="dashicons dashicons-hidden"></span>
    146149                        <span class="text"><?php _e( 'Hide' ); ?></span>
    147150                    </button>
    148                     <div id="pass-strength-result" aria-live="polite"></div>
    149151                </div>
    150152                <p><span class="description important hide-if-no-js">
  • trunk/src/wp-admin/setup-config.php

    r55990 r56008  
    224224        <tr>
    225225            <th scope="row"><label for="dbname"><?php _e( 'Database Name' ); ?></label></th>
    226             <td><input name="dbname" id="dbname" type="text" aria-describedby="dbname-desc" size="25" placeholder="wordpress"<?php echo $autofocus; ?>/></td>
    227             <td id="dbname-desc"><?php _e( 'The name of the database you want to use with WordPress.' ); ?></td>
     226            <td><input name="dbname" id="dbname" type="text" aria-describedby="dbname-desc" size="25" placeholder="wordpress"<?php echo $autofocus; ?>/>
     227            <p id="dbname-desc"><?php _e( 'The name of the database you want to use with WordPress.' ); ?></p></td>
    228228        </tr>
    229229        <tr>
    230230            <th scope="row"><label for="uname"><?php _e( 'Username' ); ?></label></th>
    231             <td><input name="uname" id="uname" type="text" aria-describedby="uname-desc" size="25" placeholder="<?php echo htmlspecialchars( _x( 'username', 'example username' ), ENT_QUOTES ); ?>" /></td>
    232             <td id="uname-desc"><?php _e( 'Your database username.' ); ?></td>
     231            <td><input name="uname" id="uname" type="text" aria-describedby="uname-desc" size="25" placeholder="<?php echo htmlspecialchars( _x( 'username', 'example username' ), ENT_QUOTES ); ?>" />
     232            <p id="uname-desc"><?php _e( 'Your database username.' ); ?></p></td>
    233233        </tr>
    234234        <tr>
    235235            <th scope="row"><label for="pwd"><?php _e( 'Password' ); ?></label></th>
    236             <td><input name="pwd" id="pwd" type="text" aria-describedby="pwd-desc" size="25" placeholder="<?php echo htmlspecialchars( _x( 'password', 'example password' ), ENT_QUOTES ); ?>" autocomplete="off" spellcheck="false" /></td>
    237             <td id="pwd-desc"><?php _e( 'Your database password.' ); ?></td>
     236            <td>
     237                <div class="wp-pwd">
     238                    <input name="pwd" id="pwd" type="password" class="regular-text" data-reveal="1" aria-describedby="pwd-desc" size="25" placeholder="<?php echo htmlspecialchars( _x( 'password', 'example password' ), ENT_QUOTES ); ?>" autocomplete="off" spellcheck="false" />
     239                    <button type="button" class="button pwd-toggle hide-if-no-js" data-toggle="0" data-start-masked="1" aria-label="<?php esc_attr_e( 'Show password' ); ?>">
     240                        <span class="dashicons dashicons-visibility"></span>
     241                        <span class="text"><?php _e( 'Show' ); ?></span>
     242                    </button>
     243                </div>
     244                <p id="pwd-desc"><?php _e( 'Your database password.' ); ?></p>
     245            </td>
    238246        </tr>
    239247        <tr>
    240248            <th scope="row"><label for="dbhost"><?php _e( 'Database Host' ); ?></label></th>
    241             <td><input name="dbhost" id="dbhost" type="text" aria-describedby="dbhost-desc" size="25" value="localhost" /></td>
    242             <td id="dbhost-desc">
     249            <td><input name="dbhost" id="dbhost" type="text" aria-describedby="dbhost-desc" size="25" value="localhost" />
     250            <p id="dbhost-desc">
    243251            <?php
    244252                /* translators: %s: localhost */
    245253                printf( __( 'You should be able to get this info from your web host, if %s does not work.' ), '<code>localhost</code>' );
    246254            ?>
    247             </td>
     255            </p></td>
    248256        </tr>
    249257        <tr>
    250258            <th scope="row"><label for="prefix"><?php _e( 'Table Prefix' ); ?></label></th>
    251             <td><input name="prefix" id="prefix" type="text" aria-describedby="prefix-desc" value="wp_" size="25" /></td>
    252             <td id="prefix-desc"><?php _e( 'If you want to run multiple WordPress installations in a single database, change this.' ); ?></td>
     259            <td><input name="prefix" id="prefix" type="text" aria-describedby="prefix-desc" value="wp_" size="25" />
     260            <p id="prefix-desc"><?php _e( 'If you want to run multiple WordPress installations in a single database, change this.' ); ?></p></td>
    253261        </tr>
    254262    </table>
     
    261269</form>
    262270        <?php
     271        wp_print_scripts( 'password-toggle' );
    263272        break;
    264273
  • trunk/src/wp-admin/user-edit.php

    r55988 r56008  
    644644                                    <button type="button" class="button wp-generate-pw hide-if-no-js" aria-expanded="false"><?php _e( 'Set New Password' ); ?></button>
    645645                                    <div class="wp-pwd hide-if-js">
    646                                         <span class="password-input-wrapper">
     646                                        <div class="password-input-wrapper">
    647647                                            <input type="password" name="pass1" id="pass1" class="regular-text" value="" autocomplete="new-password" spellcheck="false" data-pw="<?php echo esc_attr( wp_generate_password( 24 ) ); ?>" aria-describedby="pass-strength-result" />
    648                                         </span>
     648                                            <div style="display:none" id="pass-strength-result" aria-live="polite"></div>
     649                                        </div>
    649650                                        <button type="button" class="button wp-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
    650651                                            <span class="dashicons dashicons-hidden" aria-hidden="true"></span>
     
    655656                                            <span class="text"><?php _e( 'Cancel' ); ?></span>
    656657                                        </button>
    657                                         <div style="display:none" id="pass-strength-result" aria-live="polite"></div>
    658658                                    </div>
    659659                                </td>
  • trunk/src/wp-admin/user-new.php

    r55988 r56008  
    571571            <div class="wp-pwd">
    572572                <?php $initial_password = wp_generate_password( 24 ); ?>
    573                 <span class="password-input-wrapper">
     573                <div class="password-input-wrapper">
    574574                    <input type="password" name="pass1" id="pass1" class="regular-text" autocomplete="new-password" spellcheck="false" data-reveal="1" data-pw="<?php echo esc_attr( $initial_password ); ?>" aria-describedby="pass-strength-result" />
    575                 </span>
     575                    <div style="display:none" id="pass-strength-result" aria-live="polite"></div>
     576                </div>
    576577                <button type="button" class="button wp-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
    577578                    <span class="dashicons dashicons-hidden" aria-hidden="true"></span>
    578579                    <span class="text"><?php _e( 'Hide' ); ?></span>
    579580                </button>
    580                 <div style="display:none" id="pass-strength-result" aria-live="polite"></div>
    581581            </div>
    582582        </td>
  • trunk/src/wp-includes/script-loader.php

    r56002 r56008  
    11721172    $scripts->set_translations( 'password-strength-meter' );
    11731173
     1174    $scripts->add( 'password-toggle', "/wp-admin/js/password-toggle$suffix.js", array(), false, 1 );
     1175    $scripts->set_translations( 'password-toggle' );
     1176
    11741177    $scripts->add( 'application-passwords', "/wp-admin/js/application-passwords$suffix.js", array( 'jquery', 'wp-util', 'wp-api-request', 'wp-date', 'wp-i18n', 'wp-hooks' ), false, 1 );
    11751178    $scripts->set_translations( 'application-passwords' );
Note: See TracChangeset for help on using the changeset viewer.