WordPress.org

Make WordPress Core

Ticket #37233: 37233.4.diff

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

     
    38563856
    38573857        ob_start();
    38583858        $wp_list_table->display();
     3859        $status['count'] = (int) $wp_list_table->get_pagination_arg( 'total_items' );
    38593860        $status['items'] = ob_get_clean();
    38603861
    38613862        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; ?>
    272                 <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; ?>/>
     263                <label><span class="screen-reader-text"><?php _e( 'Search Plugins' ); ?></span>
     264                        <input type="search" name="s" value="<?php echo esc_attr( $term ) ?>" class="wp-filter-search" placeholder="<?php esc_attr_e( '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 esc_attr_e( '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
    20242029                /**
    20252030                 * Handles changes to the plugin search box on the new-plugin page,
    20262031                 * searching the repository dynamically.
    20272032                 *
    20282033                 * @since 4.6.0
    20292034                 */
    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:           $( this ).val(),
    2035                                         tab:         'search',
    2036                                         type:        $( '#typeselector' ).val(),
    2037                                         pagenow:     pagenow
    2038                                 }, { type: 'term' } );
     2035                $pluginInstallSearch.on( 'keyup input', _.debounce( function( event, eventtype ) {
     2036                        var $form = $( '#plugin-filter' ), $searchTab = $( '.plugin-install-search' ),
     2037                                data, searchLocation;
    20392038
    2040                         if ( wp.updates.searchTerm === data.s ) {
     2039                        data = {
     2040                                _ajax_nonce: wp.updates.ajaxNonce,
     2041                                s:           event.target.value,
     2042                                tab:         'search',
     2043                                type:        $( '#typeselector' ).val(),
     2044                                pagenow:     pagenow
     2045                        };
     2046                        searchLocation = location.href.split( '?' )[ 0 ] + '?' + $.param( _.omit( data, [ '_ajax_nonce', 'pagenow' ] ) );
     2047
     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 ) {
    20412054                                return;
    20422055                        } else {
     2056                                $form.empty();
    20432057                                wp.updates.searchTerm = data.s;
    20442058                        }
    20452059
    20462060                        if ( history.pushState ) {
    2047                                 history.pushState( null, '', location.href.split( '?' )[ 0 ] + '?' + $.param( _.omit( data, [ '_ajax_nonce', 'pagenow' ] ) ) );
     2061                                history.pushState( null, '', searchLocation );
    20482062                        }
    20492063
     2064                        if ( ! $searchTab.length ) {
     2065                                $searchTab = $( '<li class="plugin-install-search" />' )
     2066                                        .append( $( '<a />', {
     2067                                                'class': 'current',
     2068                                                'href': searchLocation,
     2069                                                'text': wp.updates.l10n.searchResultsLabel
     2070                                        } ) );
     2071
     2072                                $( '.wp-filter .filter-links .current' )
     2073                                        .removeClass( 'current' )
     2074                                        .parents( '.filter-links' )
     2075                                        .prepend( $searchTab );
     2076                        }
     2077
    20502078                        if ( 'undefined' !== typeof wp.updates.searchRequest ) {
    20512079                                wp.updates.searchRequest.abort();
    20522080                        }
     
    20562084                                $( 'body' ).removeClass( 'loading-content' );
    20572085                                $form.append( response.items );
    20582086                                delete wp.updates.searchRequest;
     2087
     2088                                if ( 0 === response.count ) {
     2089                                        wp.a11y.speak( wp.updates.l10n.noPluginsFound );
     2090                                } else {
     2091                                        wp.a11y.speak( wp.updates.l10n.pluginsFound.replace( '%d', response.count ) );
     2092                                }
    20592093                        } );
    20602094                }, 500 ) );
    20612095
     
    21322166                $document.on( 'submit', '.search-plugins', function( event ) {
    21332167                        event.preventDefault();
    21342168
    2135                         $( 'input.wp-filter-search' ).trigger( 'search' );
     2169                        $( 'input.wp-filter-search' ).trigger( 'input' );
    21362170                } );
    21372171
    21382172                /**
     
    21412175                 * @since 4.6.0
    21422176                 */
    21432177                $( '#typeselector' ).on( 'change', function() {
    2144                         $( 'input[name="s"]' ).trigger( 'search' );
     2178                        $( 'input[name="s"]' ).trigger( 'input', 'typechange' );
    21452179                } );
    21462180
    21472181                /**
  • 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

     
    609609                        'l10n'       => array(
    610610                                /* translators: %s: Search string */
    611611                                'searchResults'              => __( 'Search results for &#8220;%s&#8221;' ),
     612                                'searchResultsLabel'         => __( 'Search Results' ),
    612613                                'noPlugins'                  => __( 'You do not appear to have any plugins available at this time.' ),
    613614                                'noItemsSelected'            => __( 'Please select at least one item to perform this action on.' ),
    614615                                '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...',