Commit Graph

19 Commits

Author SHA1 Message Date
ryan e69299af51 Theme Customizer: Fix race condition in previewer and use message channels. Props koopersmith. fixes #20811
git-svn-id: http://core.svn.wordpress.org/trunk@20988 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-06-04 15:51:46 +00:00
koopersmith c71b8d0925 Theme Customizer: Prevent messengers from binding to the current window when a parent doesn't exist. see #19910.
git-svn-id: http://core.svn.wordpress.org/trunk@20897 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-25 16:19:18 +00:00
koopersmith c3e7ce5320 Theme Customizer: Check for CORS support when the preview and admin urls are cross-domain. Add a fallback to the customize control frame, and check support there as well. see #20582, #19910.
git-svn-id: http://core.svn.wordpress.org/trunk@20886 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-24 21:13:21 +00:00
koopersmith a2eb607264 Theme Customizer: Make the wp.customize.Events methods chainable. see #19910.
git-svn-id: http://core.svn.wordpress.org/trunk@20801 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-16 05:17:26 +00:00
koopersmith 7ea4eef7f0 Theme Customizer: Add the wp.customize.Events mixin to wp.customize.Values. Provide 'add', 'remove', and 'change' events by default. see #19910.
git-svn-id: http://core.svn.wordpress.org/trunk@20799 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-15 22:43:49 +00:00
koopersmith 3165e6d50a Theme Customizer: Clarify wp.customize.Values API by removing Values.pass and all methods that passed through to the wp.customize.Value objects it contained. see #19910.
git-svn-id: http://core.svn.wordpress.org/trunk@20798 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-15 22:14:46 +00:00
koopersmith f2ecf78e88 Theme Customizer: Make wp.customize.Values.when return a jQuery.Deferred.promise() object, to add additional flexibility. see #19910.
git-svn-id: http://core.svn.wordpress.org/trunk@20797 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-15 22:01:36 +00:00
koopersmith edc5274b20 Theme Customizer: Add an Events mixin to wp.customize, used by default in wp.customize.Messenger. see #19910.
git-svn-id: http://core.svn.wordpress.org/trunk@20795 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-15 21:28:21 +00:00
koopersmith c3ff01b334 Theme Customizer: Maintain scrolled position when preview performs a full refresh. Allow wp.customize.Messenger to send/receive falsy values. see #19910.
git-svn-id: http://core.svn.wordpress.org/trunk@20745 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-09 00:23:05 +00:00
koopersmith 2f2cb0926f Theme Customizer: Migrate to an ajax-based solution for refreshing the preview and saving. see #20507, #19910.
* Use ajax-based saving, add saving indicator.
* Use ajax-based refreshing instead of form targets.
* Instead of using hidden inputs with prefixed names to track the canonical data, use the values stored in wp.customize. Encode the values as JSON before sending to avoid bugs with ids that contain square brackets (PHP mangles POST values with nested brackets).
* Use wp.customize.Previewer solely for the purpose of previewing; move the postMessage connection with the parent frame and other unrelated code snippets into the 'ready' handler.


git-svn-id: http://svn.automattic.com/wordpress/trunk@20645 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-30 15:46:17 +00:00
koopersmith 9b5c6a917c Theme Customizer: Use native postMessage for wp.customize.Messenger. see #19910.
* Removes use of jquery.postmessage.js
* Fixes bug where Opera would attempt to use the hash transport and redirect to the dashboard.
* Fixes bug where multiple postMessage connections could not coexist in a single frame.



git-svn-id: http://svn.automattic.com/wordpress/trunk@20517 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-18 20:25:31 +00:00
koopersmith a5dacf7da5 Theme Customizer: Allow the customize iframe to be accessed directly (with full feature support). see #19910.
* Move the 'Return to Manage Themes' and 'Collapse Sidebar' actions from themes.php to customize-controls.php.
* Create a postMessage connection between themes.php and customize-controls.php.
* Allow the theme customizer to be accessed directly (independent of themes.php and the customize loader).
* Add wp_customize_href() and wp_customize_url().
* Remove wp_customize_loader(). To include the loader, use wp_enqueue_script( 'customize-loader' ).
* The theme customizer now requires postMessage browser support.
* Add .hide-if-customize and .hide-if-no-customize CSS classes.
* Clean up customize-preview.js.

git-svn-id: http://svn.automattic.com/wordpress/trunk@20476 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-16 14:02:28 +00:00
koopersmith 272d6daac2 Theme Customizer: Improve data binding in wp.customize.Value and wp.customize.Values. see #19910.
* Replace the convoluted wp.customize.Value.link method with a simple shortcut for direct binding.
* Add wp.customize.Value.sync for bidirectional linking.
* Add wp.customize.Value.setter for handling compound values (instead of using wp.customize.Value.link).

git-svn-id: http://svn.automattic.com/wordpress/trunk@20344 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-03 22:04:40 +00:00
koopersmith 30d798ec8d Create WP_Customize_Control to separate the process of rendering a control from fetching, previewing, and saving its values. see #19910.
Many-to-many mapping between settings and controls.
* Settings and controls have been separated in both the PHP (WP_Customize_Setting, WP_Customize_Control) and the JS (wp.customize.Setting, wp.customize.Control).
* While most settings are tied to a single control, some require multiple controls. The 'header_textcolor' control is a good example: to hide the header text, header_textcolor is set to 'blank'.

Add 'Display Header Text' control.

A handful of miscellaneous bugfixes along the way.

Notes:
* Controls should be separated out a bit more; juggling type-specific arguments in the switch statement is rather inelegant.
* Page dropdowns are currently inactive and need to be re-linked.

git-svn-id: http://svn.automattic.com/wordpress/trunk@20295 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-28 04:14:09 +00:00
koopersmith 34fb54887d Theme Customizer: In JavaScript, add the ability to execute a callback once a set of values have been initialized. see #19910.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20257 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-22 06:52:44 +00:00
koopersmith e9652cf3fd Theme Customizer: Add a Control object to better encapsulate different UI elements and make it easy to switch between hard refreshes and postMessage. see #19910.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20128 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-06 22:48:07 +00:00
koopersmith 306433c25b Theme Customizer: First pass at using postMessage for background color. Fix instance where preview.targetWindow would become inaccurate. Initialize setting values in customize-preview.js. see #19910.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20123 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-06 02:49:02 +00:00
koopersmith b198c61062 Theme Customizer: Trigger UI updates only when necessary.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20034 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-29 06:18:17 +00:00
koopersmith c832f904ae Introduce new theme customizer to replace theme preview. Rough first pass. props koopersmith, ocean90. see #19910.
Merges in http://plugins.svn.wordpress.org/gandalf/branches/dev/ rev 510148.

git-svn-id: http://svn.automattic.com/wordpress/trunk@19995 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-25 04:12:43 +00:00