WordPress.org

Make WordPress Core

Ticket #37233: 37233.3.diff

File 37233.3.diff, 9.8 KB (added by adamsilverstein, 5 years ago)
  • src/wp-admin/includes/ajax-actions.php

     
    38513851
    38523852        ob_start();
    38533853        $wp_list_table->display();
     3854        $status['count'] = (int) $wp_list_table->get_pagination_arg( 'total_items' );
    38543855        $status['items'] = ob_get_clean();
    38553856
    38563857        wp_send_json_success( $status );
  • src/wp-admin/includes/class-wp-plugin-install-list-table.php

     
    285285                ?>
    286286        </ul>
    287287
    288         <?php install_search_form( isset( $views['plugin-install-search'] ) ); ?>
     288        <?php install_search_form(); ?>
    289289</div>
    290290<?php
    291291        }
  • src/wp-admin/includes/plugin-install.php

     
    246246 * Display search form for searching plugins.
    247247 *
    248248 * @since 2.7.0
     249 * @since 4.6.0 The optional `$type_selector` parameter was deprecated and renamed to `$deprecated`.
    249250 *
    250  * @param bool $type_selector
     251 * @param bool $deprecated Not used.
    251252 */
    252 function install_search_form( $type_selector = true ) {
     253function install_search_form( $deprecated = true ) {
    253254        $type = isset($_REQUEST['type']) ? wp_unslash( $_REQUEST['type'] ) : 'term';
    254255        $term = isset($_REQUEST['s']) ? wp_unslash( $_REQUEST['s'] ) : '';
    255         $input_attrs = '';
    256         $button_type = 'button screen-reader-text';
    257 
    258         // assume no $type_selector means it's a simplified search form
    259         if ( ! $type_selector ) {
    260                 $input_attrs = 'class="wp-filter-search" placeholder="' . esc_attr__( 'Search Plugins' ) . '" ';
    261         }
    262 
    263256        ?><form class="search-form search-plugins" method="get">
    264257                <input type="hidden" name="tab" value="search" />
    265                 <?php if ( $type_selector ) : ?>
    266258                <select name="type" id="typeselector">
    267259                        <option value="term"<?php selected('term', $type) ?>><?php _e('Keyword'); ?></option>
    268260                        <option value="author"<?php selected('author', $type) ?>><?php _e('Author'); ?></option>
    269261                        <option value="tag"<?php selected('tag', $type) ?>><?php _ex('Tag', 'Plugin Installer'); ?></option>
    270262                </select>
    271                 <?php endif; ?>
    272263                <label><span class="screen-reader-text"><?php _e('Search Plugins'); ?></span>
    273                         <input type="search" name="s" value="<?php echo esc_attr($term) ?>" <?php echo $input_attrs; ?>/>
     264                        <input type="search" name="s" value="<?php echo esc_attr($term) ?>" class="wp-filter-search" placeholder="<?php esc_attr__( 'Search Plugins' ); ?>" />
    274265                </label>
    275                 <?php submit_button( __( 'Search Plugins' ), $button_type, false, false, array( 'id' => 'search-submit' ) ); ?>
     266                <input type="submit" id="search-submit" class="button hide-if-js" value="<?php echo esc_attr__( 'Search Plugins' ); ?>">
    276267        </form><?php
    277268}
    278269
  • src/wp-admin/js/updates.js

     
    15981598        };
    15991599
    16001600        $( function() {
    1601                 var $pluginFilter    = $( '#plugin-filter' ),
    1602                         $bulkActionForm  = $( '#bulk-action-form' ),
    1603                         $filesystemModal = $( '#request-filesystem-credentials-dialog' ),
    1604                         $pluginSearch    = $( '.plugins-php .wp-filter-search' );
     1601                var $pluginFilter        = $( '#plugin-filter' ),
     1602                    $bulkActionForm      = $( '#bulk-action-form' ),
     1603                    $filesystemModal     = $( '#request-filesystem-credentials-dialog' ),
     1604                    $pluginSearch        = $( '.plugins-php .wp-filter-search' ),
     1605                    $pluginInstallSearch = $( '.plugin-install-php .wp-filter-search' );
    16051606
    16061607                /*
    16071608                 * Whether a user needs to submit filesystem credentials.
     
    20212022                        wp.updates.queueChecker();
    20222023                } );
    20232024
     2025                if ( $pluginInstallSearch.length > 0 ) {
     2026                        $pluginInstallSearch.attr( 'aria-describedby', 'live-search-desc' );
     2027                }
     2028
     2029                // Handle changes in the new plign search type dropdown.
     2030
    20242031                /**
    20252032                 * Handles changes to the plugin search box on the new-plugin page,
    20262033                 * searching the repository dynamically.
     
    20272034                 *
    20282035                 * @since 4.6.0
    20292036                 */
    2030                 $( '.plugin-install-php .wp-filter-search' ).on( 'keyup search', _.debounce( function() {
    2031                         var $form = $( '#plugin-filter' ).empty(),
    2032                                 data  = _.extend( {
    2033                                         _ajax_nonce: wp.updates.ajaxNonce,
    2034                                         s:           $( '<p />' ).html( $( this ).val() ).text(),
    2035                                         tab:         'search',
    2036                                         type:        $( '#typeselector' ).val()
    2037                                 }, { type: 'term' } );
     2037                $pluginInstallSearch.on( 'keyup input', _.debounce( function( event, eventtype ) {
     2038                        var $form          = $( '#plugin-filter' ),
     2039                            $searchTab     = $( '.plugin-install-search' ),
     2040                            data           = {
     2041                                    _ajax_nonce: wp.updates.ajaxNonce,
     2042                                    s:           event.target.value,
     2043                                    tab:         'search',
     2044                                    type:        $( '#typeselector' ).val()
     2045                            },
     2046                            searchLocation = location.href.split( '?' )[ 0 ] + '?' + $.param( _.omit( data, '_ajax_nonce' ) );
    20382047
    2039                         if ( wp.updates.searchTerm === data.s ) {
     2048                        // Clear on escape.
     2049                        if ( 'keyup' === event.type && 27 === event.which ) {
     2050                                event.target.value = '';
     2051                        }
     2052
     2053                        if ( wp.updates.searchTerm === data.s && 'typechange' !== eventtype ) {
    20402054                                return;
    20412055                        } else {
     2056                                $form.empty();
    20422057                                wp.updates.searchTerm = data.s;
    20432058                        }
    20442059
    20452060                        if ( history.pushState ) {
    2046                                 history.pushState( null, '', location.href.split( '?' )[ 0 ] + '?' + $.param( _.omit( data, '_ajax_nonce' ) ) );
     2061                                history.pushState( null, '', searchLocation );
    20472062                        }
    20482063
     2064                        if ( ! $searchTab.length ) {
     2065                                $searchTab = $( '<li class="plugin-install-search"><a></a></li>' );
     2066                                $searchTab.find( 'a' )
     2067                                        .addClass( 'current' )
     2068                                        .attr( 'href', searchLocation )
     2069                                        .text( wp.updates.l10n.searchResultsLabel );
     2070
     2071                                $( '.wp-filter .filter-links .current' )
     2072                                        .removeClass( 'current' )
     2073                                        .parents( '.filter-links' )
     2074                                        .prepend( $searchTab );
     2075                        }
     2076
    20492077                        if ( 'undefined' !== typeof wp.updates.searchRequest ) {
    20502078                                wp.updates.searchRequest.abort();
    20512079                        }
     
    20552083                                $( 'body' ).removeClass( 'loading-content' );
    20562084                                $form.append( response.items );
    20572085                                delete wp.updates.searchRequest;
     2086
     2087                                if ( 0 === response.count ) {
     2088                                        wp.a11y.speak( wp.updates.l10n.noPluginsFound );
     2089                                } else {
     2090                                        wp.a11y.speak( wp.updates.l10n.pluginsFound.replace( '%d', response.count ) );
     2091                                }
    20582092                        } );
    20592093                }, 500 ) );
    20602094
     
    21302164                $document.on( 'submit', '.search-plugins', function( event ) {
    21312165                        event.preventDefault();
    21322166
    2133                         $( 'input.wp-filter-search' ).trigger( 'search' );
     2167                        $( 'input.wp-filter-search' ).trigger( 'input' );
    21342168                } );
    21352169
    21362170                /**
     
    21392173                 * @since 4.6.0
    21402174                 */
    21412175                $( '#typeselector' ).on( 'change', function() {
    2142                         $( 'input[name="s"]' ).trigger( 'search' );
     2176                        $( 'input[name="s"]' ).trigger( 'input', 'typechange' );
    21432177                } );
    21442178
    21452179                /**
  • src/wp-admin/plugin-install.php

     
    7070'id'            => 'overview',
    7171'title'         => __('Overview'),
    7272'content'       =>
    73         '<p>' . sprintf(__('Plugins hook into WordPress to extend its functionality with custom features. Plugins are developed independently from the core WordPress application by thousands of developers all over the world. All plugins in the official <a href="%s" target="_blank">WordPress Plugin Directory</a> are compatible with the license WordPress uses. You can find new plugins to install by searching or browsing the Directory right here in your own Plugins section.'), 'https://wordpress.org/plugins/') . '</p>'
     73        '<p>' . sprintf( __('Plugins hook into WordPress to extend its functionality with custom features. Plugins are developed independently from the core WordPress application by thousands of developers all over the world. All plugins in the official <a href="%s" target="_blank">WordPress Plugin Directory</a> are compatible with the license WordPress uses.' ), 'https://wordpress.org/plugins/' ) . '</p>' .
     74        '<p>' . __( 'You can find new plugins to install by searching or browsing the Directory right here in your own Plugins section.' ) . ' <span id="live-search-desc" class="hide-if-no-js">' . __( 'The search results will be updated as you type.' ) . '</span></p>'
     75
    7476) );
    7577get_current_screen()->add_help_tab( array(
    7678'id'            => 'adding-plugins',
  • src/wp-includes/script-loader.php

     
    600600                        'l10n'       => array(
    601601                                /* translators: %s: Search string */
    602602                                'searchResults'              => __( 'Search results for &#8220;%s&#8221;' ),
     603                                'searchResultsLabel'         => __( 'Search Results' ),
    603604                                'noPlugins'                  => __( 'You do not appear to have any plugins available at this time.' ),
    604605                                'noItemsSelected'            => __( 'Please select at least one item to perform this action on.' ),
    605606                                'updating'                   => __( 'Updating...' ), // No ellipsis.
  • tests/qunit/fixtures/updates.js

     
    22        'ajax_nonce': '719b10f05d',
    33        'l10n': {
    44                'searchResults': 'Search results for &#8220;%s&#8221;',
     5                'searchResultsLabel': 'Search Results',
    56                'noPlugins': 'You do not appear to have any plugins available at this time.',
    67                'noItemsSelected': 'Please select at least one item to perform this action on.',
    78                'updating': 'Updating...',