Skip to content

Commit

Permalink
Merge pull request #3426 from projectblacklight/refactor-contact-dele…
Browse files Browse the repository at this point in the history
…te-error-handler

Refactor the exhibit contact delete 404 handler
  • Loading branch information
jcoyne authored Jan 31, 2025
2 parents 2e3da52 + f6dfe56 commit c7e6517
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 71 deletions.
35 changes: 12 additions & 23 deletions app/assets/javascripts/spotlight/spotlight.esm.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion app/assets/javascripts/spotlight/spotlight.esm.js.map

Large diffs are not rendered by default.

35 changes: 12 additions & 23 deletions app/assets/javascripts/spotlight/spotlight.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion app/assets/javascripts/spotlight/spotlight.js.map

Large diffs are not rendered by default.

35 changes: 12 additions & 23 deletions app/javascript/spotlight/admin/exhibits.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,29 +41,9 @@ export default class {
$(inputContainer).insertAfter(contacts.last());
});

$('.contact-email-delete').on('ajax:success', function() {
$(this).closest('.contact').fadeOut(250, function() { $(this).remove(); });
});

$('.contact-email-delete').on('ajax:error', function(event, _xhr, _status, error) {
var errSpan = $(this).closest('.contact').find('.contact-email-delete-error');
errSpan.show();
errSpan.find('.error-msg').first().text(error || event.detail[1]);
});

document.addEventListener('turbo:submit-end', (event) => {
const response = event.detail.fetchResponse;
if (!response.succeeded && response.response.status === 404) {
const path = new URL(event.target.action).pathname;
const deleteButton = document.querySelector(`.contact-email-delete[href="${path}"]`);
if (deleteButton) {
const errSpan = deleteButton.closest('.contact').querySelector('.contact-email-delete-error');
const errorMsg = errSpan.querySelector('.error-msg');
errSpan.style.display = 'block';
errorMsg.textContent = 'Not Found';
}
}
});
if (document.getElementById('another-email')) {
document.addEventListener('turbo:submit-end', this.contactToDeleteNotFoundHandler);
}

if ($.fn.tooltip) {
$('.btn-with-tooltip').tooltip();
Expand All @@ -74,4 +54,13 @@ export default class {
$('#search_title').focus();
});
}

contactToDeleteNotFoundHandler(e) {
const contact = e.detail.formSubmission?.delegate?.element?.querySelector('.contact')
if (contact && e.detail?.fetchResponse?.response?.status === 404) {
const error = contact.querySelector('.contact-email-delete-error');
error.style.display = 'block';
error.querySelector('.error-msg').textContent = 'Not Found';
}
}
}

0 comments on commit c7e6517

Please sign in to comment.