(function () { function isSurveyListPage() { var params = new URLSearchParams(window.location.search); return params.get('do') === 'survey_bundle_surveys'; } function isSurveyQuestionListPage() { var params = new URLSearchParams(window.location.search); return params.get('do') === 'survey_bundle_surveys' && params.get('table') === 'tl_survey_content' && !params.get('act'); } function toggleQuestionListClass() { document.body.classList.toggle('survey-question-list-page', isSurveyQuestionListPage()); document.body.classList.toggle('survey-question-list-clipboard-active', isSurveyQuestionListPage() && hasQuestionListClipboardState()); } function hasQuestionListClipboardState() { if (!isSurveyQuestionListPage()) { return false; } if (document.querySelector('#paste_hint')) { return true; } return Array.from(document.querySelectorAll('button')).some(function (button) { return (button.textContent || '').trim() === 'Ablage leeren'; }); } function getSearchSelect() { return document.querySelector('select[name="tl_search"]'); } function getSearchForm(select) { return select ? select.closest('form') : null; } function removeIdOption(select) { if (!select) { return; } var idOption = select.querySelector('option[value="id"]'); if (!idOption) { return; } var wasSelected = idOption.selected; idOption.remove(); if (wasSelected) { var fallback = select.querySelector('option[value="title"]') || select.options[0]; if (fallback) { fallback.selected = true; select.value = fallback.value; select.dispatchEvent(new Event('change', { bubbles: true })); } } } function removeIdChoicesUi() { document.querySelectorAll('.choices__item[data-value="id"]').forEach(function (node) { node.remove(); }); document.querySelectorAll('.choices__item--choice[data-value="id"]').forEach(function (node) { node.remove(); }); } function normalizeSearchField() { toggleQuestionListClass(); if (!isSurveyListPage()) { return; } var select = getSearchSelect(); if (!select) { return; } removeIdOption(select); removeIdChoicesUi(); var form = getSearchForm(select); if (form && !form.dataset.surveySearchNormalized) { form.dataset.surveySearchNormalized = '1'; form.addEventListener('submit', function () { if (select.value === 'id') { var fallback = select.querySelector('option[value="title"]') || select.options[0]; if (fallback) { select.value = fallback.value; } } }); } } document.addEventListener('DOMContentLoaded', normalizeSearchField); document.addEventListener('turbo:load', normalizeSearchField); // Mutationen werden gebündelt: viele DOM-Änderungen lösen nur einen // normalizeSearchField-Lauf pro Frame aus statt einen pro Mutation. var scheduled = false; var scheduleNormalize = function () { if (scheduled) { return; } scheduled = true; var run = function () { scheduled = false; normalizeSearchField(); }; if (typeof window.requestAnimationFrame === 'function') { window.requestAnimationFrame(run); } else { window.setTimeout(run, 100); } }; var observer = new MutationObserver(scheduleNormalize); observer.observe(document.documentElement, { childList: true, subtree: true }); })();