diff --git src/wp-admin/js/edit-comments.js src/wp-admin/js/edit-comments.js
index b9a9f2cf85..35938d5961 100644
|
|
|
setCommentsList = function() { |
| 288 | 288 | $('.avatar', el).first().clone().prependTo('#undo-' + id + ' .' + action + '-undo-inside'); |
| 289 | 289 | |
| 290 | 290 | a.click(function( e ){ |
| | 291 | |
| | 292 | // Abort undo if there is an unfinished AJAX request involving the same comment. |
| | 293 | if ( settings.xhrs && 'undefined' !== typeof settings.xhrs['comment-' + id] && 4 !== settings.xhrs['comment-' + id].readyState ) { |
| | 294 | return false; |
| | 295 | } |
| 291 | 296 | e.preventDefault(); |
| 292 | 297 | e.stopPropagation(); // ticket #35904 |
| 293 | 298 | list.wpList.del(this); |
diff --git src/wp-includes/js/wp-lists.js src/wp-includes/js/wp-lists.js
index c73471dbcb..33282196ed 100644
|
|
|
wpList = { |
| 184 | 184 | * 'timeout', 'abort', or 'parsererror'. |
| 185 | 185 | * @param {object} settings.parsed Parsed response object. |
| 186 | 186 | */ |
| 187 | | dimAfter: null |
| | 187 | dimAfter: null, |
| | 188 | |
| | 189 | /** |
| | 190 | * Track XHR connections. |
| | 191 | * @type {Object} |
| | 192 | */ |
| | 193 | xhrs: {} |
| 188 | 194 | }, |
| 189 | 195 | |
| 190 | 196 | /** |
| … |
… |
wpList = { |
| 404 | 410 | data = wpList.parseData( $element, 'delete' ), |
| 405 | 411 | $eventTarget, parsedResponse, returnedResponse; |
| 406 | 412 | |
| | 413 | // Clear all finished AJAX requests from xhrs object. |
| | 414 | if ( 'undefined' !== typeof wpList.xhrs ) { |
| | 415 | for ( var key in wpList.xhrs ) { |
| | 416 | if ( 4 === wpList.xhrs[ key ].readyState ) { |
| | 417 | delete wpList.xhrs[ key ]; |
| | 418 | } |
| | 419 | } |
| | 420 | } |
| | 421 | |
| | 422 | |
| 407 | 423 | settings = settings || {}; |
| 408 | 424 | settings = wpList.pre.call( list, $element, settings, 'delete' ); |
| 409 | 425 | |
| 410 | 426 | settings.element = data[2] || settings.element || null; |
| 411 | 427 | settings.delColor = data[3] ? '#' + data[3] : settings.delColor; |
| 412 | 428 | |
| | 429 | // Return if there is already an AJAX request in progress involving the same element. |
| | 430 | if ( wpList.xhrs && 'undefined' !== typeof wpList.xhrs[ s.element ] && 4 !== wpList.xhrs[ s.element ].readyState ) { |
| | 431 | return false; |
| | 432 | } |
| | 433 | |
| 413 | 434 | if ( ! settings || ! settings.element ) { |
| 414 | 435 | return false; |
| 415 | 436 | } |
| … |
… |
wpList = { |
| 473 | 494 | } |
| 474 | 495 | }; |
| 475 | 496 | |
| 476 | | $.ajax( settings ); |
| | 497 | wpList.xhrs = wpList.xhrs || {}; |
| | 498 | wpList.xhrs[ s.element ] = $.ajax( settings ); |
| 477 | 499 | |
| 478 | 500 | return false; |
| 479 | 501 | }, |
| … |
… |
wpList = { |
| 504 | 526 | settings.dimAddColor = data[4] ? '#' + data[4] : settings.dimAddColor; |
| 505 | 527 | settings.dimDelColor = data[5] ? '#' + data[5] : settings.dimDelColor; |
| 506 | 528 | |
| | 529 | // Return if there is already an AJAX request in progress involving the same element. |
| | 530 | if ( wpList.xhrs && 'undefined' !== typeof wpList.xhrs[ s.element ] && 4 !== wpList.xhrs[ s.element ].readyState ) { |
| | 531 | return false; |
| | 532 | } |
| | 533 | |
| 507 | 534 | if ( ! settings || ! settings.element || ! settings.dimClass ) { |
| 508 | 535 | return true; |
| 509 | 536 | } |
| … |
… |
wpList = { |
| 587 | 614 | }; |
| 588 | 615 | |
| 589 | 616 | settings.complete = function( jqXHR, status ) { |
| | 617 | |
| | 618 | // Clear all finished AJAX requests from xhrs object. |
| | 619 | if ( 'undefined' !== typeof wpList.xhrs ) { |
| | 620 | for ( var key in wpList.xhrs ) { |
| | 621 | if ( 4 === wpList.xhrs[ key ].readyState ) { |
| | 622 | delete wpList.xhrs[ key ]; |
| | 623 | } |
| | 624 | } |
| | 625 | } |
| | 626 | |
| 590 | 627 | if ( $.isFunction( settings.dimAfter ) ) { |
| 591 | 628 | $eventTarget.queue( function() { |
| 592 | 629 | settings.dimAfter( returnedResponse, $.extend( { |
| … |
… |
wpList = { |
| 598 | 635 | } |
| 599 | 636 | }; |
| 600 | 637 | |
| 601 | | $.ajax( settings ); |
| | 638 | wpList.xhrs = wpList.xhrs || {}; |
| | 639 | wpList.xhrs[ s.element ] = $.ajax( settings ); |
| 602 | 640 | |
| 603 | 641 | return false; |
| 604 | 642 | }, |
| … |
… |
wpList = { |
| 836 | 874 | $.fn.wpList = function( settings ) { |
| 837 | 875 | this.each( function( index, list ) { |
| 838 | 876 | list.wpList = { |
| 839 | | settings: $.extend( {}, wpList.settings, { what: wpList.parseData( list, 'list' )[1] || '' }, settings ) |
| | 877 | settings: $.extend( {}, wpList.settings, { what: wpList.parseData( list, 'list' )[1] || '' }, { xhrs: wpList.xhrs }, settings ) |
| 840 | 878 | }; |
| 841 | 879 | |
| 842 | 880 | $.each( functions, function( func, callback ) { |