Make WordPress Core

Changeset 32460


Ignore:
Timestamp:
05/08/2015 07:15:34 PM (11 years ago)
Author:
wonderboymusic
Message:

When fetching in media/views/embed/link.js, call abort() on any existing XHRs.
Use $.ajax instead of wp.ajax.send() to allow this.
Pass this as context to the options to remove the need to bind callbacks.

Fixes #32035.

Location:
trunk/src/wp-includes/js
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/js/media-views.js

    r32459 r32460  
    45624562                }
    45634563
     4564                if ( this.dfd && 'pending' === this.dfd.state() ) {
     4565                        this.dfd.abort();
     4566                }
     4567
    45644568                embed = new wp.shortcode({
    45654569                        tag: 'embed',
    … …  
    45684572                });
    45694573
    4570                 wp.ajax.send( 'parse-embed', {
    4571                         data : {
     4574                this.dfd = $.ajax({
     4575                        type:    'POST',
     4576                        url:     wp.ajax.settings.url,
     4577                        context: this,
     4578                        data:    {
     4579                                action: 'parse-embed',
    45724580                                post_ID: wp.media.view.settings.post.id,
    45734581                                shortcode: embed.string()
    45744582                        }
    4575                 } )
    4576                         .done( _.bind( this.renderoEmbed, this ) )
    4577                         .fail( _.bind( this.renderFail, this ) );
    4578         },
    4579 
    4580         renderFail: function () {
     4583                })
     4584                        .done( this.renderoEmbed )
     4585                        .fail( this.renderFail );
     4586        },
     4587
     4588        renderFail: function ( response, status ) {
     4589                if ( 'abort' === status ) {
     4590                        return;
     4591                }
    45814592                this.$( '.link-text' ).show();
    45824593        },
    45834594
    45844595        renderoEmbed: function( response ) {
    4585                 var html = ( response && response.body ) || '';
     4596                var html = ( response && response.data && response.data.body ) || '';
    45864597
    45874598                if ( html ) {
  • trunk/src/wp-includes/js/media/views/embed/link.js

    r32459 r32460  
    4646                }
    4747
     48                if ( this.dfd && 'pending' === this.dfd.state() ) {
     49                        this.dfd.abort();
     50                }
     51
    4852                embed = new wp.shortcode({
    4953                        tag: 'embed',
    … …  
    5256                });
    5357
    54                 wp.ajax.send( 'parse-embed', {
    55                         data : {
     58                this.dfd = $.ajax({
     59                        type:    'POST',
     60                        url:     wp.ajax.settings.url,
     61                        context: this,
     62                        data:    {
     63                                action: 'parse-embed',
    5664                                post_ID: wp.media.view.settings.post.id,
    5765                                shortcode: embed.string()
    5866                        }
    59                 } )
    60                         .done( _.bind( this.renderoEmbed, this ) )
    61                         .fail( _.bind( this.renderFail, this ) );
     67                })
     68                        .done( this.renderoEmbed )
     69                        .fail( this.renderFail );
    6270        },
    6371
    64         renderFail: function () {
     72        renderFail: function ( response, status ) {
     73                if ( 'abort' === status ) {
     74                        return;
     75                }
    6576                this.$( '.link-text' ).show();
    6677        },
    6778
    6879        renderoEmbed: function( response ) {
    69                 var html = ( response && response.body ) || '';
     80                var html = ( response && response.data && response.data.body ) || '';
    7081
    7182                if ( html ) {
Note: See TracChangeset for help on using the changeset viewer.