mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-08-11 12:20:22 +00:00
Customize: Fix php warning due to WP_Customize_Manager::prepare_setting_validity_for_js() incorrectly assuming that WP_Error will only ever have arrays in its $error_data.
* Eliminates the server mutating the a `WP_Error`'s `$error_data` to merge-in a `$from_server` flag (since it may not be an array to begin with). Instead it defers to the client to add a `fromServer` param on any `Notification` instances created from server-sent errors. * Ensures that notifications will be re-rendered if a notification's `message` changes but the `data` and `type` remain the same. * Adds explicit support for the `Notification` class to have a `setting` property, ensuring that the property is set whereas previously it was dropped. Fixes #37890. Props westonruter, dlh. git-svn-id: https://develop.svn.wordpress.org/trunk@38513 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -3461,12 +3461,13 @@
|
||||
// Add notifications for invalidities.
|
||||
if ( _.isObject( validity ) ) {
|
||||
_.each( validity, function( params, code ) {
|
||||
var notification = new api.Notification( code, params ), existingNotification, needsReplacement = false;
|
||||
var notification, existingNotification, needsReplacement = false;
|
||||
notification = new api.Notification( code, _.extend( { fromServer: true }, params ) );
|
||||
|
||||
// Remove existing notification if already exists for code but differs in parameters.
|
||||
existingNotification = setting.notifications( notification.code );
|
||||
if ( existingNotification ) {
|
||||
needsReplacement = ( notification.type !== existingNotification.type ) || ! _.isEqual( notification.data, existingNotification.data );
|
||||
needsReplacement = notification.type !== existingNotification.type || notification.message !== existingNotification.message || ! _.isEqual( notification.data, existingNotification.data );
|
||||
}
|
||||
if ( needsReplacement ) {
|
||||
setting.notifications.remove( code );
|
||||
@@ -3715,7 +3716,7 @@
|
||||
*/
|
||||
api.each( function( setting ) {
|
||||
setting.notifications.each( function( notification ) {
|
||||
if ( 'error' === notification.type && ( ! notification.data || ! notification.data.from_server ) ) {
|
||||
if ( 'error' === notification.type && ! notification.fromServer ) {
|
||||
invalidSettings.push( setting.id );
|
||||
}
|
||||
} );
|
||||
|
||||
Reference in New Issue
Block a user