From b08ed9cd8adcf055005eb3c64f18ed74fb411d93 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Thu, 16 Nov 2023 14:29:44 +0000 Subject: [PATCH] fixes #3471 Closes #3471 Merge request studip/studip!2366 --- .../assets/javascripts/bootstrap/forms.js | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/resources/assets/javascripts/bootstrap/forms.js b/resources/assets/javascripts/bootstrap/forms.js index 16e403191dd..b0e66d31c10 100644 --- a/resources/assets/javascripts/bootstrap/forms.js +++ b/resources/assets/javascripts/bootstrap/forms.js @@ -383,10 +383,10 @@ STUDIP.ready(function () { observer.observe($(this).closest(':visible')[0], { attributeOldValue: true, attributes: true, - attributeFilter: ['style', 'class'], + attributeFilter: ['style', 'class', 'hidden'], characterData: false, childList: true, - subtree: false + subtree: true }); $(this).addClass('select2-awaiting'); @@ -394,12 +394,16 @@ STUDIP.ready(function () { function onDomChange(mutations, observer) { mutations.forEach(function(mutation) { - if ($('select.select2-awaiting', mutation.target).length > 0) { - $('select.select2-awaiting', mutation.target) - .removeClass('select2-awaiting') - .each(function() { - createSelect2(this); - }); + let targets = Array.from(mutation.target.querySelectorAll('select.select2-awaiting')); + if (mutation.target.matches('select.select2-awaiting')) { + targets.push(mutation.target); + } + targets = $(targets).filter(':visible'); + + if (targets.length > 0) { + targets.removeClass('select2-awaiting').each(function() { + createSelect2(this); + }); observer.disconnect(); } }); -- GitLab