Changeset 33345
- Timestamp:
- 07/21/2015 04:13:36 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/js/customize-preview-nav-menus.js
r33337 r33345 3 3 wp.customize.menusPreview = ( function( $, api ) { 4 4 'use strict'; 5 var self; 6 7 self = { 8 renderQueryVar: null, 9 renderNonceValue: null, 10 renderNoncePostKey: null, 11 previewCustomizeNonce: null, 12 requestUri: '/', 13 theme: { 14 active: false, 15 stylesheet: '' 5 var currentRefreshDebounced = {}, 6 refreshDebounceDelay = 200, 7 settings = {}, 8 defaultSettings = { 9 renderQueryVar: null, 10 renderNonceValue: null, 11 renderNoncePostKey: null, 12 previewCustomizeNonce: null, 13 requestUri: '/', 14 theme: { 15 active: false, 16 stylesheet: '' 17 }, 18 navMenuInstanceArgs: {} 16 19 }, 17 navMenuInstanceArgs: {}, 18 refreshDebounceDelay: 200 19 }; 20 self = {}; 20 21 21 22 api.bind( 'preview-ready', function() { … … 31 32 var self = this, initializedSettings = {}; 32 33 34 settings = _.extend( {}, defaultSettings ); 33 35 if ( 'undefined' !== typeof _wpCustomizePreviewNavMenusExports ) { 34 $.extend( self, _wpCustomizePreviewNavMenusExports );36 _.extend( settings, _wpCustomizePreviewNavMenusExports ); 35 37 } 36 38 … … 135 137 */ 136 138 self.refreshMenu = function( menuId ) { 137 var self = this,assignedLocations = [];139 var assignedLocations = []; 138 140 139 141 api.each(function( setting, id ) { … … 144 146 }); 145 147 146 _.each( se lf.navMenuInstanceArgs, function( navMenuArgs, instanceNumber ) {148 _.each( settings.navMenuInstanceArgs, function( navMenuArgs, instanceNumber ) { 147 149 if ( menuId === navMenuArgs.menu || -1 !== _.indexOf( assignedLocations, navMenuArgs.theme_location ) ) { 148 self.refreshMenuInstanceDebounced( instanceNumber );149 } 150 } );150 this.refreshMenuInstanceDebounced( instanceNumber ); 151 } 152 }, this ); 151 153 }; 152 154 … … 158 160 self.refreshMenuLocation = function( location ) { 159 161 var foundInstance = false; 160 _.each( se lf.navMenuInstanceArgs, function( navMenuArgs, instanceNumber ) {162 _.each( settings.navMenuInstanceArgs, function( navMenuArgs, instanceNumber ) { 161 163 if ( location === navMenuArgs.theme_location ) { 162 self.refreshMenuInstanceDebounced( instanceNumber );164 this.refreshMenuInstanceDebounced( instanceNumber ); 163 165 foundInstance = true; 164 166 } 165 } );167 }, this ); 166 168 if ( ! foundInstance ) { 167 169 api.preview.send( 'refresh' ); … … 177 179 var self = this, data, menuId, customized, container, request, wpNavArgs, instance, containerInstanceClassName; 178 180 179 if ( ! se lf.navMenuInstanceArgs[ instanceNumber ] ) {181 if ( ! settings.navMenuInstanceArgs[ instanceNumber ] ) { 180 182 throw new Error( 'unknown_instance_number' ); 181 183 } 182 instance = se lf.navMenuInstanceArgs[ instanceNumber ];184 instance = settings.navMenuInstanceArgs[ instanceNumber ]; 183 185 184 186 containerInstanceClassName = 'partial-refreshable-nav-menu-' + String( instanceNumber ); … … 198 200 199 201 data = { 200 nonce: se lf.previewCustomizeNonce, // for Customize Preview202 nonce: settings.previewCustomizeNonce, // for Customize Preview 201 203 wp_customize: 'on' 202 204 }; 203 if ( ! se lf.theme.active ) {204 data.theme = se lf.theme.stylesheet;205 } 206 data[ se lf.renderQueryVar ] = '1';205 if ( ! settings.theme.active ) { 206 data.theme = settings.theme.stylesheet; 207 } 208 data[ settings.renderQueryVar ] = '1'; 207 209 208 210 // Gather settings to send in partial refresh request. … … 226 228 } ); 227 229 data.customized = JSON.stringify( customized ); 228 data[ se lf.renderNoncePostKey ] = self.renderNonceValue;230 data[ settings.renderNoncePostKey ] = settings.renderNonceValue; 229 231 230 232 wpNavArgs = $.extend( {}, instance ); … … 237 239 request = wp.ajax.send( null, { 238 240 data: data, 239 url: se lf.requestUri241 url: settings.requestUri 240 242 } ); 241 243 request.done( function( data ) { … … 262 264 }; 263 265 264 self.currentRefreshMenuInstanceDebouncedCalls = {};265 266 266 self.refreshMenuInstanceDebounced = function( instanceNumber ) { 267 if ( self.currentRefreshMenuInstanceDebouncedCalls[ instanceNumber ] ) {268 clearTimeout( self.currentRefreshMenuInstanceDebouncedCalls[ instanceNumber ] );269 } 270 self.currentRefreshMenuInstanceDebouncedCalls[ instanceNumber ] = setTimeout(267 if ( currentRefreshDebounced[ instanceNumber ] ) { 268 clearTimeout( currentRefreshDebounced[ instanceNumber ] ); 269 } 270 currentRefreshDebounced[ instanceNumber ] = setTimeout( 271 271 function() { 272 272 self.refreshMenuInstance( instanceNumber ); 273 273 }, 274 self.refreshDebounceDelay274 refreshDebounceDelay 275 275 ); 276 276 };
Note: See TracChangeset
for help on using the changeset viewer.