WordPress.org

Make WordPress Core

Ticket #19810: 19810.9.patch

File 19810.9.patch, 7.4 KB (added by PeteMall, 6 years ago)

Added the missing js file.

  • wp-includes/user.php

     
    378378                                'include' => array(),
    379379                                'exclude' => array(),
    380380                                'search' => '',
     381                                'search_columns' => array(),
    381382                                'orderby' => 'login',
    382383                                'order' => 'ASC',
    383384                                'offset' => '',
     
    476477                        if ( $wild )
    477478                                $search = trim($search, '*');
    478479
    479                         if ( false !== strpos( $search, '@') )
    480                                 $search_columns = array('user_email');
    481                         elseif ( is_numeric($search) )
    482                                 $search_columns = array('user_login', 'ID');
    483                         elseif ( preg_match('|^https?://|', $search) )
    484                                 $search_columns = array('user_url');
    485                         else
    486                                 $search_columns = array('user_login', 'user_nicename');
     480                        $search_columns = array();
     481                        if ( $qv['search_columns'] )
     482                                $search_columns = array_intersect( $qv['search_columns'], array( 'ID', 'user_login', 'user_email', 'user_url', 'user_nicename' ) );
     483                        if ( ! $search_columns ) {
     484                                if ( false !== strpos( $search, '@') )
     485                                        $search_columns = array('user_email');
     486                                elseif ( is_numeric($search) )
     487                                        $search_columns = array('user_login', 'ID');
     488                                elseif ( preg_match('|^https?://|', $search) )
     489                                        $search_columns = array('user_url');
     490                                else
     491                                        $search_columns = array('user_login', 'user_nicename');
     492                        }
    487493
    488494                        $this->query_where .= $this->get_search_sql( $search, $search_columns, $wild );
    489495                }
  • wp-includes/script-loader.php

     
    260260
    261261        $scripts->add( 'user-profile', "/wp-admin/js/user-profile$suffix.js", array( 'jquery', 'password-strength-meter' ), false, 1 );
    262262
     263        $scripts->add( 'user-search', "/wp-admin/js/user-search$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 );
     264
    263265        $scripts->add( 'admin-bar', "/wp-includes/js/admin-bar$suffix.js", array(), false, 1 );
    264266
    265267        $scripts->add( 'wplink', "/wp-includes/js/wplink$suffix.js", array( 'jquery', 'wpdialogs' ), false, 1 );
  • 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' );
     37$core_actions_get = array( 'fetch-list', 'ajax-tag-search', 'wp-compression-test', 'imgedit-preview', 'oembed_cache', 'autocomplete-user' );
    3838
    3939$core_actions_post = array(
    4040        'oembed_cache', 'image-editor', 'delete-comment', 'delete-tag', 'delete-link',
  • wp-admin/includes/ajax-actions.php

     
    149149        wp_die( $return );
    150150}
    151151
     152function wp_ajax_autocomplete_user() {
     153        if ( !is_multisite() || !current_user_can( 'promote_users' ) || wp_is_large_network() || !is_super_admin() && apply_filters( 'autocomplete_users_for_site_admins', false ) )
     154                wp_die( -1 );
     155       
     156        $return = array();
     157
     158        // Exclude current users of this blog
     159        if ( is_network_admin() ) {
     160                global $id;
     161                $this_blog_users = get_users( array( 'blog_id' => $id, 'fields' => 'ID' ) );
     162        } else {
     163                $this_blog_users = get_users( array( 'blog_id' => get_current_blog_id(), 'fields' => 'ID' ) );
     164        }
     165
     166        $users = get_users( array(
     167                'blog_id' => false,
     168                'search'  => '*' . $_REQUEST['term'] . '*',
     169                'exclude' => $this_blog_users,
     170                'search_columns' => array( 'user_login', 'user_nicename', 'user_email' ),
     171        ) );   
     172
     173        foreach ( $users as $user ) {
     174                $return[] = array(
     175                        /* translators: 1: user_login, 2: user_email */
     176                        'label' => sprintf( __( '%1$s (%2$s)' ), $user->user_login, $user->user_email ),
     177                        'value' => $user->user_login,
     178                );
     179        }
     180
     181        wp_die( json_encode( $return ) );
     182}
     183
    152184/*
    153185 * Ajax helper.
    154186 */
  • wp-admin/js/user-search.dev.js

     
     1(function($){
     2
     3        $(document).ready(function() {
     4
     5                var ainput = $('#adduser-email, #newuser');
     6
     7                var options = {
     8                        source: ajaxurl + '?action=autocomplete-user',
     9                        appendTo: 'form#adduser',
     10                        select: function( event, ui ){ $(ainput).val( ui.item.value ); },
     11                        delay: 500, // milliseconds
     12                        minLength: 2, // Don't want to match a crazy number of items.
     13                };
     14
     15                a = $(ainput).autocomplete(options);
     16        });
     17
     18})(jQuery);
     19 No newline at end of file
  • wp-admin/user-new.php

     
    178178
    179179wp_enqueue_script('wp-ajax-response');
    180180wp_enqueue_script('user-profile');
     181if ( is_multisite() && current_user_can( 'promote_users' ) && !wp_is_large_network() && is_super_admin() || apply_filters( 'autocomplete_users_for_site_admins', false ) )
     182        wp_enqueue_script( 'user-search' );
    181183
    182 require_once ('admin-header.php');
     184require_once( 'admin-header.php' );
    183185
    184186if ( isset($_GET['update']) ) {
    185187        $messages = array();
  • wp-admin/network/site-users.php

     
    171171$parent_file = 'sites.php';
    172172$submenu_file = 'sites.php';
    173173
     174if ( current_user_can( 'promote_users' ) && apply_filters( 'show_network_site_users_add_existing_form', true ) && !wp_is_large_network() )
     175        wp_enqueue_script( 'user-search' );
     176
    174177require('../admin-header.php'); ?>
    175178
    176179<div class="wrap">
  • wp-admin/css/wp-admin.dev.css

     
    892892        margin: 0;
    893893}
    894894
     895#wpcontent input[type="text"].ui-autocomplete-loading {
     896        background: transparent url('../images/loading.gif') no-repeat right center;
     897        visibility: visible;
     898}
    895899
     900ul#add-to-blog-users {
     901        margin: 0 0 0 14px;
     902}
     903
     904form#adduser ul.ui-autocomplete {
     905        padding: 0;
     906        margin: 0;
     907        list-style: none;
     908        position: absolute;
     909        z-index: 10000;
     910        border-width: 1px;
     911        border-style: solid;
     912
     913        background-color: #ffffff;
     914        border-color: gray;
     915}
     916
     917form#adduser .ui-widget-content {
     918        background: #ececec;
     919}
     920
     921form#adduser .ui-widget-content li {
     922        padding: 2px 5px;
     923        white-space: nowrap;
     924        text-align: left;
     925        color: #101010;
     926}
     927
     928form#adduser .ui-widget-content li a {
     929        display: block;
     930        height: 100%;
     931        padding: 2px 5px;
     932        color: #333;
     933}
     934
     935form#adduser .ui-widget-content li a.ui-state-hover {
     936        background-color: #f0f0b8;
     937}
     938
     939form#adduser a.remove {
     940        margin: 6px 0pt 0pt -12px;
     941        cursor: pointer;
     942        width: 10px;
     943        height: 10px;
     944        display: block;
     945        float: left;
     946        text-indent: -9999px;
     947        overflow: hidden;
     948        position: absolute;
     949        background: transparent url(../images/xit.gif) no-repeat;
     950}
     951
     952form#adduser a.remove:hover {
     953        background: transparent url(../images/xit.gif) no-repeat -10px 0;
     954}
     955
     956
    896957/*------------------------------------------------------------------------------
    897958  3.0 - Actions
    898959------------------------------------------------------------------------------*/