WordPress.org

Make WordPress Core

Ticket #19810: 19810.20.patch

File 19810.20.patch, 10.1 KB (added by Japh, 4 years ago)

Patch including changes from [19934], and applying them across the other new user and site autocomplete areas

  • wp-includes/script-loader.php

     
    262262 
    263263        $scripts->add( 'user-search', "/wp-admin/js/user-search$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 ); 
    264264 
     265        $scripts->add( 'site-search', "/wp-admin/js/site-search$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 ); 
     266 
    265267        $scripts->add( 'admin-bar', "/wp-includes/js/admin-bar$suffix.js", array(), false, 1 ); 
    266268 
    267269        $scripts->add( 'wplink', "/wp-includes/js/wplink$suffix.js", array( 'jquery', 'wpdialogs' ), false, 1 ); 
  • wp-admin/users.php

     
    338338                wp_redirect( add_query_arg( 'paged', $total_pages ) ); 
    339339                exit; 
    340340        } 
     341 
     342        if ( is_multisite() 
     343                && current_user_can( 'promote_users' ) 
     344                && ! wp_is_large_network( 'users' ) 
     345                && ( is_super_admin() || apply_filters( 'autocomplete_users_for_site_admins', false ) ) 
     346        ) { 
     347                wp_enqueue_script( 'user-search' ); 
     348        } 
     349 
    341350        include('./admin-header.php'); 
    342351 
    343352        $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

     
    160160         
    161161        $return = array(); 
    162162 
     163        // Check the type of request 
     164        if ( isset( $_REQUEST['autocomplete_type'] ) ) 
     165                $type = $_REQUEST['autocomplete_type']; 
     166        else 
     167                $type = 'add'; 
     168 
    163169        // Exclude current users of this blog 
    164170        if ( isset( $_REQUEST['site_id'] ) ) 
    165171                $id = absint( $_REQUEST['site_id'] ); 
    166172        else 
    167173                $id = get_current_blog_id(); 
    168174 
    169         $this_blog_users = get_users( array( 'blog_id' => $id, 'fields' => 'ID' ) ); 
     175        $include_blog_users = ( $type == 'search' ? get_users( array( 'blog_id' => $id, 'fields' => 'ID' ) ) : array() ); 
     176        $exclude_blog_users = ( $type == 'add' ? get_users( array( 'blog_id' => $id, 'fields' => 'ID' ) ) : array() ); 
    170177 
    171178        $users = get_users( array( 
    172179                'blog_id' => false, 
    173180                'search'  => '*' . $_REQUEST['term'] . '*', 
    174                 'exclude' => $this_blog_users, 
     181                'include' => $include_blog_users, 
     182                'exclude' => $exclude_blog_users, 
    175183                'search_columns' => array( 'user_login', 'user_nicename', 'user_email' ), 
    176         ) );     
     184        ) ); 
    177185 
    178186        foreach ( $users as $user ) { 
    179187                $return[] = array( 
    180                         /* translators: 1: user_login, 2: user_email */ 
    181                         'label' => sprintf( __( '%1$s (%2$s)' ), $user->user_login, $user->user_email ), 
     188                        'label' => sprintf( '%1$s (%2$s)', $user->user_login, $user->user_email ), 
    182189                        'value' => $user->user_login, 
    183190                ); 
    184191        } 
     
    186193        wp_die( json_encode( $return ) ); 
    187194} 
    188195 
     196function wp_ajax_autocomplete_site() { 
     197        if ( !is_multisite() 
     198                || !current_user_can( 'manage_sites' ) 
     199                || wp_is_large_network( 'sites' ) 
     200                || ( !is_super_admin() && apply_filters( 'autocomplete_sites_for_site_admins', false ) ) 
     201        ) { 
     202                wp_die( -1 ); 
     203        } 
     204 
     205        $return = array(); 
     206 
     207        global $wpdb; 
     208        $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 ); 
     209 
     210        if ( empty( $sites ) ) 
     211                wp_die( -1 ); 
     212 
     213        foreach ( (array) $sites as $details ) { 
     214                $blogname = get_blog_option( $details['blog_id'], 'blogname' ); 
     215                $return[] = array( 
     216                        'label' => sprintf( '%1$s (%2$s)', $blogname, $details['domain'] ), 
     217                        'value' => $details['domain'] 
     218                ); 
     219        } 
     220 
     221        wp_die( json_encode( $return ) ); 
     222} 
     223 
    189224/* 
    190225 * Ajax helper. 
    191226 */ 
  • wp-admin/includes/dashboard.php

     
    439439        if ( current_user_can('create_users') ) 
    440440                $actions['create-user'] = '<a href="' . network_admin_url('user-new.php') . '">' . __( 'Create a New User' ) . '</a>'; 
    441441 
     442        if ( is_multisite() 
     443                && current_user_can( 'promote_users' ) 
     444                && ! wp_is_large_network( 'users' ) 
     445                && ( is_super_admin() || apply_filters( 'autocomplete_users_for_site_admins', false ) ) 
     446        ) { 
     447                wp_enqueue_script( 'user-search' ); 
     448        } 
     449        if ( is_multisite() 
     450                && current_user_can( 'manage_sites' ) 
     451                && ! wp_is_large_network( 'sites' ) 
     452                && ( is_super_admin() || apply_filters( 'autocomplete_sites_for_site_admins', false ) ) 
     453        ) { 
     454                wp_enqueue_script( 'site-search' ); 
     455        } 
     456 
    442457        $c_users = get_user_count(); 
    443458        $c_blogs = get_blog_count(); 
    444459 
     
    463478 
    464479        <form name="searchform" action="<?php echo network_admin_url('users.php'); ?>" method="get"> 
    465480                <p> 
    466                         <input type="text" name="s" value="" size="17" /> 
     481                        <input type="text" name="s" value="" size="17" id="user-search-input" /> 
    467482                        <?php submit_button( __( 'Search Users' ), 'button', 'submit', false, array( 'id' => 'submit_users' ) ); ?> 
    468483                </p> 
    469484        </form> 
    470485 
    471486        <form name="searchform" action="<?php echo network_admin_url('sites.php'); ?>" method="get"> 
    472487                <p> 
    473                         <input type="text" name="s" value="" size="17" /> 
     488                        <input type="text" name="s" value="" size="17" id="site-search-input" /> 
    474489                        <?php submit_button( __( 'Search Sites' ), 'button', 'submit', false, array( 'id' => 'submit_sites' ) ); ?> 
    475490                </p> 
    476491        </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}); 
  • wp-admin/js/site-search.dev.js

     
     1jQuery( function($) { 
     2        $( '#site-search-input' ).autocomplete({ 
     3                source:   ajaxurl + '?action=autocomplete-site', 
     4                delay:    500, 
     5                minLength: 2 
     6        }); 
     7}); 
  • wp-admin/index.php

    Property changes on: wp-admin/js/site-search.dev.js
    ___________________________________________________________________
    Added: svn:executable
       + *
    
     
    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 ( is_multisite() 
     251        && current_user_can( 'promote_users' ) 
     252        && ! wp_is_large_network( 'users' ) 
     253        && ( is_super_admin() || apply_filters( 'autocomplete_users_for_site_admins', false ) ) 
     254) { 
     255        wp_enqueue_script( 'user-search' ); 
     256} 
     257 
    250258require_once( '../admin-header.php' ); 
    251259 
    252260if ( 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 ( is_multisite() 
     175        && current_user_can( 'promote_users' ) 
     176        && ! wp_is_large_network( 'users' ) 
     177        && ( is_super_admin() || apply_filters( 'autocomplete_users_for_site_admins', false ) ) 
     178) { 
    175179        wp_enqueue_script( 'user-search' ); 
     180} 
    176181 
    177182require('../admin-header.php'); ?> 
    178183 
  • wp-admin/network/sites.php

     
    284284 
    285285$wp_list_table->prepare_items(); 
    286286 
     287if ( is_multisite() 
     288        && current_user_can( 'manage_sites' ) 
     289        && ! wp_is_large_network( 'sites' ) 
     290        && ( is_super_admin() || apply_filters( 'autocomplete_sites_for_site_admins', false ) ) 
     291) { 
     292        wp_enqueue_script( 'site-search' ); 
     293} 
     294 
    287295require_once( '../admin-header.php' ); 
    288296?> 
    289297 
  • 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/*------------------------------------------------------------------------------