Commit Graph

50 Commits

Author SHA1 Message Date
Weston Ruter
f26ccf6fac Customize: Update server-sent setting validation notifications as changes are entered.
Send back setting validities with full refreshes and selective refreshes so that invalid settings can have notifications displayed immediately before attempting save, and so that these notifications can be cleared as soon as the input is corrected.

* Splits out JS logic for listing controls into separate methods  `wp.customize.Setting.prototype.findControls()` and `wp.customize.findControlsForSettings()`.
* Adds a `setting` property to the `data` on notifications added to controls that are synced from their settings.
* Adds `selective-refresh-setting-validities` message sent from preview to pane.
* Changes `WP_Customize_Manager::validate_setting_values()` to return when settings are valid as well as invalid.
* Adds `WP_Customize_Manager::prepare_setting_validity_for_js()`.
* Add setting validities to data exported to JS in Customizer Preview and in selective refresh responses.

Fixes #36944.


git-svn-id: https://develop.svn.wordpress.org/trunk@37700 602fd350-edb4-49c9-b593-d223f7449a82
2016-06-14 19:16:54 +00:00
Drew Jaynes
b208dae5e6 Docs: Apply inline @see tags to hooks referenced in DocBlocks for core classes.
Applying these specially-crafted `@see` tags allows the Code Reference parser to recognize and link these elements as actions and filters.

See #36921.


