WordPress.org

Make WordPress Core

Ticket #31742: 31742.4.diff

File 31742.4.diff, 2.3 KB (added by sirbrillig, 5 years ago)

Updated version of the previous patch, including numerous fixes and cleaned-up code.

  • wp-includes/js/customize-models.js

     
    4242                },
    4343
    4444                destroy: function() {
    45                         var data = this.get('header'),
    46                                 curr = api.HeaderTool.currentHeader.get('header').attachment_id;
     45                        var data = this.get( 'header' ),
     46                                currentHeader = api.HeaderTool.currentHeader.get( 'header' );
    4747
    4848                        // If the image we're removing is also the current header, unset
    4949                        // the latter
    50                         if (curr && data.attachment_id === curr) {
    51                                 api.HeaderTool.currentHeader.trigger('hide');
     50                        if ( currentHeader && ( data.attachment_id === currentHeader.attachment_id || data.url === currentHeader.url ) ) {
     51                                api.HeaderTool.currentHeader.trigger( 'hide' );
    5252                        }
    5353
    5454                        wp.ajax.post( 'custom-header-remove', {
  • wp-includes/js/customize-views.js

     
     1/* globals _wpCustomizeHeader */
    12(function( $, wp, _ ) {
    23
    34        if ( ! wp || ! wp.customize ) { return; }
     
    1920                template: wp.template('header-current'),
    2021
    2122                initialize: function() {
     23                        this.setInitialModel();
    2224                        this.listenTo(this.model, 'change', this.render);
    2325                        this.render();
    2426                },
    2527
     28                setInitialModel: function() {
     29                        if ( ! api.get().header_image || this.model.get( 'choice' ) ) {
     30                                return;
     31                        }
     32                        if ( _.contains( [ 'remove-header', 'random-default-image', 'random-uploaded-image' ], api.get().header_image ) ) {
     33                                return;
     34                        }
     35
     36                        var fallbackHeaderObject = _wpCustomizeHeader.uploads[ api.get().header_image.split( '/' ).pop() ];
     37                        // fall back to raw current header image if no model was set
     38                        if ( ! fallbackHeaderObject ) {
     39                                fallbackHeaderObject = {
     40                                        url: api.get().header_image,
     41                                        thumbnail_url: api.get().header_image
     42                                };
     43                        }
     44
     45                        var currentHeaderModel = new api.HeaderTool.ImageModel({
     46                                header: fallbackHeaderObject,
     47                                choice: fallbackHeaderObject.url.split( '/' ).pop()
     48                        });
     49                        this.model.set( currentHeaderModel.toJSON(), { silent: true } );
     50                },
     51
    2652                render: function() {
    2753                        this.$el.html(this.template(this.model.toJSON()));
    2854                        this.setPlaceholder();