document.addEventListener('DOMContentLoaded', function() { function toggleCorrectAnswer(row) { const typeSelect = row.querySelector('select[name$="-question_type"]'); const correctAnswerInput = row.querySelector('[name$="-correct_answer"]'); const tableRowsInput = row.querySelector('[name$="-table_rows"]'); if (typeSelect) { if (correctAnswerInput) { let wrapper = row.querySelector('.field-correct_answer'); if (!wrapper) wrapper = correctAnswerInput.closest('.form-row') || correctAnswerInput.parentElement.parentElement; if (wrapper) { wrapper.style.display = typeSelect.value === 'FILE_MANUAL' ? 'none' : ''; } } if (tableRowsInput) { let wrapper = row.querySelector('.field-table_rows'); if (!wrapper) wrapper = tableRowsInput.closest('.form-row') || tableRowsInput.parentElement.parentElement; if (wrapper) { wrapper.style.display = typeSelect.value === 'TABLE_AUTO' ? '' : 'none'; } } } } function updateOrder() { const rows = document.querySelectorAll('.inline-related:not(.empty-form)'); let counter = 1; rows.forEach(row => { const deleteInput = row.querySelector('input[name$="-DELETE"]'); if (deleteInput && deleteInput.checked) return; if (row.style.display !== 'none') { const orderInput = row.querySelector('input[name$="-order"]'); if (orderInput) { orderInput.value = counter++; let wrapper = row.querySelector('.field-order'); if (!wrapper) { wrapper = orderInput.closest('.form-row') || orderInput.parentElement.parentElement; } if (wrapper) wrapper.style.display = 'none'; } } }); } document.body.addEventListener('change', function(e) { if (e.target && e.target.matches('select[name$="-question_type"]')) { const row = e.target.closest('.inline-related'); if (row) toggleCorrectAnswer(row); } if (e.target && e.target.matches('input[name$="-DELETE"]')) { setTimeout(updateOrder, 50); } }); function initAll() { const rows = document.querySelectorAll('.inline-related:not(.empty-form)'); rows.forEach(row => { toggleCorrectAnswer(row); }); updateOrder(); } initAll(); // Aggressive fallback for dynamically added inline rows in Unfold setInterval(initAll, 1000); });