const cards = document.querySelector("#cards"); const preview = document.querySelector("#preview"); var certificates = []; const renderCards = () => { cards.innerHTML = ""; if (certificates !== null) { certificates.map((cert) => { cards.innerHTML += `
${cert.domain}
`; }); } else { cards.innerHTML = `

No Certificates Found

`; } }; const getCerts = () => { fetch(window.location.origin + "/api/certs") .then((data) => data.json()) .then((data) => { certificates = data; renderCards(); }) .catch((error) => { console.error("Error fetching certificates:", error); alert("Failed to fetch certificates"); }); }; getCerts(); if (preview) { preview.addEventListener("show.bs.modal", (e) => { const button = e.relatedTarget; const recipient = button.getAttribute("data-bs-whatever"); // const modalBodyTextarea = preview.querySelector(".modal-body textarea"); const dnsnames = button.getAttribute("data-bs-dnsnames"); const notafter = button.getAttribute("data-bs-notafter"); const notbefore = button.getAttribute("data-bs-notbefore"); const issuerorganizationunit = button.getAttribute( "data-bs-issuer-organizationunit", ); const issuerorganization = button.getAttribute( "data-bs-issuer-organization", ); const issuercommonname = button.getAttribute("data-bs-issuer-commonname"); const subjectorganizationunit = button.getAttribute( "data-bs-subject-organizationunit", ); const subjectorganization = button.getAttribute( "data-bs-subject-organization", ); const subjectcommonname = button.getAttribute("data-bs-subject-commonname"); preview.querySelector("#raw").innerHTML = recipient.replace(/\n/g, "
"); preview.querySelector("#dnsNames").value = dnsnames; preview.querySelector("#notAfter").value = notafter; preview.querySelector("#notBefore").value = notbefore; preview.querySelector("#issuerorganizationunit").value = issuerorganizationunit; preview.querySelector("#issuerorganization").value = issuerorganization; preview.querySelector("#issuercommonname").value = issuercommonname; preview.querySelector("#subjectorganizationunit").value = subjectorganizationunit; preview.querySelector("#subjectorganization").value = subjectorganization; preview.querySelector("#subjectcommonname").value = subjectcommonname; }); } cards.addEventListener("click", (e) => { if (e.target.classList.contains("delcert")) { if (confirm("Are you sure you want to delete this certificate?")) { fetch(window.location.origin + `/api/certs/delete`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ domain: certificates.find((item) => item.id === e.target.id).domain, }), }) .then((data) => data.json()) .then((jsondata) => { if (jsondata.status === "success") { getCerts(); alert("Certificate deleted successfully"); } else { alert("Failed to delete certificate"); } }) .catch((error) => { console.error(error); alert("An error occurred while deleting the certificate"); }); } } });