From 89aef850c284e7d57289dd47579e4a677d19aaa0 Mon Sep 17 00:00:00 2001 From: Weston Ruter Date: Tue, 10 Oct 2017 20:38:22 +0000 Subject: [PATCH] Widgets: Clear dirty flag on widgets admin screen when widget is deleted to prevent irrelevant confirmation prompt when leaving. Props hazimayesh, felipeelia. Amends [41352], [41813]. See #23120, #42127. Fixes #41894. git-svn-id: https://develop.svn.wordpress.org/trunk@41814 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/js/widgets.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/wp-admin/js/widgets.js b/src/wp-admin/js/widgets.js index 3da6e948c7..1cb74a3101 100644 --- a/src/wp-admin/js/widgets.js +++ b/src/wp-admin/js/widgets.js @@ -550,12 +550,14 @@ wpWidgets = { if ( animate ) { order = 0; - widget.slideUp('fast', function(){ - $(this).remove(); + widget.slideUp( 'fast', function() { + $( this ).remove(); wpWidgets.saveOrder(); + delete self.dirtyWidgets[ id ]; }); } else { widget.remove(); + delete self.dirtyWidgets[ id ]; if ( sidebarId === 'wp_inactive_widgets' ) { $( '#inactive-widgets-control-remove' ).prop( 'disabled' , ! $( '#wp_inactive_widgets .widget' ).length ); @@ -590,7 +592,7 @@ wpWidgets = { }, removeInactiveWidgets : function() { - var $element = $( '.remove-inactive-widgets' ), a, data; + var $element = $( '.remove-inactive-widgets' ), self = this, a, data; $( '.spinner', $element ).addClass( 'is-active' ); @@ -602,8 +604,12 @@ wpWidgets = { data = $.param( a ); $.post( ajaxurl, data, function() { - $( '#wp_inactive_widgets .widget' ).remove(); - $( '#inactive-widgets-control-remove' ).prop( 'disabled' , true ); + $( '#wp_inactive_widgets .widget' ).each(function() { + var $widget = $( this ); + delete self.dirtyWidgets[ $widget.find( 'input.widget-id' ).val() ]; + $widget.remove(); + }); + $( '#inactive-widgets-control-remove' ).prop( 'disabled', true ); $( '.spinner', $element ).removeClass( 'is-active' ); } ); },