diff --git a/src/js/_enqueues/wp/theme.js b/src/js/_enqueues/wp/theme.js index 7f7f0ce1fb..d5618c4028 100644 --- a/src/js/_enqueues/wp/theme.js +++ b/src/js/_enqueues/wp/theme.js @@ -666,7 +666,8 @@ themes.view.Details = wp.Backbone.View.extend({ 'click .delete-theme': 'deleteTheme', 'click .left': 'previousTheme', 'click .right': 'nextTheme', - 'click #update-theme': 'updateTheme' + 'click #update-theme': 'updateTheme', + 'click .toggle-auto-update': 'autoupdateState' }, // The HTML template for the theme overlay. @@ -787,6 +788,23 @@ themes.view.Details = wp.Backbone.View.extend({ this.trigger( 'theme:collapse' ); }, + // Set state of the auto-update settings link after it has been changed and saved. + autoupdateState: function() { + var callback, + _this = this; + + // Support concurrent clicks in different Theme Details overlays. + callback = function( event, data ) { + if ( _this.model.get( 'id' ) === data.asset ) { + _this.model.set( { autoupdate: 'enable' === data.state } ); + $( document ).off( 'wp-auto-update-setting-changed', callback ); + } + } + + // Triggered in updates.js + $( document ).on( 'wp-auto-update-setting-changed', callback ); + }, + updateTheme: function( event ) { var _this = this; event.preventDefault(); diff --git a/src/js/_enqueues/wp/updates.js b/src/js/_enqueues/wp/updates.js index 8b52bfcdd6..222809500a 100644 --- a/src/js/_enqueues/wp/updates.js +++ b/src/js/_enqueues/wp/updates.js @@ -2599,6 +2599,8 @@ $parent.find( '.auto-update-time' ).addClass( 'hidden' ); wp.a11y.speak( wp.updates.l10n.autoUpdatesDisabled, 'polite' ); } + + $document.trigger( 'wp-auto-update-setting-changed', { state: action, type: type, asset: asset } ); } ) .fail( function() { $parent.find( '.notice.error' ).removeClass( 'hidden' ).find( 'p' ).text( wp.updates.l10n.autoUpdatesError );