document.addEventListener("DOMContentLoaded", () => { const containFormData = document.querySelector(".words-check-container"); const form = document.getElementById("wordsForm"); const csrfToken = document.querySelector("[name=csrfmiddlewaretoken]").value; const message = document.getElementById("response-message"); const modal = document.getElementById("confirmModal"); const modalContent = document.getElementById("confirmModalContent"); const cancelBtn = document.getElementById("cancelBtn"); const confirmBtn = document.getElementById("confirmBtn"); const URL = "/cata/testers/api/ratingword/cata"; const checkboxes = form.querySelectorAll('input[type="checkbox"]'); checkboxes.forEach((cb) => (cb.checked = false)); let wordsData = []; form.addEventListener("submit", (e) => { e.preventDefault(); const checkboxes = form.querySelectorAll('input[type="checkbox"]'); wordsData = Array.from(checkboxes).map((cb) => ({ id: parseInt(cb.dataset.wordId), word: cb.dataset.wordName, is_check: cb.checked, })); showModal(wordsData); }); function showModal(words) { const checkedWords = words.filter((w) => w.is_check); const uncheckedWords = words.filter((w) => !w.is_check); modalContent.innerHTML = `

Palabras seleccionadas:

Palabras no seleccionadas:

`; modal.classList.remove("hidden"); } cancelBtn.addEventListener("click", () => { modalContent.innerHTML = ""; modal.classList.add("hidden"); }); confirmBtn.addEventListener("click", async () => { modal.classList.add("hidden"); const dataProduct = { id: parseInt(document.querySelector(".id-product").textContent), code: document.querySelector(".code-product").textContent, }; try { const response = await fetch(URL, { method: "POST", headers: { "Content-Type": "application/json", "X-CSRFToken": csrfToken, "X-Requested-With": "XMLHttpRequest", }, body: JSON.stringify({ words: wordsData, product: dataProduct }), }); if (!response.ok) { message.textContent = "Error en la respuesta del servidor"; message.classList.remove("hidden"); } const result = await response.json(); const messError = result.error; if (messError) { message.textContent = messError; return; } containFormData.innerHTML = `

Exito al guardar

${result.message}

`; } catch (err) { console.error(err); message.textContent = "Error en la respuesta del servidor"; message.classList.remove("hidden"); } }); });