Skip to content
Snippets Groups Projects

Issue #3489335 fix ESLint error by removing use of ajaxComplete.

2 files
+ 21
18
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 20
18
@@ -2,7 +2,7 @@
* @file
*/
(($, Drupal) => {
(($, Drupal, once) => {
/**
* Handles an autocomplete select event.
*
@@ -35,23 +35,25 @@
Drupal.behaviors.displayMessage = {
attach(context) {
$(document).ajaxComplete(() => {
$(
'.field--type-viewsreference select.viewsreference-display-id',
context,
).each(() => {
$('.viewsreference-display-error', context).remove();
const $parent = $(this).parent().hide();
if ($(this).find('option').length <= 1) {
const $error = $(
'<p class="viewsreference-display-error form-notice color-warning">There is no display available. Please select another view or change the field settings.</p>',
);
$parent.after($error);
} else {
$parent.show();
}
});
// Use the once function to select elements only once per AJAX refresh/behavior attach.
once('displayMessageInit', '.field--type-viewsreference select.viewsreference-display-id', context).forEach((select) => {
// Remove existing errors.
const errors = context.querySelectorAll('.viewsreference-display-error');
errors.forEach((error) => error.remove());
const parent = select.parentNode;
parent.style.display = 'none';
// Check the number of options in the select.
if (select.options.length <= 1) {
const error = document.createElement('p');
error.className = 'viewsreference-display-error form-notice color-warning';
error.textContent = 'There is no display available. Please select another view or change the field settings.';
parent.parentNode.insertBefore(error, parent.nextSibling);
} else {
parent.style.display = '';
}
});
},
};
})(jQuery, Drupal);
})(jQuery, Drupal, once);
Loading