WordPress.org

Make WordPress Core

Ticket #23054: 23054.3.diff

File 23054.3.diff, 1.5 KB (added by koopersmith, 5 years ago)
  • wp-includes/js/media-views.js

     
    28462846                initialize: function() {
    28472847                        var selection = this.options.selection;
    28482848
    2849                         this.model.on( 'change:sizes change:uploading change:caption change:title', this.render, this );
     2849                        this.model.on( 'change:sizes change:uploading', this.render, this );
     2850                        this.model.on( 'change:title', this._syncTitle, this );
     2851                        this.model.on( 'change:caption', this._syncCaption, this );
    28502852                        this.model.on( 'change:percent', this.progress, this );
    28512853
    28522854                        // Update the selection.
     
    31643166                }
    31653167        });
    31663168
     3169        // Ensure settings remain in sync between attachment views.
     3170        _.each({
     3171                caption: '_syncCaption',
     3172                title:   '_syncTitle'
     3173        }, function( method, setting ) {
     3174                media.view.Attachment.prototype[ method ] = function( model, value ) {
     3175                        var $setting = this.$('[data-setting="' + setting + '"]');
     3176
     3177                        if ( ! $setting.length )
     3178                                return this;
     3179
     3180                        // If the updated value is in sync with the value in the DOM, there
     3181                        // is no need to re-render. If we're currently editing the value,
     3182                        // it will automatically be in sync, suppressing the re-render for
     3183                        // the view we're editing, while updating any others.
     3184                        if ( value === $setting.find('input, textarea, select, [value]').val() )
     3185                                return this;
     3186
     3187                        return this.render();
     3188                };
     3189        });
     3190
    31673191        /**
    31683192         * wp.media.view.Attachment.Library
    31693193         */