Skip to content

Commit c7e6517

Browse files
authored
Merge pull request #3426 from projectblacklight/refactor-contact-delete-error-handler
Refactor the exhibit contact delete 404 handler
2 parents 2e3da52 + f6dfe56 commit c7e6517

File tree

5 files changed

+38
-71
lines changed

5 files changed

+38
-71
lines changed

app/assets/javascripts/spotlight/spotlight.esm.js

+12-23
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/assets/javascripts/spotlight/spotlight.esm.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/assets/javascripts/spotlight/spotlight.js

+12-23
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/assets/javascripts/spotlight/spotlight.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/javascript/spotlight/admin/exhibits.js

+12-23
Original file line numberDiff line numberDiff line change
@@ -41,29 +41,9 @@ export default class {
4141
$(inputContainer).insertAfter(contacts.last());
4242
});
4343

44-
$('.contact-email-delete').on('ajax:success', function() {
45-
$(this).closest('.contact').fadeOut(250, function() { $(this).remove(); });
46-
});
47-
48-
$('.contact-email-delete').on('ajax:error', function(event, _xhr, _status, error) {
49-
var errSpan = $(this).closest('.contact').find('.contact-email-delete-error');
50-
errSpan.show();
51-
errSpan.find('.error-msg').first().text(error || event.detail[1]);
52-
});
53-
54-
document.addEventListener('turbo:submit-end', (event) => {
55-
const response = event.detail.fetchResponse;
56-
if (!response.succeeded && response.response.status === 404) {
57-
const path = new URL(event.target.action).pathname;
58-
const deleteButton = document.querySelector(`.contact-email-delete[href="${path}"]`);
59-
if (deleteButton) {
60-
const errSpan = deleteButton.closest('.contact').querySelector('.contact-email-delete-error');
61-
const errorMsg = errSpan.querySelector('.error-msg');
62-
errSpan.style.display = 'block';
63-
errorMsg.textContent = 'Not Found';
64-
}
65-
}
66-
});
44+
if (document.getElementById('another-email')) {
45+
document.addEventListener('turbo:submit-end', this.contactToDeleteNotFoundHandler);
46+
}
6747

6848
if ($.fn.tooltip) {
6949
$('.btn-with-tooltip').tooltip();
@@ -74,4 +54,13 @@ export default class {
7454
$('#search_title').focus();
7555
});
7656
}
57+
58+
contactToDeleteNotFoundHandler(e) {
59+
const contact = e.detail.formSubmission?.delegate?.element?.querySelector('.contact')
60+
if (contact && e.detail?.fetchResponse?.response?.status === 404) {
61+
const error = contact.querySelector('.contact-email-delete-error');
62+
error.style.display = 'block';
63+
error.querySelector('.error-msg').textContent = 'Not Found';
64+
}
65+
}
7766
}

0 commit comments

Comments
 (0)