Digital Contract Archive & Retrieval System

Digital Contract Archive & Retrieval

Securely store, search, and manage all your digital contracts.

Contract Archive

Signing Date: ${new Date(contract.signingDate+'T00:00:00').toLocaleDateString()}

Expiry Date: ${new Date(contract.expiryDate+'T00:00:00').toLocaleDateString()}

Contract Text

${contract.content}
`; modal.classList.remove('hidden'); setTimeout(() => { modal.classList.remove('opacity-0'); modal.querySelector('.modal-content').classList.remove('scale-95'); }, 10); } function closeModal() { modal.classList.add('opacity-0'); modal.querySelector('.modal-content').classList.add('scale-95'); setTimeout(() => modal.classList.add('hidden'), 300); } closeModalBtn.addEventListener('click', closeModal); modal.addEventListener('click', e => { if (e.target === modal) closeModal(); }); // --- PDF GENERATION --- downloadPdfBtn.addEventListener('click', () => { pdfLoader.classList.remove('hidden'); downloadPdfBtn.disabled = true; try { const { jsPDF } = window.jspdf; const doc = new jsPDF(); const reportTitle = "Contract Archive Report"; doc.setFontSize(18); doc.text(reportTitle, 14, 22); doc.setFontSize(11); doc.setTextColor(100); doc.text(`Generated on: ${new Date().toLocaleDateString()}`, 14, 30); doc.text(`Filter Status: ${filterStatus.options[filterStatus.selectedIndex].text}`, 14, 38); const head = [['Title', 'Party A', 'Party B', 'Signing Date', 'Expiry Date', 'Status']]; const body = currentFilteredData.map(c => { const isExpired = new Date(c.expiryDate) < new Date(); return [ c.title, c.partyA, c.partyB, new Date(c.signingDate+'T00:00:00').toLocaleDateString(), new Date(c.expiryDate+'T00:00:00').toLocaleDateString(), isExpired ? 'Expired' : 'Active' ]; }); doc.autoTable({ head: head, body: body, startY: 45, theme: 'striped', headStyles: { fillColor: [22, 160, 133] } }); doc.save('Contract-Archive-Report.pdf'); } catch (e) { console.error("PDF generation failed:", e); alert("An error occurred while generating the PDF."); } finally { pdfLoader.classList.add('hidden'); downloadPdfBtn.disabled = false; } }); // --- INITIALIZATION --- renderContracts(); showTab(0); });
Scroll to Top