WordPress.org

Make WordPress Core

Ticket #19810: 19810.15.patch

File 19810.15.patch, 7.7 KB (added by DrewAPicture, 4 years ago)

Increments onto 19810.14.patch, ads 1st pass at site search autocomplete

  • 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( 
     
    181189        wp_die( json_encode( $return ) ); 
    182190} 
    183191 
     192 
     193function wp_ajax_autocomplete_site() { 
     194        if ( !is_multisite() || !current_user_can( 'manage_sites' ) || wp_is_large_network( 'sites' ) ) 
     195                wp_die( -1 ); 
     196 
     197        $return = array(); 
     198 
     199        global $wpdb; 
     200        $sites = $wpdb->get_results( $wpdb->prepare( "SELECT blog_id, domain FROM $wpdb->blogs WHERE public = '1' AND archived = '0' AND mature = '0' AND spam = '0' AND deleted = '0' ORDER BY registered DESC" ), ARRAY_A ); 
     201 
     202        if ( !empty( $sites ) ) { 
     203 
     204                foreach ( (array) $sites as $details ) { 
     205                        $blogname = $wpdb->get_var( $wpdb->prepare( "SELECT option_value FROM " . $wpdb->get_blog_prefix( $details['blog_id'] ) . "options WHERE option_name = 'blogname'" ) ); 
     206                        $return[] = array( 
     207                                'label' => sprintf( __( '%1$s' ), $blogname ), 
     208                                'value' => $blogname 
     209                        ); 
     210                } 
     211        } else { 
     212                wp_die( -1 ); 
     213        } 
     214 
     215        wp_die( json_encode( $return ) ); 
     216} 
     217 
    184218/* 
    185219 * Ajax helper. 
    186220 */ 
     
    16751709 
    16761710        update_user_meta( get_current_user_id(), 'dismissed_wp_pointers', $dismissed ); 
    16771711        wp_die( 1 ); 
    1678 } 
    1679  No newline at end of file 
     1712} 
  • 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/site-users.php

     
    171171$parent_file = 'sites.php'; 
    172172$submenu_file = 'sites.php'; 
    173173 
    174 if ( current_user_can( 'promote_users' ) && apply_filters( 'show_network_site_users_add_existing_form', true ) && !wp_is_large_network( 'users' ) ) 
     174if ( current_user_can( 'promote_users' ) && !wp_is_large_network( 'users' ) ) 
    175175        wp_enqueue_script( 'user-search' ); 
    176176 
    177177require('../admin-header.php'); ?> 
  • wp-admin/network/sites.php

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