Academic Journal Entry Generator

Academic Journal Entry Generator

${analysis || "No analysis provided."}

Key Takeaways

${takeaways || "No takeaways provided."}

Open Questions

${questions || "No questions provided."}

`; } function ajg_generatePlainText() { // Generate a plain-text version for copy-pasting return ` ACADEMIC JOURNAL ENTRY ======================== SOURCE ---------------- Title: ${ajg_state.title || "N/A"} Author(s): ${ajg_state.author || "N/A"} Year: ${ajg_state.year || "N/A"} Source Type: ${ajg_state.sourceType || "N/A"} Source Details: ${ajg_state.sourceDetails || "N/A"} ======================== SUMMARY ---------------- ${ajg_state.summary || "No summary provided."} ANALYSIS / CRITIQUE ---------------- ${ajg_state.analysis || "No analysis provided."} KEY TAKEAWAYS ---------------- ${ajg_state.takeaways || "No takeaways provided."} OPEN QUESTIONS ---------------- ${ajg_state.questions || "No questions provided."} `; } function ajg_copyToClipboard() { if (!ajg_copyBtn) return; const plainText = ajg_generatePlainText(); try { navigator.clipboard.writeText(plainText); ajg_copyBtn.textContent = "Copied!"; setTimeout(() => { ajg_copyBtn.textContent = "Copy as Plain Text"; }, 2000); } catch (err) { console.error("Failed to copy text: ", err); ajg_copyBtn.textContent = "Error"; setTimeout(() => { ajg_copyBtn.textContent = "Copy as Plain Text"; }, 2000); } } // --- TAB NAVIGATION --- window.ajg_showTab = function (tabIndex, element) { if (!ajg_tabPanels || !ajg_tabLinks) return; ajg_currentTab = tabIndex; ajg_tabPanels.forEach((panel) => panel.classList.remove("ajg-active")); ajg_tabLinks.forEach((link) => link.classList.remove("ajg-active")); if (ajg_tabPanels[tabIndex]) { ajg_tabPanels[tabIndex].classList.add("ajg-active"); } if (element) { element.classList.add("ajg-active"); } ajg_updateNavButtons(); }; function ajg_goToNextTab() { if (ajg_currentTab < ajg_tabPanels.length - 1) { ajg_currentTab++; ajg_showTab(ajg_currentTab, ajg_tabLinks[ajg_currentTab]); } } function ajg_goToPrevTab() { if (ajg_currentTab > 0) { ajg_currentTab--; ajg_showTab(ajg_currentTab, ajg_tabLinks[ajg_currentTab]); } } function ajg_updateNavButtons() { if (!ajg_prevBtn || !ajg_nextBtn) return; ajg_prevBtn.disabled = ajg_currentTab === 0; ajg_nextBtn.disabled = ajg_currentTab === ajg_tabPanels.length - 1; } // --- PDF EXPORT --- function ajg_downloadPDF() { if (typeof jspdf === "undefined") { console.error("jsPDF library not loaded."); alert("Error: PDF generation library failed to load."); return; } // Temporarily hide buttons from PDF const actionButtons = document.querySelector(".ajg-action-buttons-wrapper"); const originalDisplay = actionButtons.style.display; actionButtons.style.display = 'none'; const { jsPDF } = jspdf; const doc = new jsPDF({ orientation: "p", unit: "pt", format: "a4", }); const previewContent = document.getElementById("ajg-preview-content"); if (!previewContent) { console.error("PDF Error: Preview content not found"); actionButtons.style.display = originalDisplay; return; } doc.html(previewContent, { callback: function (doc) { doc.save("Academic-Journal-Entry.pdf"); // Restore buttons actionButtons.style.display = 'flex'; }, x: 40, y: 40, width: 515, // A4 width 595pt minus 2*40pt margins windowWidth: previewContent.scrollWidth, margin: [40, 40, 40, 40] }); } })();
Scroll to Top