Skip to content

Commit d10c10e

Browse files
author
okarpenko
committed
MAGETWO-37818: Customer invalid email message is not displayed
1 parent aaa8291 commit d10c10e

File tree

4 files changed

+29
-39
lines changed

4 files changed

+29
-39
lines changed

app/code/Magento/Customer/Controller/Adminhtml/Index/Validate.php

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,11 @@ protected function _validateCustomer($response)
5757
}
5858

5959
if (!$errors->isValid()) {
60+
$messages = [];
6061
foreach ($errors->getMessages() as $error) {
61-
$this->messageManager->addError($error);
62+
$messages[] = $error;
6263
}
64+
$response->setMessages($messages);
6365
$response->setError(1);
6466
}
6567

@@ -90,9 +92,11 @@ protected function _validateCustomerAddress($response)
9092

9193
$errors = $addressForm->validateData($formData);
9294
if ($errors !== true) {
95+
$messages = [];
9396
foreach ($errors as $error) {
94-
$this->messageManager->addError($error);
97+
$messages[] = $error;
9598
}
99+
$response->setMessages($messages);
96100
$response->setError(1);
97101
}
98102
}
@@ -114,9 +118,8 @@ public function execute()
114118
}
115119
$resultJson = $this->resultJsonFactory->create();
116120
if ($response->getError()) {
117-
$layout = $this->layoutFactory->create();
118-
$layout->initMessages();
119-
$response->setHtmlMessage($layout->getMessagesBlock()->getGroupedHtml());
121+
$response->setError(true);
122+
$response->setMessages($response->getMessages());
120123
}
121124

122125
$resultJson->setData($response);

app/code/Magento/Ui/view/base/web/js/form/client.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,15 @@ define([
2929
success: function (resp) {
3030
if (!resp.error) {
3131
save.resolve();
32+
} else {
33+
$('body').notification('clear');
34+
$.each(resp.messages, function(key, message) {
35+
$('body').notification('add', {
36+
error: resp.error,
37+
message: message,
38+
messageSelector: '#anchor-content'
39+
});
40+
});
3241
}
3342
},
3443
complete: function () {

lib/web/mage/backend/notification.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ define([
1313
$.widget('mage.notification', {
1414
options: {
1515
templates: {
16-
global: '<div class="messages"><div class="message <% if (data.error) { %>error<% } %>"><div><%- data.message %></div></div></div>'
16+
global: '<div class="messages"><div class="message <% if (data.error) { %>error<% } %>"><div><%- data.message %></div></div></div>',
17+
error: '<div class="messages"><div class="message message-error error"><div data-ui-id="messages-message-error" ><%- data.message %></div></div></div>'
1718
}
1819
},
1920

@@ -47,20 +48,20 @@ define([
4748
* @param {Object} data - Data with a message to be displayed.
4849
*/
4950
add: function (data) {
50-
var message = mageTemplate(this.options.templates.global, {
51+
var template = data.error ? this.options.templates.error : this.options.templates.global;
52+
var message = mageTemplate(template, {
5153
data: data
5254
});
53-
54-
$('#messages').append(message);
55-
55+
var messageSelector = data.messageSelector || '.messages';
56+
$(messageSelector).prepend(message);
5657
return this;
5758
},
5859

5960
/**
6061
* Removes error messages.
6162
*/
6263
clear: function () {
63-
$('#messages').html('');
64+
$('.messages').html('');
6465
}
6566
});
6667

lib/web/mage/backend/validation.js

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -145,34 +145,11 @@
145145
* @param {Object} data - Data that came from backend.
146146
*/
147147
_showErrors: function(data) {
148-
var attributes = data.attributes || {},
149-
element;
150-
151-
if (data.attribute) {
152-
attributes[data.attribute] = data.message;
153-
}
154-
155-
$('body').notification('clear');
156-
157-
_.each(attributes, function(message, code) {
158-
element = this._getByCode(code);
159-
160-
if(!element.length){
161-
$('body').notification('add', {
162-
error: true,
163-
message: message
164-
});
165-
166-
return;
167-
}
168-
169-
element
170-
.addClass('validate-ajax-error')
171-
.data('msg-validate-ajax-error', message);
172-
173-
this.validate.element(element);
174-
175-
}, this);
148+
$('body').notification('clear')
149+
.notification('add', {
150+
error: data.error,
151+
message: data.message
152+
});
176153
},
177154

178155
/**

0 commit comments

Comments
 (0)