document.addEventListener("DOMContentLoaded", function () { console.log("NP Collection Edit Loaded"); /* ------------------------------------------------ Elements ------------------------------------------------ */ const drawer = document.getElementById("np-collection-drawer"); const overlay = document.getElementById("np-collection-overlay"); const modal = document.getElementById("np-my-copies-modal"); const modalOverlay = document.getElementById("np-my-copies-overlay"); const modalBody = document.getElementById("np-my-copies-list"); const closeModalButton = document.getElementById("np-close-my-copies"); /* ------------------------------------------------ Modal ------------------------------------------------ */ function openModal() { modal.classList.add("open"); modalOverlay.classList.add("open"); document.body.style.overflow = "hidden"; } function closeModal() { modal.classList.remove("open"); modalOverlay.classList.remove("open"); document.body.style.overflow = ""; } if (closeModalButton) { closeModalButton.addEventListener("click", closeModal); } if (modalOverlay) { modalOverlay.addEventListener("click", closeModal); } /* ------------------------------------------------ Load My Copies ------------------------------------------------ */ function loadCopies(pageId, catalogueId) { modalBody.innerHTML = "
Loading...
"; const formData = new URLSearchParams(); formData.append("action", "np_get_owned_copies"); formData.append("nonce", npCollection.nonce); formData.append("page_id", pageId); formData.append("catalogue_id", catalogueId); fetch(npCollection.ajaxurl, { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: formData.toString() }) .then(function (response) { return response.json(); }) .then(function (response) { if (!response.success) { modalBody.innerHTML = "No copies found.
"; return; } renderCopies(response.data); }) .catch(function (error) { console.error(error); }); } /* ------------------------------------------------ Open My Copies ------------------------------------------------ */ document.querySelectorAll(".np-add-collection").forEach(function (button) { button.addEventListener("click", function () { const action = button.dataset.action || "normal"; const owned = parseInt(button.dataset.owned || "0", 10); if (action !== "edit") { return; } if (owned <= 1) { return; } const pageId = button.dataset.pageId; const coin = JSON.parse(button.dataset.coin); loadCopies( pageId, coin.catalogue_id ); openModal(); }); }); /* ------------------------------------------------ Render My Copies ------------------------------------------------ */ function renderCopies(copies) { let html = ""; copies.forEach(function (coin, index) { html += `Grade: ${coin.grade || "Not Graded"}
Purpose: ${coin.purpose}
Purchase Price: ${coin.purchase_price || "-"}