customizer-page-settings-panel.js (1665B)
1 (function (root, CP_Customizer, $) { 2 CP_Customizer.addModule(function (CP_Customizer) { 3 4 var panel = CP_Customizer.panels.pageContentPanel; 5 6 7 $('body').on('click', '[data-name="page_content_panel"] span.section-icon.setting.page-settings', function () { 8 CP_Customizer.openRightSidebar('cp-current-page-settings'); 9 }); 10 11 function getRegisteredControls() { 12 var controls_ids = $('[data-name="page_content_panel"] .page-settings').attr('data-settings'); 13 var controls = []; 14 controls_ids.split(',').forEach(function (id) { 15 var _c = wp.customize.control(id); 16 if (_c) { 17 controls.push(_c); 18 } 19 }); 20 21 return controls; 22 } 23 24 25 panel.registerArea('general_page_settings', { 26 27 $controlsHolder: null, 28 29 refreshControls: function () { 30 var controls = getRegisteredControls(), 31 self = this; 32 33 _.each(controls, function (c) { 34 self.$controlsHolder.append(c.container); 35 }); 36 }, 37 38 init: function ($container) { 39 40 this.$controlsHolder = $("<ul/>"); 41 $container.append($('<li/>').append(this.$controlsHolder)); 42 var self = this; 43 44 self.refreshControls(); 45 46 wp.customize.bind('pane-contents-reflowed', function () { 47 self.refreshControls(); 48 }) 49 } 50 }); 51 }); 52 })(window, CP_Customizer, jQuery);