git-svn-id: https://develop.svn.wordpress.org/trunk@37539 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-23 18:53:05 +00:00
Drew Jaynes
d11f7ed391 Docs: Standardize filter docs in remaining wp-includes/* files to use third-person singular verbs per the inline documentation standards for PHP.
See #36913.


git-svn-id: https://develop.svn.wordpress.org/trunk@37518 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-22 18:49:05 +00:00
Pascal Birchler
8345fc60c7 Customize: Change attachment condition in the site icon control to prevent errors.
Props neverything.
Fixes #36749 for trunk.

git-svn-id: https://develop.svn.wordpress.org/trunk@37456 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-17 20:38:20 +00:00
Weston Ruter
c1ec341ddb Customize: Clean up media control CSS.
Removes unnecessary wrapper elements and refactors class names to eliminate duplication of rule selectors.

Props celloexpressions.
Fixes #30618.


git-svn-id: https://develop.svn.wordpress.org/trunk@37426 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-12 20:22:45 +00:00
Weston Ruter
d5bcff481f Customize: Remove use of reserved word default in Underscore template which breaks IE8.
Fixes regression introduced in r30712.

Props adamsilverstein.
Fixes #36793.


git-svn-id: https://develop.svn.wordpress.org/trunk@37417 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-11 19:07:01 +00:00
Weston Ruter
8359290d8f Customize: Ensure that wp_setup_nav_menu_item filter applies consistently on nav_menu_item setting values.
The filter was being applied in `WP_Customize_Nav_Menu_Item_Setting::value()` but not in `WP_Customize_Nav_Menu_Item_Setting::value_as_wp_post_nav_menu_item()`.

Props celloexpressions, westonruter.
Fixes #35203.


git-svn-id: https://develop.svn.wordpress.org/trunk@37405 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-10 06:40:48 +00:00
Andrea Fercia
b3b7f6cbac Customizer, Site Icon preview: improve alt attributes and text accessibility.
Props shahpranaf, TacoVerdo, afercia.

Fixes #36562.

git-svn-id: https://develop.svn.wordpress.org/trunk@37229 602fd350-edb4-49c9-b593-d223f7449a82
2016-04-17 12:00:23 +00:00
Weston Ruter
cfd07d69cf Customize: Fix toggle of title attribute field visibility on nav menus admin page.
Improves alignment with nav menus in the Customizer, fixing regression introduced in [36908].

See #35273.
Props sidati, westonruter.
Fixes #36353.


git-svn-id: https://develop.svn.wordpress.org/trunk@37153 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-30 21:54:45 +00:00
Weston Ruter
0bc533e10b Customize: Put focus on change button instead of remove button in media control.
Allow controls to specify the primary element to receive focus by adding a `control-focus` class.

Props adamsilverstein, westonruter.
Fixes #36337.


git-svn-id: https://develop.svn.wordpress.org/trunk@37152 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-30 21:40:43 +00:00
Drew Jaynes
da8a501226 Docs: Use a third-person singular verb in the DocBlock summary for WP_Customize_Site_Icon_Control::content_template(), introduced in [36698].
Also adds a missing `@access` notation.

See #33755. See #35986.


git-svn-id: https://develop.svn.wordpress.org/trunk@37012 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-16 16:40:45 +00:00
Drew Jaynes
7e2441298e Docs: Add a missing version and access information to the DocBlock for the WP_Customize_Selective_Refresh->$manager property, introduced in [36586].
See #27355. See #35986.


git-svn-id: https://develop.svn.wordpress.org/trunk@37011 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-16 16:38:31 +00:00
Drew Jaynes
7c4212d252 Docs: Standardize the file header and class summarries for the file containing WP_Customize_Selective_Refresh, introduced in [36586].
See #27355. See #35986.


git-svn-id: https://develop.svn.wordpress.org/trunk@37010 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-16 16:28:06 +00:00
Drew Jaynes
c50b76ea08 Docs: Standardize the file header and class summaries for the file containing WP_Customize_Partial, introduced in [36586].
See #27355. See #35986.


git-svn-id: https://develop.svn.wordpress.org/trunk@37009 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-16 16:23:46 +00:00
Konstantin Obenland
827bcc32a8 Customize: Use full URL to image to prevent breakage if moved.
See https://core.trac.wordpress.org/ticket/33755#comment:103
See #33755.



git-svn-id: https://develop.svn.wordpress.org/trunk@36948 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-10 18:52:10 +00:00
Weston Ruter
7ececb24f5 Customize: Fix persistence of toggles for displayed nav menu item properties.
* Eliminates need to click more than one checkbox to have preferences saved.
* Adds debouncing to saving user-selected menu item properties.
* Also removes discrepancies between available nav menu item properties on admin page vs Customizer.

Fixes #35273.
Props afercia, westonruter.


git-svn-id: https://develop.svn.wordpress.org/trunk@36908 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-09 21:40:27 +00:00
Konstantin Obenland
326806a961 Customize: Reduce vertical space of site icon control.
Makes the control easier to find, reduces visual clutter, and is more
consistent with Customizer UI conventions.

Props celloexpressions.
Fixes #35943.


git-svn-id: https://develop.svn.wordpress.org/trunk@36907 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-09 21:18:53 +00:00
Weston Ruter
c2c1c3fd3a Customize: Remove selective refresh error message from appearing inline within the preview.
The error message will still be available in the developer console.

Removes part of [36586].
See #27355.
Fixes #36164.


git-svn-id: https://develop.svn.wordpress.org/trunk@36890 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-09 04:36:51 +00:00
Weston Ruter
084772af80 Customize: Eliminate unnecessary WP_Customize_Site_Logo_Control in favor of re-using WP_Customize_Image_Control.
* Removes double `margin-bottom` from all the media controls.
* All media controls now send `{settingId}-attachment-data` messages to the preview when a media setting is updated so that the preview has access to the attachment data.
* Fixes receiving of `attachment-data` message for `custom_logo` which resulted in instant JS-applied preview not working. See #36096.

See #33755.
Fixes #35941.


git-svn-id: https://develop.svn.wordpress.org/trunk@36851 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-04 23:46:07 +00:00
Konstantin Obenland
cf863ab2a8 Customize: Rename custom logo classes after [36837].
Fixes #35945.


git-svn-id: https://develop.svn.wordpress.org/trunk@36838 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-03 19:58:37 +00:00
Konstantin Obenland
43ff969765 Customize: Site logos are custom logos.
Brings the nomenclature closer to custom headers and backgrounds.

See https://wordpress.slack.com/archives/core/p1456955151003150
See #35945. 


git-svn-id: https://develop.svn.wordpress.org/trunk@36837 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-03 19:55:15 +00:00
Dominik Schilling (ocean90)
4c8b3511a2 Customizer: Merge two translator comments.
git-svn-id: https://develop.svn.wordpress.org/trunk@36809 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-02 23:09:12 +00:00
Weston Ruter
0c3716670a Customize: Define params on WP_Customize_Partial::render_callback() for the sake of subclasses overriding this method.
Fixes a strict standards notice regarding the method signature needing to be compatible.

See #27355.


git-svn-id: https://develop.svn.wordpress.org/trunk@36801 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-02 06:08:38 +00:00
Weston Ruter
f60e7fd99d Customize: Allow button_labels to be overridden in $args passed to WP_Customize_Media_Control and WP_Customize_Image_Control.
Props chetanchauhan, celloexpressions.
See #33755.
Fixes #35542.


git-svn-id: https://develop.svn.wordpress.org/trunk@36769 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-29 00:39:33 +00:00
Drew Jaynes
180fd6bad4 Docs: Add a missing summary, @access tag, and parameter documentation to the DocBlock for WP_Customize_Filter_Setting::update().
See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@36745 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-27 21:16:37 +00:00
Dominik Schilling (ocean90)
9a7488aaf8 Spelling: Standardize on "front end"/"back end" (noun) and "front-end"/"back-end" (adjective).
Props obrienlabs, thewanderingbrit.
Fixes #34887.

git-svn-id: https://develop.svn.wordpress.org/trunk@36709 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-25 12:52:33 +00:00
Konstantin Obenland
b73a1c9aa9 Customize: Introduce Logo support for themes.
Allows a common theme feature to have a common implementation provided by core and available in a consistent location for users.
See https://make.wordpress.org/core/2016/02/24/theme-logo-support/

Props kwight, enejb, jeherve, bhubbard, samhotchkiss, zinigor, eliorivero, adamsilverstein, melchoyce, ryan, mikeschroder, westonruter, pento, karmatosed, celloexpressions, obenland. 
See #33755.



git-svn-id: https://develop.svn.wordpress.org/trunk@36698 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-24 22:09:54 +00:00
Weston Ruter
d80ef26b48 Customize: Allow controls to be registered without any associated settings.
* Improves parity between partials and controls. A partial or control can be settingless if instantiated with `settings` param as empty array (otherwise, if null, then the partial/control ID is used). 
* Eliminate need to create dummy settings that serve no purpose except to place a control in the UI.
* Removes dummy settings for `create_new_menu` and `new_menu_name`.
* Introduces `WP_Customize_Control::$capability` and `WP_Customize_Partial::$capability`, and if set checks them in the respective `check_capabilities()` methods.
* Prevents PHP fatal error from happening when non-existing settings are provided to control: "Call to a member function `check_capabilities()` on a non-object".
* Fixes issue where nav menu items and widgets were no longer working with selective refresh because cap check was failing.

See #27355.
Fixes #35926.


git-svn-id: https://develop.svn.wordpress.org/trunk@36689 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-24 18:27:45 +00:00
Weston Ruter
c9b47e9d92 Customize: Skip exporting partials to client and handling rendering requests if user can't modify associated settings.
Introduces `WP_Customize_Partial::check_capabilities()` for parity with `WP_Customize_Control::check_capabilities()`.
 
See #27355.
Fixes #35914.


git-svn-id: https://develop.svn.wordpress.org/trunk@36643 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-23 18:13:30 +00:00
Weston Ruter
b30e77f5fc Customize: Let WP_Customize_Selective_Refresh class be final to match manager and other component classes.
This class is not intended to be extended.
 
See #27355.


git-svn-id: https://develop.svn.wordpress.org/trunk@36624 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-23 01:27:55 +00:00
Weston Ruter
d14b188c42 Customize: Prevent dropping backslashes from input on general settings and settings for nav menus and some widgets.
Ensures that intentional backslashes (e.g. "\o/") can be used in:

* Site title
* Site description
* Nav menu name
* Custom Menu widget title
* Tag Cloud widget title
* Text widget body if can't `unfiltered_html`

The latter three are also fixed on the widgets admin page.

Fixes #35898.


git-svn-id: https://develop.svn.wordpress.org/trunk@36622 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-23 01:01:43 +00:00
Weston Ruter
d06329d035 Customize: Fix previewing and updating of nav menu items containing slashed/slashable characters.
Prevents slashes from being added when a user without `unfiltered_html` previews a nav menu item containing an apostrophe or some other slashable character, and prevents the loss of an intentional slash (e.g. "\o/") when saving a nav menu item, regardless of capability.

Fixes #35869.


git-svn-id: https://develop.svn.wordpress.org/trunk@36608 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-22 00:13:53 +00:00
Weston Ruter
03360d143d 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
2016-02-19 18:40:06 +00:00
Weston Ruter
d33deeeb74 Customize: Ensure that "Change" button appears when there are only 2 themes.
Fixes defect introduced in [35535].

Props igmoweb.
See #34549.
Fixes #35081.


git-svn-id: https://develop.svn.wordpress.org/trunk@35943 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-15 01:20:49 +00:00
Sergey Biryukov
3cf74baa5b I18N: Remove <strong> tags from translatable strings in WP_Customize_Manager::register_controls() and WP_Customize_Header_Image_Control::render_content().
Add translator comments.

See #35039.

git-svn-id: https://develop.svn.wordpress.org/trunk@35923 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-14 12:53:37 +00:00
Weston Ruter
89f49aad80 Customize: Ensure that a setting (especially a multidimensional one) can still be previewed when the post value to preview is set after preview() is invoked.
* Introduce `customize_post_value_set_{$setting_id}` and `customize_post_value_set` actions which are done when `WP_Customize_Manager::set_post_value()` is called.
* Clear the `preview_applied` flag for aggregated multidimensional settings when a post value is set. This ensures the new value is used instead of a previously-cached previewed value.
* Move `$is_preview` property from subclasses to `WP_Customize_Setting` parent class.
* Deferred preview: Ensure that when `preview()` short-circuits due to not being applicable that it will be called again later when the post value is set.
* Populate post value for updated-widget with the (unsanitized) JS-value in `WP_Customize_Widgets::call_widget_update()` so that value will be properly sanitized when accessed in `WP_Customize_Manager::post_value()`.

Includes unit tests with assertions to check the reported issues and validate the fixes.

Fixes defect introduced in [35007].
See #32103.
Fixes #34738.


git-svn-id: https://develop.svn.wordpress.org/trunk@35724 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-21 02:51:57 +00:00
Sergey Biryukov
b0e225b619 Customizer: Use correct context and translator comments for menu location strings.
See #33431.

git-svn-id: https://develop.svn.wordpress.org/trunk@35722 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-20 17:45:57 +00:00
Dominik Schilling (ocean90)
a88d7d81b5 Customizer: Merge two similar strings.
Remove also `{{ data.menu_name }}` since it doesn't print anything.

Fixes #33630.

git-svn-id: https://develop.svn.wordpress.org/trunk@35695 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-18 22:24:22 +00:00
Scott Taylor
1d22015fb3 Customizer i18n: provide translator context for current menu name and location.
Props ryankienstra.
Fixes #33431.


git-svn-id: https://develop.svn.wordpress.org/trunk@35676 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-18 19:20:30 +00:00
Helen Hou-Sandi
6f1bb2ab67 Buttons: Standardize on .button-link for link-like buttons.
This serves as both a reset and some basic styling. The class name also aligns with parallel components in other popular projects.

props paulwilde for the initial patch.
fixes #34242.


git-svn-id: https://develop.svn.wordpress.org/trunk@35636 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-13 15:46:12 +00:00
Weston Ruter
2e2ea4876b Customize: Improve alignment of WP_Customize_Nav_Menu_Item_Setting::sanitize() behavior with wp_update_nav_menu_item().
* Apply `title_save_pre`, `excerpt_save_pre`, and `content_save_pre` filters on a nav menu item's `title`, `attr_title`, and `description` properties respectively. This ensures that arbitrary markup can be supplied if the user has `unfiltered_html` cap, and for these fields to have markup stripped if not.
* Ensure a nav menu item's `post_status` is sanitized as `publish` or `draft` using the same conditions as `wp_update_nav_menu_item()`.
* Align `WP_Customize_Nav_Menu_Item_Setting::sanitize()` behavior for sanitizing `position` to be the same as `wp_update_nav_menu_item()`.
* Also apply `nav_menu_attr_title` and `nav_menu_description` filters in `WP_Customize_Nav_Menu_Item_Setting::value_as_wp_post_nav_menu_item()` to ensure that previewing markup entered into menu item description will preview the same way as when the nav menu item is saved.
* Add unit tests.

Fixes #32812.


git-svn-id: https://develop.svn.wordpress.org/trunk@35580 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-09 00:47:55 +00:00
Scott Taylor
7301c115aa Accessibility: add missing alt attributes to a gaggle of <img>s.
Props afercia.
Fixes #34583.


git-svn-id: https://develop.svn.wordpress.org/trunk@35567 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-07 16:11:38 +00:00
Weston Ruter
9711093ff8 Customize: Hide "Change" button in themes section if there are fewer than two available themes.
Props danielbachhuber, westonruter.
Fixes #34549.


git-svn-id: https://develop.svn.wordpress.org/trunk@35535 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-05 01:25:54 +00:00
Weston Ruter
5084a0b28a Customize: Add support for post_type_archive nav menu items.
Props celloexpressions, westonruter.
Fixes #16075.


git-svn-id: https://develop.svn.wordpress.org/trunk@35500 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-04 04:29:39 +00:00
Andrea Fercia
fa29612530 Customizer: Remove the no more used add-menu-item-loading spinner.
Also makes more room for longer translations.

Props dipali.dhole27@gmail.com.
Fixes #34342.

git-svn-id: https://develop.svn.wordpress.org/trunk@35396 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-26 13:58:53 +00:00
Drew Jaynes
95be0b747f Docs: Add missing DocBlocks for the $type and $sidebar_id properties, and summaries for the to_json() and render_content() methods in WP_Widget_Area_Customize_Control.
See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@35393 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-25 19:57:46 +00:00
Scott Taylor
b4c270030f Customize: move WP_Customize_Control subclasses to wp-includes/customize, they load in the exact same place.
See #34432.


git-svn-id: https://develop.svn.wordpress.org/trunk@35389 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-24 18:56:07 +00:00
Scott Taylor
c43245e29d Customize: move WP_Customize_Panel subclass to wp-includes/customize, it loads in the exact same place.
See #34432.


git-svn-id: https://develop.svn.wordpress.org/trunk@35386 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-24 18:24:21 +00:00
Scott Taylor
625514655e Customize: move WP_Customize_Section subclasses to wp-includes/customize, they load in the exact same place.
See #34432.


git-svn-id: https://develop.svn.wordpress.org/trunk@35385 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-24 18:20:25 +00:00
Scott Taylor
8541ba7907 Customize: move WP_Customize_Setting subclasses to wp-includes/customize, they load in the exact same place.
See #34432.


git-svn-id: https://develop.svn.wordpress.org/trunk@35383 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-24 18:10:17 +00:00