WordPress.org

Make WordPress Core

Ticket #19810: 19810.18.patch

File 19810.18.patch, 7.8 KB (added by Japh, 4 years ago)

Implemented @dd32's suggestions

  • wp-admin/users.php

     
    338338                wp_redirect( add_query_arg( 'paged', $total_pages ) ); 
    339339                exit; 
    340340        } 
     341 
     342        if ( current_user_can( 'promote_users' ) && !wp_is_large_network( 'users' ) ) 
     343                wp_enqueue_script( 'user-search' ); 
     344 
    341345        include('./admin-header.php'); 
    342346 
    343347        $messages = array(); 
  • wp-admin/admin-ajax.php

     
    3434 
    3535do_action( 'admin_init' ); 
    3636 
    37 $core_actions_get = array( 'fetch-list', 'ajax-tag-search', 'wp-compression-test', 'imgedit-preview', 'oembed-cache', 'autocomplete-user' ); 
     37$core_actions_get = array( 'fetch-list', 'ajax-tag-search', 'wp-compression-test', 'imgedit-preview', 'oembed-cache', 'autocomplete-user', 'autocomplete-site' ); 
    3838 
    3939$core_actions_post = array( 
    4040        'oembed-cache', 'image-editor', 'delete-comment', 'delete-tag', 'delete-link', 
  • wp-admin/includes/ajax-actions.php

     
    155155         
    156156        $return = array(); 
    157157 
     158        // Check the type of request 
     159        if ( isset( $_REQUEST['autocomplete_type'] ) ) 
     160                $type = $_REQUEST['autocomplete_type']; 
     161        else 
     162                $type = 'add'; 
     163 
    158164        // Exclude current users of this blog 
    159165        if ( isset( $_REQUEST['site_id'] ) ) 
    160166                $id = absint( $_REQUEST['site_id'] ); 
    161167        else 
    162168                $id = get_current_blog_id(); 
    163169 
    164         $this_blog_users = get_users( array( 'blog_id' => $id, 'fields' => 'ID' ) ); 
     170        $include_blog_users = ( $type == 'search' ? get_users( array( 'blog_id' => $id, 'fields' => 'ID' ) ) : array() ); 
     171        $exclude_blog_users = ( $type == 'add' ? get_users( array( 'blog_id' => $id, 'fields' => 'ID' ) ) : array() ); 
    165172 
    166173        $users = get_users( array( 
    167174                'blog_id' => false, 
    168175                'search'  => '*' . $_REQUEST['term'] . '*', 
    169                 'exclude' => $this_blog_users, 
     176                'include' => $include_blog_users, 
     177                'exclude' => $exclude_blog_users, 
    170178                'search_columns' => array( 'user_login', 'user_nicename', 'user_email' ), 
    171         ) );     
     179        ) ); 
    172180 
    173181        foreach ( $users as $user ) { 
    174182                $return[] = array( 
    175183                        /* translators: 1: user_login, 2: user_email */ 
    176                         'label' => sprintf( __( '%1$s (%2$s)' ), $user->user_login, $user->user_email ), 
     184                        'label' => sprintf( '%1$s (%2$s)', $user->user_login, $user->user_email ), 
    177185                        'value' => $user->user_login, 
    178186                ); 
    179187        } 
     
    181189        wp_die( json_encode( $return ) ); 
    182190} 
    183191 
     192function wp_ajax_autocomplete_site() { 
     193        if ( !is_multisite() || !current_user_can( 'manage_sites' ) || wp_is_large_network( 'sites' ) || !is_super_admin() ) 
     194                wp_die( -1 ); 
     195 
     196        $return = array(); 
     197 
     198        global $wpdb; 
     199        $sites = $wpdb->get_results( $wpdb->prepare( "SELECT blog_id, domain FROM $wpdb->blogs WHERE domain LIKE %s AND public = '1' AND archived = '0' AND mature = '0' AND spam = '0' AND deleted = '0' ORDER BY registered DESC", '%' . like_escape( stripslashes( $_REQUEST['term'] ) ) . '%' ), ARRAY_A ); 
     200 
     201        if ( empty( $sites ) ) 
     202                wp_die( -1 ); 
     203 
     204        foreach ( (array) $sites as $details ) { 
     205                $blogname = get_blog_option( $details['blog_id'], 'blogname' ); 
     206                $return[] = array( 
     207                        /* translators: 1: blogname, 2: domain */ 
     208                        'label' => sprintf( '%1$s (%2$s)', $blogname, $details['domain'] ), 
     209                        'value' => $details['domain'] 
     210                ); 
     211        } 
     212 
     213        wp_die( json_encode( $return ) ); 
     214} 
     215 
    184216/* 
    185217 * Ajax helper. 
    186218 */ 
     
    16751707 
    16761708        update_user_meta( get_current_user_id(), 'dismissed_wp_pointers', $dismissed ); 
    16771709        wp_die( 1 ); 
    1678 } 
    1679  No newline at end of file 
     1710} 
  • wp-admin/includes/dashboard.php

     
    438438                $actions['create-site'] = '<a href="' . network_admin_url('site-new.php') . '">' . __( 'Create a New Site' ) . '</a>'; 
    439439        if ( current_user_can('create_users') ) 
    440440                $actions['create-user'] = '<a href="' . network_admin_url('user-new.php') . '">' . __( 'Create a New User' ) . '</a>'; 
    441  
     441        if ( current_user_can( 'promote_users' ) && !wp_is_large_network( 'users' ) ) 
     442                wp_enqueue_script( 'user-search' ); 
     443                 
    442444        $c_users = get_user_count(); 
    443445        $c_blogs = get_blog_count(); 
    444446 
     
    463465 
    464466        <form name="searchform" action="<?php echo network_admin_url('users.php'); ?>" method="get"> 
    465467                <p> 
    466                         <input type="text" name="s" value="" size="17" /> 
     468                        <input type="text" name="s" value="" size="17" id="user-search-input" /> 
    467469                        <?php submit_button( __( 'Search Users' ), 'button', 'submit', false, array( 'id' => 'submit_users' ) ); ?> 
    468470                </p> 
    469471        </form> 
    470472 
    471473        <form name="searchform" action="<?php echo network_admin_url('sites.php'); ?>" method="get"> 
    472474                <p> 
    473                         <input type="text" name="s" value="" size="17" /> 
     475                        <input type="text" name="s" value="" size="17" id="site-search-input" /> 
    474476                        <?php submit_button( __( 'Search Sites' ), 'button', 'submit', false, array( 'id' => 'submit_sites' ) ); ?> 
    475477                </p> 
    476478        </form> 
  • wp-admin/js/user-search.dev.js

     
    22        var id = typeof( current_site_id ) != 'undefined' ? '&site_id=' + current_site_id : ''; 
    33 
    44        $( '#adduser-email, #newuser' ).autocomplete({ 
    5                 source:   ajaxurl + '?action=autocomplete-user' + id, 
     5                source:   ajaxurl + '?action=autocomplete-user&autocomplete_type=add' + id, 
    66                delay:    500, 
    77                minLength: 2 
    88        }); 
    9 }); 
    10  No newline at end of file 
     9 
     10        $( '#user-search-input' ).autocomplete({ 
     11                source:   ajaxurl + '?action=autocomplete-user&autocomplete_type=search' + id, 
     12                delay:    500, 
     13                minLength: 2 
     14        }); 
     15 
     16        $( '#site-search-input' ).autocomplete({ 
     17                source:   ajaxurl + '?action=autocomplete-site' + id, 
     18                delay:    500, 
     19                minLength: 2 
     20        }); 
     21}); 
  • wp-admin/index.php

     
    8888        '<p>' . __( '<a href="http://codex.wordpress.org/Dashboard_Screen" target="_blank">Documentation on Dashboard</a>' ) . '</p>' . 
    8989        '<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>' 
    9090); 
    91  
     91         
    9292include (ABSPATH . 'wp-admin/admin-header.php'); 
    9393 
    9494$today = current_time('mysql', 1); 
  • wp-admin/network/users.php

     
    247247        '<p>' . __('<a href="http://wordpress.org/support/forum/multisite/" target="_blank">Support Forums</a>') . '</p>' 
    248248); 
    249249 
     250if ( current_user_can( 'promote_users' ) && !wp_is_large_network( 'users' ) ) 
     251        wp_enqueue_script( 'user-search' ); 
     252 
    250253require_once( '../admin-header.php' ); 
    251254 
    252255if ( isset( $_REQUEST['updated'] ) && $_REQUEST['updated'] == 'true' && ! empty( $_REQUEST['action'] ) ) { 
  • wp-admin/network/sites.php

     
    284284 
    285285$wp_list_table->prepare_items(); 
    286286 
     287if ( current_user_can( 'manage_sites' ) && !wp_is_large_network( 'sites' ) ) 
     288        wp_enqueue_script( 'user-search' ); 
     289 
    287290require_once( '../admin-header.php' ); 
    288291?> 
    289292 
  • wp-admin/css/wp-admin.dev.css

     
    930930 
    931931.ui-autocomplete li a.ui-state-hover { 
    932932        background-color: #f0f0b8; 
     933        cursor: pointer; 
    933934} 
    934935 
    935936/*------------------------------------------------------------------------------