WordPress.org

Make WordPress Core

Ticket #27055: 27055.30.2.diff

File 27055.30.2.diff, 4.5 KB (added by matveb, 5 years ago)
  • wp-admin/css/themes.css

     
    12881288        margin: 0 5px;
    12891289        padding: 4px 8px;
    12901290}
     1291.more-filters-container .filtering-by a {
     1292        margin-left: 10px;
     1293}
    12911294body.filters-applied .more-filters-container .filters-group,
    1292 body.filters-applied .more-filters-container a,
     1295body.filters-applied .more-filters-container a.button,
    12931296body.filters-applied .more-filters-container br {
    12941297        display: none !important;
    12951298}
  • wp-admin/js/theme.js

     
    215215                return collection;
    216216        },
    217217
     218        count: false,
     219
    218220        // Handles requests for more themes
    219221        // and caches results
    220222        //
     
    229231                        self = this,
    230232                        query, isPaginated, count;
    231233
     234                // Store current query request args
     235                // for later use with the event `theme:end`
     236                this.currentQuery.request = request;
     237
    232238                // Search the query cache for matches.
    233239                query = _.find( queries, function( query ) {
    234240                        return _.isEqual( query.request, request );
     
    244250                }
    245251
    246252                // Otherwise, send a new API call and add it to the cache.
    247                 if ( ! query ) {
     253                if ( ! query && ! isPaginated ) {
    248254                        query = this.apiCall( request ).done( function( data ) {
    249255                                // Update the collection with the queried data.
    250256                                self.reset( data.themes );
     
    260266                                }
    261267
    262268                                // Store the results and the query request
    263                                 queries.push( { themes: data.themes, request: request } );
     269                                queries.push( { themes: data.themes, request: request, total: count } );
    264270                        }).fail( function() {
    265271                                self.trigger( 'query:fail' );
    266272                        });
     
    289295
    290296                        // Only trigger an update event since we already have the themes
    291297                        // on our cached object
     298                        if ( _.isNumber( query.total ) ) {
     299                                this.count = query.total;
     300                        }
     301
     302                        if ( ! query.total ) {
     303                                this.count = this.length;
     304                        }
     305
    292306                        this.reset( query.themes );
    293307                        this.trigger( 'update' );
    294308                }
     
    300314        // Keep track of current query so we can handle pagination
    301315        currentQuery: {
    302316                page: 1,
    303                 request: {}
     317                request: {},
     318                total: false
    304319        },
    305320
    306321        // Send Ajax POST request to api.wordpress.org/themes
    307322        apiCall: function( request, paginated ) {
    308                 // Store current query request args
    309                 // for later use with the event `theme:end`
    310                 this.currentQuery.request = request;
    311323
    312324                // Ajax request to .org API
    313325                return $.ajax({
     
    782794                }
    783795
    784796                // Display a live theme count for the collection
    785                 this.count.text( this.collection.length );
     797                this.count.text( this.collection.count ? this.collection.count : this.collection.length );
    786798        },
    787799
    788800        // Iterates through each instance of the collection
     
    11431155                        request.tag = [ value.slice( 4 ) ];
    11441156                }
    11451157
     1158                $( '.theme-section.current' ).removeClass( 'current' );
     1159                $( 'body' ).removeClass( 'more-filters-opened filters-applied' );
     1160
    11461161                // Get the themes by sending Ajax POST request to api.wordpress.org/themes
    11471162                // or searching the local cache
    11481163                this.collection.query( request );
     
    11611176                'click .apply-filters': 'addFilter',
    11621177                'click [type="checkbox"]': 'filtersChecked',
    11631178                'click .clear-filters': 'clearFilters',
    1164                 'click .feature-name': 'filterSection'
     1179                'click .feature-name': 'filterSection',
     1180                'click .filtering-by a': 'backToFilters'
    11651181        },
    11661182
    11671183        // Handles all the rendering of the public theme directory
     
    12971313                }
    12981314
    12991315                $( 'body' ).addClass( 'filters-applied' );
     1316                $( '.theme-section.current' ).removeClass( 'current' );
    13001317                filteringBy.empty();
    13011318
    13021319                _.each( tags, function( tag ) {
     
    13551372                event.preventDefault();
    13561373
    13571374                if ( $( 'body' ).hasClass( 'filters-applied' ) ) {
    1358                         return $( 'body' ).removeClass( 'filters-applied' );
     1375                        return this.backToFilters();
    13591376                }
    13601377
    13611378                // If the filters section is opened and filters are checked
     
    13841401                        $( item ).prop( 'checked', false );
    13851402                        return self.filtersChecked();
    13861403                });
     1404        },
     1405
     1406        backToFilters: function() {
     1407                $( 'body' ).removeClass( 'filters-applied' );
    13871408        }
    13881409});
    13891410
  • wp-admin/theme-install.php

     
    145145                        <div class="filtering-by">
    146146                                <span><?php _e( 'Filtering by:' ); ?></span>
    147147                                <div class="tags"></div>
     148                                <a href="#"><?php _e( 'Edit' ); ?></a>
    148149                        </div>
    149150                </div>
    150151        </div>