import { Controller } from "@hotwired/stimulus"; export default class extends Controller { addEntry(event) { event.preventDefault(); const formClone = this.element.querySelector("form").cloneNode(true); formClone.querySelectorAll("select").forEach((input) => { input.value = "1"; }); formClone.querySelector("input").value = ""; this.element.querySelector(".forms").appendChild(formClone); } removeEntry(event) { event.preventDefault(); if (document.querySelector(".forms").childElementCount === 1) { return; } event.target.closest("form").remove(); } submit(event) { event.preventDefault(); const forms = document.querySelectorAll("form"); const formData = this.getFormData(forms); fetch("/ticket/submit", { method: "POST", body: JSON.stringify(formData), headers: { "Content-Type": "application/json", }, }).then((response) => { if (!response.ok) { alert("An error occurred"); } }); } getFormData(forms) { const formData = []; forms.forEach((form) => { formData.push(Object.fromEntries(new FormData(form).entries())); }); return formData; } }