WordPress.org

Make WordPress Core

Ticket #36613: 36613.8.diff

File 36613.8.diff, 2.7 KB (added by adamsilverstein, 2 years ago)
  • src/wp-admin/js/theme.js

    diff --git src/wp-admin/js/theme.js src/wp-admin/js/theme.js
    index 39ed26ad94..b00a8cc8bc 100644
    themes.view.Theme = wp.Backbone.View.extend({ 
    491491                // Set focus to current theme.
    492492                themes.focusedTheme = this.$el;
    493493
    494                 // Construct a new Preview view.
    495                 themes.currentPreview = preview = new themes.view.Preview({
     494                themes.preview = preview = new themes.view.Preview({
    496495                        model: this.model
    497496                });
    498497
    themes.view.Theme = wp.Backbone.View.extend({ 
    573572                        self.current = self.model;
    574573                });
    575574
    576                 // Listen for closepreview events, closing the preview.
    577                 this.listenTo( preview, 'closepreview', function() {
    578                         preview.close();
    579                 });
    580575        },
    581576
    582577        // Handles .disabled classes for previous/next buttons in theme installer preview
    themes.view.Preview = themes.view.Details.extend({ 
    916911                        }
    917912                }).removeClass( 'iframe-ready' );
    918913
    919                 themes.router.navigate( themes.router.baseUrl( '' ) );
     914                // Restore the previous browse tab if available.
     915                if ( themes.router.selectedTab ) {
     916                        themes.router.navigate( themes.router.baseUrl( '?browse=' + themes.router.selectedTab ) );
     917                        themes.router.selectedTab = false;
     918                } else {
     919                        themes.router.navigate( themes.router.baseUrl( '' ) );
     920                }
    920921                this.trigger( 'preview:close' );
    921922                this.undelegateEvents();
    922923                this.unbind();
    themes.view.Installer = themes.view.Appearance.extend({ 
    16511652        sort: function( sort ) {
    16521653                this.clearSearch();
    16531654
     1655                // Track sorting so we can restore the correct tab when closing preview.
     1656                themes.router.selectedTab = sort;
     1657
    16541658                $( '.filter-links li > a, .theme-filter' ).removeClass( this.activeClass );
    16551659                $( '[data-sort="' + sort + '"]' ).addClass( this.activeClass );
    16561660
    themes.RunInstaller = { 
    19141918                // Queries the API for the passed theme slug
    19151919                themes.router.on( 'route:preview', function( slug ) {
    19161920
     1921                        // Construct a new Preview view.
     1922                        if ( themes.preview ) {
     1923                                themes.preview.undelegateEvents();
     1924                                themes.preview.unbind();
     1925                        }
     1926
    19171927                        // If the theme preview is active, set the current theme.
    19181928                        if ( self.view.view.theme && self.view.view.theme.preview ) {
    19191929                                self.view.view.theme.model = self.view.collection.findWhere( { 'slug': slug } );
    themes.RunInstaller = { 
    19391949                themes.router.on( 'route:sort', function( sort ) {
    19401950                        if ( ! sort ) {
    19411951                                sort = 'featured';
     1952                                themes.router.navigate( themes.router.baseUrl( '?browse=featured' ), { replace: true } );
    19421953                        }
    19431954                        self.view.sort( sort );
    19441955
    19451956                        // Close the preview if open.
    1946                         if ( themes.currentPreview ) {
    1947                                 themes.currentPreview.trigger( 'closepreview' );
     1957                        if ( themes.preview ) {
     1958                                themes.preview.close();
    19481959                        }
    19491960                });
    19501961