Implement Pattern Library alerts in Discussions
TNL-5164
This commit is contained in:
@@ -252,33 +252,36 @@
|
||||
};
|
||||
|
||||
DiscussionUtil.formErrorHandler = function(errorsField) {
|
||||
return function(xhr, textStatus, error) {
|
||||
var makeErrorElem, response, _i, _len, _ref, _results, $errorItem;
|
||||
makeErrorElem = function(message) {
|
||||
return edx.HtmlUtils.setHtml(
|
||||
$('<li>').addClass('post-error'),
|
||||
message
|
||||
return function(xhr) {
|
||||
var makeErrorElem, response, i, $errorItem;
|
||||
makeErrorElem = function(message, alertId) {
|
||||
return edx.HtmlUtils.joinHtml(
|
||||
edx.HtmlUtils.HTML('<li>'),
|
||||
edx.HtmlUtils.template(
|
||||
$('#new-post-alert-template').html()
|
||||
)({
|
||||
message: message,
|
||||
alertId: alertId
|
||||
}),
|
||||
edx.HtmlUtils.HTML('</li>')
|
||||
);
|
||||
};
|
||||
errorsField.empty().show();
|
||||
if (xhr.status === 400) {
|
||||
response = JSON.parse(xhr.responseText);
|
||||
if (response.errors) {
|
||||
_ref = response.errors;
|
||||
_results = [];
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
error = _ref[_i];
|
||||
$errorItem = makeErrorElem(error);
|
||||
_results.push(errorsField.append($errorItem));
|
||||
for (i = 0; i < response.errors.length; i++) {
|
||||
$errorItem = makeErrorElem(response.errors[i], i);
|
||||
edx.HtmlUtils.append(errorsField, $errorItem);
|
||||
}
|
||||
return _results;
|
||||
}
|
||||
} else {
|
||||
$errorItem = makeErrorElem(
|
||||
gettext('We had some trouble processing your request. Please try again.')
|
||||
);
|
||||
return errorsField.append($errorItem);
|
||||
$errorItem = makeErrorElem('We had some trouble processing your request. Please try again.', 0);
|
||||
edx.HtmlUtils.append(errorsField, $errorItem);
|
||||
}
|
||||
|
||||
// Set focus on the first error displayed
|
||||
$('div[role="alert"]', errorsField).first().focus();
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -195,7 +195,7 @@
|
||||
expect($.ajax.calls.mostRecent().args[0].data.body).toEqual(this.updatedBody);
|
||||
expect(this.view.model.get('body')).toEqual(originalBody);
|
||||
expect(this.view.cancelEdit).not.toHaveBeenCalled();
|
||||
return expect(this.view.$('.edit-comment-form-errors *').length).toEqual(1);
|
||||
return expect(this.view.$('.edit-comment-form-errors > *').length).toEqual(1);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
templateNames = [
|
||||
'thread', 'thread-show', 'thread-edit', 'thread-response', 'thread-response-show',
|
||||
'thread-response-edit', 'response-comment-show', 'response-comment-edit', 'thread-list-item',
|
||||
'discussion-home', 'search-alert', 'new-post', 'thread-type', 'new-post-menu-entry',
|
||||
'discussion-home', 'search-alert', 'new-post', 'thread-type', 'new-post-menu-entry', 'new-post-alert',
|
||||
'new-post-menu-category', 'topic', 'post-user-display', 'inline-discussion', 'pagination',
|
||||
'profile-thread', 'customwmd-prompt', 'nav-loading'
|
||||
];
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<div class="alert alert-error pattern-library-shim" role="alert" aria-labelledby="alert-title-error-<%- alertId %>" tabindex="-1">
|
||||
<span class="icon alert-icon fa fa-warning" aria-hidden="true"></span>
|
||||
|
||||
<div class="alert-message">
|
||||
<h3 class="sr-only alert-title" id="alert-title-error-<%- alertId %>">
|
||||
<%- gettext("Error posting your message.") %>
|
||||
</h3>
|
||||
|
||||
<p class="alert-copy">
|
||||
<%- gettext(message) %>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user