Changeset 38119
- Timestamp:
- 07/20/2016 04:31:50 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/includes/ajax-actions.php
r38118 r38119 3882 3882 ob_start(); 3883 3883 $wp_list_table->display(); 3884 $status['count'] = (int) $wp_list_table->get_pagination_arg( 'total_items' ); 3884 3885 $status['items'] = ob_get_clean(); 3885 3886 -
trunk/src/wp-admin/includes/class-wp-plugin-install-list-table.php
r38071 r38119 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 -
trunk/src/wp-admin/includes/plugin-install.php
r38025 r38119 215 215 <?php display_plugins_table(); ?> 216 216 217 <div class="plugins-popular-tags-wrapper"> 217 218 <h2><?php _e( 'Popular tags' ) ?></h2> 218 219 <p><?php _e( 'You may also browse based on the most popular tags in the Plugin Directory:' ) ?></p> … … 240 241 echo wp_generate_tag_cloud($tags, array( 'single_text' => __('%s plugin'), 'multiple_text' => __('%s plugins') ) ); 241 242 } 242 echo '</p><br class="clear" /> ';243 } 244 245 /** 246 * Display search form for searching plugins.243 echo '</p><br class="clear" /></div>'; 244 } 245 246 /** 247 * Displays a search form for searching plugins. 247 248 * 248 249 * @since 2.7.0 249 * 250 * @param bool $type_selector 251 */ 252 function install_search_form( $type_selector = true ) { 253 $type = isset($_REQUEST['type']) ? wp_unslash( $_REQUEST['type'] ) : 'term'; 254 $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 250 * @since 4.6.0 The `$type_selector` parameter was deprecated. 251 * 252 * @param bool $deprecated Not used. 253 */ 254 function install_search_form( $deprecated = true ) { 255 $type = isset( $_REQUEST['type'] ) ? wp_unslash( $_REQUEST['type'] ) : 'term'; 256 $term = isset( $_REQUEST['s'] ) ? wp_unslash( $_REQUEST['s'] ) : ''; 263 257 ?><form class="search-form search-plugins" method="get"> 264 258 <input type="hidden" name="tab" value="search" /> 265 < ?php if ( $type_selector ) : ?>259 <label class="screen-reader-text" for="typeselector"><?php _e( 'Search plugins by:' ); ?></label> 266 260 <select name="type" id="typeselector"> 267 <option value="term"<?php selected( 'term', $type) ?>><?php _e('Keyword'); ?></option>268 <option value="author"<?php selected( 'author', $type) ?>><?php _e('Author'); ?></option>269 <option value="tag"<?php selected( 'tag', $type) ?>><?php _ex('Tag', 'Plugin Installer'); ?></option>261 <option value="term"<?php selected( 'term', $type ); ?>><?php _e( 'Keyword' ); ?></option> 262 <option value="author"<?php selected( 'author', $type ); ?>><?php _e( 'Author' ); ?></option> 263 <option value="tag"<?php selected( 'tag', $type ); ?>><?php _ex( 'Tag', 'Plugin Installer' ); ?></option> 270 264 </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; ?>/> 265 <label><span class="screen-reader-text"><?php _e( 'Search Plugins' ); ?></span> 266 <input type="search" name="s" value="<?php echo esc_attr( $term ) ?>" class="wp-filter-search" placeholder="<?php esc_attr_e( 'Search Plugins' ); ?>" /> 274 267 </label> 275 <?php submit_button( __( 'Search Plugins' ), $button_type, false, false, array( 'id' => 'search-submit' ) ); ?>268 <?php submit_button( __( 'Search Plugins' ), 'button hide-if-js', false, false, array( 'id' => 'search-submit' ) ); ?> 276 269 </form><?php 277 270 } -
trunk/src/wp-admin/js/updates.js
r38091 r38119 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 /* … … 2022 2023 } ); 2023 2024 2025 if ( $pluginInstallSearch.length ) { 2026 $pluginInstallSearch.attr( 'aria-describedby', 'live-search-desc' ); 2027 } 2028 2024 2029 /** 2025 2030 * Handles changes to the plugin search box on the new-plugin page, … … 2028 2033 * @since 4.6.0 2029 2034 */ 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' } ); 2039 2040 if ( wp.updates.searchTerm === data.s ) { 2035 $pluginInstallSearch.on( 'keyup input', _.debounce( function( event, eventtype ) { 2036 var $searchTab = $( '.plugin-install-search' ), data, searchLocation; 2037 2038 data = { 2039 _ajax_nonce: wp.updates.ajaxNonce, 2040 s: event.target.value, 2041 tab: 'search', 2042 type: $( '#typeselector' ).val(), 2043 pagenow: pagenow 2044 }; 2045 searchLocation = location.href.split( '?' )[ 0 ] + '?' + $.param( _.omit( data, [ '_ajax_nonce', 'pagenow' ] ) ); 2046 2047 // Clear on escape. 2048 if ( 'keyup' === event.type && 27 === event.which ) { 2049 event.target.value = ''; 2050 } 2051 2052 if ( wp.updates.searchTerm === data.s && 'typechange' !== eventtype ) { 2041 2053 return; 2042 2054 } else { 2055 $pluginFilter.empty(); 2043 2056 wp.updates.searchTerm = data.s; 2044 2057 } 2045 2058 2046 if ( history.pushState ) { 2047 history.pushState( null, '', location.href.split( '?' )[ 0 ] + '?' + $.param( _.omit( data, [ '_ajax_nonce', 'pagenow' ] ) ) ); 2059 if ( window.history && window.history.pushState ) { 2060 window.history.pushState( null, '', searchLocation ); 2061 } 2062 2063 if ( ! $searchTab.length ) { 2064 $searchTab = $( '<li class="plugin-install-search" />' ) 2065 .append( $( '<a />', { 2066 'class': 'current', 2067 'href': searchLocation, 2068 'text': wp.updates.l10n.searchResultsLabel 2069 } ) ); 2070 2071 $( '.wp-filter .filter-links .current' ) 2072 .removeClass( 'current' ) 2073 .parents( '.filter-links' ) 2074 .prepend( $searchTab ); 2075 2076 $pluginFilter.prev( 'p' ).remove(); 2077 $( '.plugins-popular-tags-wrapper' ).remove(); 2048 2078 } 2049 2079 … … 2055 2085 wp.updates.searchRequest = wp.ajax.post( 'search-install-plugins', data ).done( function( response ) { 2056 2086 $( 'body' ).removeClass( 'loading-content' ); 2057 $ form.append( response.items );2087 $pluginFilter.append( response.items ); 2058 2088 delete wp.updates.searchRequest; 2089 2090 if ( 0 === response.count ) { 2091 wp.a11y.speak( wp.updates.l10n.noPluginsFound ); 2092 } else { 2093 wp.a11y.speak( wp.updates.l10n.pluginsFound.replace( '%d', response.count ) ); 2094 } 2059 2095 } ); 2060 2096 }, 500 ) ); 2061 2097 2062 if ( $pluginSearch.length > 0) {2098 if ( $pluginSearch.length ) { 2063 2099 $pluginSearch.attr( 'aria-describedby', 'live-search-desc' ); 2064 2100 } … … 2088 2124 } 2089 2125 2090 if ( history.pushState ) {2091 history.pushState( null, '', location.href.split( '?' )[ 0 ] + '?s=' + data.s );2126 if ( window.history && window.history.pushState ) { 2127 window.history.pushState( null, '', location.href.split( '?' )[ 0 ] + '?s=' + data.s ); 2092 2128 } 2093 2129 … … 2133 2169 event.preventDefault(); 2134 2170 2135 $( 'input.wp-filter-search' ).trigger( ' search' );2171 $( 'input.wp-filter-search' ).trigger( 'input' ); 2136 2172 } ); 2137 2173 … … 2142 2178 */ 2143 2179 $( '#typeselector' ).on( 'change', function() { 2144 $( 'input[name="s"]' ).trigger( 'search' ); 2180 var $search = $( 'input[name="s"]' ); 2181 2182 if ( $search.val().length ) { 2183 $search.trigger( 'input', 'typechange' ); 2184 } 2145 2185 } ); 2146 2186 -
trunk/src/wp-admin/plugin-install.php
r37914 r38119 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( -
trunk/src/wp-includes/script-loader.php
r38090 r38119 610 610 /* translators: %s: Search string */ 611 611 'searchResults' => __( 'Search results for “%s”' ), 612 'searchResultsLabel' => __( 'Search Results' ), 612 613 'noPlugins' => __( 'You do not appear to have any plugins available at this time.' ), 613 614 'noItemsSelected' => __( 'Please select at least one item to perform this action on.' ), -
trunk/tests/qunit/fixtures/updates.js
r38075 r38119 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.',
Note: See TracChangeset
for help on using the changeset viewer.