WordPress.org

Make WordPress Core

Ticket #27055: 27055.31.diff

File 27055.31.diff, 4.4 KB (added by matveb, 5 years ago)

Fix count in some cases

  • 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                }
     
    305319
    306320        // Send Ajax POST request to api.wordpress.org/themes
    307321        apiCall: function( request, paginated ) {
    308                 // Store current query request args
    309                 // for later use with the event `theme:end`
    310                 this.currentQuery.request = request;
    311322
    312323                // Ajax request to .org API
    313324                return $.ajax({
     
    782793                }
    783794
    784795                // Display a live theme count for the collection
    785                 this.count.text( this.collection.length );
     796                this.count.text( this.collection.count ? this.collection.count : this.collection.length );
    786797        },
    787798
    788799        // Iterates through each instance of the collection
     
    11431154                        request.tag = [ value.slice( 4 ) ];
    11441155                }
    11451156
     1157                $( '.theme-section.current' ).removeClass( 'current' );
     1158                $( 'body' ).removeClass( 'more-filters-opened filters-applied' );
     1159
    11461160                // Get the themes by sending Ajax POST request to api.wordpress.org/themes
    11471161                // or searching the local cache
    11481162                this.collection.query( request );
     
    11611175                'click .apply-filters': 'addFilter',
    11621176                'click [type="checkbox"]': 'filtersChecked',
    11631177                'click .clear-filters': 'clearFilters',
    1164                 'click .feature-name': 'filterSection'
     1178                'click .feature-name': 'filterSection',
     1179                'click .filtering-by a': 'backToFilters'
    11651180        },
    11661181
    11671182        // Handles all the rendering of the public theme directory
     
    12971312                }
    12981313
    12991314                $( 'body' ).addClass( 'filters-applied' );
     1315                $( '.theme-section.current' ).removeClass( 'current' );
    13001316                filteringBy.empty();
    13011317
    13021318                _.each( tags, function( tag ) {
     
    13551371                event.preventDefault();
    13561372
    13571373                if ( $( 'body' ).hasClass( 'filters-applied' ) ) {
    1358                         return $( 'body' ).removeClass( 'filters-applied' );
     1374                        return this.backToFilters();
    13591375                }
    13601376
    13611377                // If the filters section is opened and filters are checked
     
    13841400                        $( item ).prop( 'checked', false );
    13851401                        return self.filtersChecked();
    13861402                });
     1403        },
     1404
     1405        backToFilters: function() {
     1406                $( 'body' ).removeClass( 'filters-applied' );
    13871407        }
    13881408});
    13891409
  • 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>