[wp-trac] [WordPress Trac] #35210: Add notification area to Customizer
WordPress Trac
noreply at wordpress.org
Fri May 20 21:09:44 UTC 2016
#35210: Add notification area to Customizer
-------------------------+-----------------------------
Reporter: westonruter | Owner:
Type: enhancement | Status: new
Priority: high | Milestone: 4.6
Component: Customize | Version:
Severity: normal | Resolution:
Keywords: needs-patch | Focuses: ui, javascript
-------------------------+-----------------------------
Comment (by westonruter):
In [changeset:"37476"]:
{{{
#!CommitTicketReference repository="" revision="37476"
Customize: Add setting validation model and control notifications to
augment setting sanitization.
When a setting is invalid, not only will it be blocked from being saved
but all other settings will be blocked as well. This ensures that
Customizer saves aren't partial but are more transactional. User will be
displayed the error in a notification so that they can fix and re-attempt
saving.
PHP changes:
* Introduces `WP_Customize_Setting::validate()`,
`WP_Customize_Setting::$validate_callback`, and the
`customize_validate_{$setting_id}` filter.
* Introduces `WP_Customize_Manager::validate_setting_values()` to do
validation (and sanitization) for the setting values supplied, returning a
list of `WP_Error` instances for invalid settings.
* Attempting to save settings that are invalid will result in the save
being blocked entirely, with the errors being sent in the
`customize_save_response`. Modifies `WP_Customize_Manager::save()` to
check all settings for validity issues prior to calling their `save`
methods.
* Introduces `WP_Customize_Setting::json()` for parity with the other
Customizer classes. This includes exporting of the `type`.
* Modifies `WP_Customize_Manager::post_value()` to apply `validate` after
`sanitize`, and if validation fails, to return the `$default`.
* Introduces `customize_save_validation_before` action which fires right
before the validation checks are made prior to saving.
JS changes:
* Introduces `wp.customize.Notification` in JS which to represent
`WP_Error` instances returned from the server when setting validation
fails.
* Introduces `wp.customize.Setting.prototype.notifications`.
* Introduces `wp.customize.Control.prototype.notifications`, which are
synced with a control's settings' notifications.
* Introduces `wp.customize.Control.prototype.renderNotifications()` to re-
render a control's notifications in its notification area. This is called
automatically when the notifications collection changes.
* Introduces `wp.customize.settingConstructor`, allowing custom setting
types to be used in the same way that custom controls, panels, and
sections can be made.
* Injects a notification area into existing controls which is populated in
response to the control's `notifications` collection changing. A custom
control can customize the placement of the notification area by overriding
the new `getNotificationsContainerElement` method.
* When a save fails due to setting invalidity, the invalidity errors will
be added to the settings to then populate in the controls' notification
areas, and the first such invalid control will be focused.
Props westonruter, celloexpressions, mrahmadawais.
See #35210.
See #30937.
Fixes #34893.
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/35210#comment:65>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list