/* DeskHub Tickets: schaltet bei einer Themenauswahl die passenden Felder und Texte des Kundenformulars ein. * Ohne JavaScript bleibt alles sichtbar; der Server prüft beim Absenden ohnehin nur die Felder des gewählten Themas. */ (function () { 'use strict'; function setText(form, selector, text) { form.querySelectorAll(selector).forEach(function (el) { el.textContent = text; }); } function init(form) { var forms; try { forms = JSON.parse(form.getAttribute('data-dht-forms') || '{}'); } catch (e) { return; } var select = form.querySelector('select[name="dht_topic"]'); form.classList.add('dht-js'); function apply() { var id = select ? select.value : Object.keys(forms)[0]; var f = forms[id]; // Felder: nur die des gewählten Themas sind sichtbar und werden abgeschickt form.querySelectorAll('.dht-topic-fields').forEach(function (box) { var on = box.getAttribute('data-topic') === String(id); box.classList.toggle('dht-topic-active', on); box.querySelectorAll('input, select, textarea').forEach(function (el) { el.disabled = !on; }); }); if (!f) { return; } // Texte des gewählten Formulars var title = form.parentNode.querySelector('.dht-form-title'); if (title && !title.hasAttribute('data-fixed')) { title.textContent = f.title; title.hidden = !f.title; } var intro = form.parentNode.querySelector('.dht-form-intro'); if (intro) { intro.textContent = f.intro; intro.hidden = !f.intro; } setText(form, '.dht-subject-label', f.subjectLabel); setText(form, '.dht-message-label', f.messageLabel); var subject = form.querySelector('.dht-subject-wrap'); if (subject) { subject.hidden = !f.subjectShow; var si = subject.querySelector('input'); if (si) { si.disabled = !f.subjectShow; si.required = !!f.subjectShow; } } var message = form.querySelector('.dht-message-wrap'); if (message) { message.hidden = !f.messageShow; var mi = message.querySelector('textarea'); if (mi) { mi.disabled = !f.messageShow; mi.required = !!f.messageShow; mi.placeholder = f.messageHint || ''; } } var attach = form.querySelector('.dht-attach'); if (attach) { attach.hidden = !f.attachments; var fi = attach.querySelector('input[type=file]'); if (fi) { fi.disabled = !f.attachments; if (!f.attachments) { fi.value = ''; } } } var submit = form.querySelector('.dht-submit'); if (submit && f.submitLabel) { submit.textContent = f.submitLabel; } } if (select) { select.addEventListener('change', apply); } apply(); // Doppeltes Absenden verhindern form.addEventListener('submit', function () { var btn = form.querySelector('.dht-submit'); if (btn) { btn.disabled = true; } }); } function ready() { document.querySelectorAll('form.dht-form[data-dht-forms]').forEach(init); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', ready); } else { ready(); } })();