mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-08-16 14:50:29 +00:00
Customize: Add selective refresh framework with implementation for widgets and re-implementation for nav menus.
See https://make.wordpress.org/core/2016/02/16/selective-refresh-in-the-customizer/. Props westonruter, valendesigns, DrewAPicture, ocean90. Fixes #27355. git-svn-id: https://develop.svn.wordpress.org/trunk@36586 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -3786,6 +3786,26 @@
|
||||
});
|
||||
});
|
||||
|
||||
// Focus on the control that is associated with the given setting.
|
||||
api.previewer.bind( 'focus-control-for-setting', function( settingId ) {
|
||||
var matchedControl;
|
||||
api.control.each( function( control ) {
|
||||
var settingIds = _.pluck( control.settings, 'id' );
|
||||
if ( -1 !== _.indexOf( settingIds, settingId ) ) {
|
||||
matchedControl = control;
|
||||
}
|
||||
} );
|
||||
|
||||
if ( matchedControl ) {
|
||||
matchedControl.focus();
|
||||
}
|
||||
} );
|
||||
|
||||
// Refresh the preview when it requests.
|
||||
api.previewer.bind( 'refresh', function() {
|
||||
api.previewer.refresh();
|
||||
});
|
||||
|
||||
api.trigger( 'ready' );
|
||||
|
||||
// Make sure left column gets focus
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
api.Menus.data = {
|
||||
itemTypes: [],
|
||||
l10n: {},
|
||||
menuItemTransport: 'postMessage',
|
||||
settingTransport: 'refresh',
|
||||
phpIntMax: 0,
|
||||
defaultSettingValues: {
|
||||
nav_menu: {},
|
||||
@@ -2310,7 +2310,7 @@
|
||||
customizeId = 'nav_menu_item[' + String( placeholderId ) + ']';
|
||||
settingArgs = {
|
||||
type: 'nav_menu_item',
|
||||
transport: 'postMessage',
|
||||
transport: api.Menus.data.settingTransport,
|
||||
previewer: api.previewer
|
||||
};
|
||||
setting = api.create( customizeId, customizeId, {}, settingArgs );
|
||||
@@ -2399,7 +2399,7 @@
|
||||
// Register the menu control setting.
|
||||
api.create( customizeId, customizeId, {}, {
|
||||
type: 'nav_menu',
|
||||
transport: 'postMessage',
|
||||
transport: api.Menus.data.settingTransport,
|
||||
previewer: api.previewer
|
||||
} );
|
||||
api( customizeId ).set( $.extend(
|
||||
@@ -2486,10 +2486,6 @@
|
||||
}
|
||||
} );
|
||||
|
||||
api.previewer.bind( 'refresh', function() {
|
||||
api.previewer.refresh();
|
||||
});
|
||||
|
||||
// Open and focus menu control.
|
||||
api.previewer.bind( 'focus-nav-menu-item-control', api.Menus.focusMenuItemControl );
|
||||
} );
|
||||
@@ -2535,7 +2531,7 @@
|
||||
newCustomizeId = 'nav_menu[' + String( update.term_id ) + ']';
|
||||
newSetting = api.create( newCustomizeId, newCustomizeId, settingValue, {
|
||||
type: 'nav_menu',
|
||||
transport: 'postMessage',
|
||||
transport: api.Menus.data.settingTransport,
|
||||
previewer: api.previewer
|
||||
} );
|
||||
|
||||
@@ -2683,7 +2679,7 @@
|
||||
newCustomizeId = 'nav_menu_item[' + String( update.post_id ) + ']';
|
||||
newSetting = api.create( newCustomizeId, newCustomizeId, settingValue, {
|
||||
type: 'nav_menu_item',
|
||||
transport: 'postMessage',
|
||||
transport: api.Menus.data.settingTransport,
|
||||
previewer: api.previewer
|
||||
} );
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
multi_number: null,
|
||||
name: null,
|
||||
id_base: null,
|
||||
transport: 'refresh',
|
||||
transport: api.Widgets.data.selectiveRefresh ? 'postMessage' : 'refresh',
|
||||
params: [],
|
||||
width: null,
|
||||
height: null,
|
||||
@@ -1982,7 +1982,7 @@
|
||||
isExistingWidget = api.has( settingId );
|
||||
if ( ! isExistingWidget ) {
|
||||
settingArgs = {
|
||||
transport: 'refresh',
|
||||
transport: api.Widgets.data.selectiveRefresh ? 'postMessage' : 'refresh',
|
||||
previewer: this.setting.previewer
|
||||
};
|
||||
setting = api.create( settingId, settingId, '', settingArgs );
|
||||
|
||||
Reference in New Issue
Block a user