Ticket #37233: 37233.3.diff
File 37233.3.diff, 9.8 KB (added by , 9 years ago) |
---|
-
src/wp-admin/includes/ajax-actions.php
3851 3851 3852 3852 ob_start(); 3853 3853 $wp_list_table->display(); 3854 $status['count'] = (int) $wp_list_table->get_pagination_arg( 'total_items' ); 3854 3855 $status['items'] = ob_get_clean(); 3855 3856 3856 3857 wp_send_json_success( $status ); -
src/wp-admin/includes/class-wp-plugin-install-list-table.php
285 285 ?> 286 286 </ul> 287 287 288 <?php install_search_form( isset( $views['plugin-install-search'] )); ?>288 <?php install_search_form(); ?> 289 289 </div> 290 290 <?php 291 291 } -
src/wp-admin/includes/plugin-install.php
246 246 * Display search form for searching plugins. 247 247 * 248 248 * @since 2.7.0 249 * @since 4.6.0 The optional `$type_selector` parameter was deprecated and renamed to `$deprecated`. 249 250 * 250 * @param bool $ type_selector251 * @param bool $deprecated Not used. 251 252 */ 252 function install_search_form( $ type_selector= true ) {253 function install_search_form( $deprecated = true ) { 253 254 $type = isset($_REQUEST['type']) ? wp_unslash( $_REQUEST['type'] ) : 'term'; 254 255 $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 form259 if ( ! $type_selector ) {260 $input_attrs = 'class="wp-filter-search" placeholder="' . esc_attr__( 'Search Plugins' ) . '" ';261 }262 263 256 ?><form class="search-form search-plugins" method="get"> 264 257 <input type="hidden" name="tab" value="search" /> 265 <?php if ( $type_selector ) : ?>266 258 <select name="type" id="typeselector"> 267 259 <option value="term"<?php selected('term', $type) ?>><?php _e('Keyword'); ?></option> 268 260 <option value="author"<?php selected('author', $type) ?>><?php _e('Author'); ?></option> 269 261 <option value="tag"<?php selected('tag', $type) ?>><?php _ex('Tag', 'Plugin Installer'); ?></option> 270 262 </select> 271 <?php endif; ?>272 263 <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' ); ?>" /> 274 265 </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' ); ?>"> 276 267 </form><?php 277 268 } 278 269 -
src/wp-admin/js/updates.js
1598 1598 }; 1599 1599 1600 1600 $( 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' ); 1605 1606 1606 1607 /* 1607 1608 * Whether a user needs to submit filesystem credentials. … … 2021 2022 wp.updates.queueChecker(); 2022 2023 } ); 2023 2024 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 2024 2031 /** 2025 2032 * Handles changes to the plugin search box on the new-plugin page, 2026 2033 * searching the repository dynamically. … … 2027 2034 * 2028 2035 * @since 4.6.0 2029 2036 */ 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' ) ); 2038 2047 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 ) { 2040 2054 return; 2041 2055 } else { 2056 $form.empty(); 2042 2057 wp.updates.searchTerm = data.s; 2043 2058 } 2044 2059 2045 2060 if ( history.pushState ) { 2046 history.pushState( null, '', location.href.split( '?' )[ 0 ] + '?' + $.param( _.omit( data, '_ajax_nonce' ) ));2061 history.pushState( null, '', searchLocation ); 2047 2062 } 2048 2063 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 2049 2077 if ( 'undefined' !== typeof wp.updates.searchRequest ) { 2050 2078 wp.updates.searchRequest.abort(); 2051 2079 } … … 2055 2083 $( 'body' ).removeClass( 'loading-content' ); 2056 2084 $form.append( response.items ); 2057 2085 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 } 2058 2092 } ); 2059 2093 }, 500 ) ); 2060 2094 … … 2130 2164 $document.on( 'submit', '.search-plugins', function( event ) { 2131 2165 event.preventDefault(); 2132 2166 2133 $( 'input.wp-filter-search' ).trigger( ' search' );2167 $( 'input.wp-filter-search' ).trigger( 'input' ); 2134 2168 } ); 2135 2169 2136 2170 /** … … 2139 2173 * @since 4.6.0 2140 2174 */ 2141 2175 $( '#typeselector' ).on( 'change', function() { 2142 $( 'input[name="s"]' ).trigger( ' search' );2176 $( 'input[name="s"]' ).trigger( 'input', 'typechange' ); 2143 2177 } ); 2144 2178 2145 2179 /** -
src/wp-admin/plugin-install.php
70 70 'id' => 'overview', 71 71 'title' => __('Overview'), 72 72 '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 74 76 ) ); 75 77 get_current_screen()->add_help_tab( array( 76 78 'id' => 'adding-plugins', -
src/wp-includes/script-loader.php
600 600 'l10n' => array( 601 601 /* translators: %s: Search string */ 602 602 'searchResults' => __( 'Search results for “%s”' ), 603 'searchResultsLabel' => __( 'Search Results' ), 603 604 'noPlugins' => __( 'You do not appear to have any plugins available at this time.' ), 604 605 'noItemsSelected' => __( 'Please select at least one item to perform this action on.' ), 605 606 'updating' => __( 'Updating...' ), // No ellipsis. -
tests/qunit/fixtures/updates.js
2 2 'ajax_nonce': '719b10f05d', 3 3 'l10n': { 4 4 'searchResults': 'Search results for “%s”', 5 'searchResultsLabel': 'Search Results', 5 6 'noPlugins': 'You do not appear to have any plugins available at this time.', 6 7 'noItemsSelected': 'Please select at least one item to perform this action on.', 7 8 'updating': 'Updating...',