WordPress.org

Make WordPress Core

Changeset 21003


Ignore:
Timestamp:
06/05/2012 06:51:33 PM (9 years ago)
Author:
nacin
Message:

Remove user/site suggestions (autocompletion) from search inputs, as the UX isn't proper.

  • Removes all instances of site-search, so away it goes. Sidesteps a number of bugs with site-search.
  • Renames user-search to user-suggest, which means it better describes the current behavior (autocompletion) while allowing for future behavior (instant search).
  • Ties user suggestions to a single .wp-suggest-user class.

with help from markjaquith, helenyhou, wonderboymusic.
fixes #20835.

Location:
trunk
Files:
2 deleted
9 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/admin-ajax.php

    r20857 r21003  
    3939$core_actions_get = array(
    4040    'fetch-list', 'ajax-tag-search', 'wp-compression-test', 'imgedit-preview', 'oembed-cache',
    41     'autocomplete-user', 'autocomplete-site', 'dashboard-widgets',
     41    'autocomplete-user', 'dashboard-widgets',
    4242);
    4343
  • trunk/wp-admin/includes/ajax-actions.php

    r20913 r21003  
    211211    }
    212212    wp_die();
    213 }
    214 
    215 function wp_ajax_autocomplete_site() {
    216     if ( ! is_multisite() || ! current_user_can( 'manage_sites' ) || wp_is_large_network( 'sites' ) )
    217         wp_die( -1 );
    218 
    219     $return = array();
    220 
    221     global $wpdb;
    222     $like_escaped_term = '%' . like_escape( stripslashes( $_REQUEST['term'] ) ) . '%';
    223     $sites = $wpdb->get_results( $wpdb->prepare( "SELECT blog_id, domain, path FROM $wpdb->blogs WHERE ( domain LIKE %s OR path LIKE %s ) AND public = '1' AND archived = '0' AND mature = '0' AND spam = '0' AND deleted = '0' ORDER BY registered DESC", $like_escaped_term, $like_escaped_term ), ARRAY_A );
    224 
    225     if ( empty( $sites ) )
    226         wp_die( -1 );
    227 
    228     foreach ( (array) $sites as $details ) {
    229         $blogname = get_blog_option( $details['blog_id'], 'blogname' );
    230         $return[] = array(
    231             'label' => sprintf( '%1$s (%2$s)', $blogname, $details['domain'] . $details['path'] ),
    232             'value' => $details['domain']
    233         );
    234     }
    235 
    236     wp_die( json_encode( $return ) );
    237213}
    238214
  • trunk/wp-admin/includes/dashboard.php

    r20984 r21003  
    415415        $actions['create-user'] = '<a href="' . network_admin_url('user-new.php') . '">' . __( 'Create a New User' ) . '</a>';
    416416
    417     if ( ! wp_is_large_network( 'users' ) )
    418         wp_enqueue_script( 'user-search' );
    419 
    420     if ( ! wp_is_large_network( 'sites' ) )
    421         wp_enqueue_script( 'site-search' );
    422 
    423417    $c_users = get_user_count();
    424418    $c_blogs = get_blog_count();
     
    443437    <?php do_action( 'wpmuadminresult', '' ); ?>
    444438
    445     <form name="searchform" action="<?php echo network_admin_url('users.php'); ?>" method="get">
     439    <form action="<?php echo network_admin_url('users.php'); ?>" method="get">
    446440        <p>
    447             <input type="search" name="s" value="" size="30" id="all-user-search-input" />
     441            <input type="search" name="s" value="" size="30" autocomplete="off" />
    448442            <?php submit_button( __( 'Search Users' ), 'button', 'submit', false, array( 'id' => 'submit_users' ) ); ?>
    449443        </p>
    450444    </form>
    451445
    452     <form name="searchform" action="<?php echo network_admin_url('sites.php'); ?>" method="get">
     446    <form action="<?php echo network_admin_url('sites.php'); ?>" method="get">
    453447        <p>
    454             <input type="search" name="s" value="" size="30" id="site-search-input" />
     448            <input type="search" name="s" value="" size="30" autocomplete="off" />
    455449            <?php submit_button( __( 'Search Sites' ), 'button', 'submit', false, array( 'id' => 'submit_sites' ) ); ?>
    456450        </p>
  • trunk/wp-admin/js/user-suggest.dev.js

    r20992 r21003  
    1 jQuery( function($) {
    2     var id = typeof( current_site_id ) != 'undefined' ? '&site_id=' + current_site_id : '',
    3         isRTL = !! ( 'undefined' != typeof isRtl && isRtl ),
    4         position = isRTL ? { my: 'right top', at: 'right bottom', offset: '0, -1' } : { offset: '0, -1' },
    5         open = function(e, ui) {
    6             $(this).addClass('open');
    7         },
    8         close = function(e, ui) {
    9             $(this).removeClass('open');
    10         };
    11 
    12     $( '#adduser-email, #newuser' ).autocomplete({
    13         source:    ajaxurl + '?action=autocomplete-user&autocomplete_type=add' + id,
    14         delay:     500,
    15         minLength: 2,
    16         position:  position,
    17         open:      open,
    18         close:     close
     1(function($) {
     2    var id = 'undefined' !== typeof current_site_id ? '&site_id=' + current_site_id : '';
     3    $(document).ready( function() {
     4        $( '.wp-suggest-user' ).autocomplete({
     5            source:    ajaxurl + '?action=autocomplete-user&autocomplete_type=add' + id,
     6            delay:     500,
     7            minLength: 2,
     8            position:  ( 'undefined' !== typeof isRtl && isRtl ) ? { my: 'right top', at: 'right bottom', offset: '0, -1' } : { offset: '0, -1' },
     9            open:      function() { $(this).addClass('open'); },
     10            close:     function() { $(this).removeClass('open'); }
     11        });
    1912    });
    20 
    21     $( '#user-search-input' ).autocomplete({
    22         source:    ajaxurl + '?action=autocomplete-user&autocomplete_type=search' + id,
    23         delay:     500,
    24         minLength: 2,
    25         position:  position,
    26         open:      open,
    27         close:     close
    28     });
    29 
    30     $( '#all-user-search-input' ).autocomplete({
    31         source:    ajaxurl + '?action=autocomplete-user&autocomplete_type=search-all' + id,
    32         delay:     500,
    33         minLength: 2,
    34         position:  position,
    35         open:      open,
    36         close:     close
    37     });
    38 });
     13})(jQuery);
  • trunk/wp-admin/network/site-users.php

    r20713 r21003  
    173173
    174174if ( ! wp_is_large_network( 'users' ) && apply_filters( 'show_network_site_users_add_existing_form', true ) )
    175     wp_enqueue_script( 'user-search' );
     175    wp_enqueue_script( 'user-suggest' );
    176176
    177177require('../admin-header.php'); ?>
     
    268268        <tr>
    269269            <th scope="row"><?php _e( 'Username' ); ?></th>
    270             <td><input type="text" class="regular-text" name="newuser" id="newuser" /></td>
     270            <td><input type="text" class="regular-text wp-suggest-user" name="newuser" id="newuser" /></td>
    271271        </tr>
    272272        <tr>
  • trunk/wp-admin/network/sites.php

    r20713 r21003  
    283283$wp_list_table->prepare_items();
    284284
    285 if ( ! wp_is_large_network( 'sites' ) )
    286     wp_enqueue_script( 'site-search' );
    287 
    288285require_once( '../admin-header.php' );
    289286?>
  • trunk/wp-admin/network/users.php

    r20993 r21003  
    246246);
    247247
    248 if ( ! wp_is_large_network( 'users' ) )
    249     wp_enqueue_script( 'user-search' );
    250 
    251248require_once( '../admin-header.php' );
    252249
  • trunk/wp-admin/user-new.php

    r20631 r21003  
    181181    && ( is_super_admin() || apply_filters( 'autocomplete_users_for_site_admins', false ) )
    182182) {
    183     wp_enqueue_script( 'user-search' );
     183    wp_enqueue_script( 'user-suggest' );
    184184}
    185185
     
    270270    <tr class="form-field form-required">
    271271        <th scope="row"><label for="adduser-email"><?php echo $label; ?></label></th>
    272         <td><input name="email" type="text" id="adduser-email" value="" /></td>
     272        <td><input name="email" type="text" id="adduser-email" class="wp-suggest-user" value="" /></td>
    273273    </tr>
    274274    <tr class="form-field">
  • trunk/wp-admin/users.php

    r20631 r21003  
    340340    }
    341341
    342     if ( is_multisite() && current_user_can( 'promote_users' ) && ! wp_is_large_network( 'users' )
    343         && ( is_super_admin() || apply_filters( 'autocomplete_users_for_site_admins', false ) )
    344     ) {
    345         wp_enqueue_script( 'user-search' );
    346     }
    347 
    348342    include('./admin-header.php');
    349343
  • trunk/wp-includes/script-loader.php

    r20960 r21003  
    268268    $scripts->add( 'user-profile', "/wp-admin/js/user-profile$suffix.js", array( 'jquery', 'password-strength-meter' ), false, 1 );
    269269
    270     $scripts->add( 'user-search', "/wp-admin/js/user-search$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 );
    271 
    272     $scripts->add( 'site-search', "/wp-admin/js/site-search$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 );
     270    $scripts->add( 'user-suggest', "/wp-admin/js/user-suggest$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 );
    273271
    274272    $scripts->add( 'admin-bar', "/wp-includes/js/admin-bar$suffix.js", array(), false, 1 );
Note: See TracChangeset for help on using the changeset viewer.