Files
zotero-notes-export-org/addon/content/scripts/preferences.js
2026-02-17 21:25:46 +01:00

77 lines
2.4 KiB
JavaScript

/* eslint-disable no-undef */
const OrgExportAnnotationsPrefs = {
init() {
try {
console.log("[OrgExportAnnotationsPrefs] Initializing preferences pane");
} catch (error) {
console.error("[OrgExportAnnotationsPrefs] Init error:", error);
}
},
async browseNotesPath() {
const fp = new FilePicker();
// Use browsingContext for Zotero 8+, fall back to window for Zotero 7
const context = window.browsingContext || window;
fp.init(context, "Select Notes Directory", fp.modeGetFolder);
const result = await new Promise((resolve) => fp.open(resolve));
if (result === fp.returnOK) {
const input = document.getElementById("orgexportannotations-notes-path");
if (input) {
input.value = fp.file.path;
input.dispatchEvent(new Event("change"));
}
}
},
async browsePandocPath() {
const fp = new FilePicker();
// Use browsingContext for Zotero 8+, fall back to window for Zotero 7
const context = window.browsingContext || window;
fp.init(context, "Select Pandoc Executable", fp.modeOpen);
const result = await new Promise((resolve) => fp.open(resolve));
if (result === fp.returnOK) {
const input = document.getElementById("orgexportannotations-pandoc-path");
if (input) {
input.value = fp.file.path;
input.dispatchEvent(new Event("change"));
}
}
},
async testPandoc() {
const input = document.getElementById("orgexportannotations-pandoc-path");
const pandocPath = (input && input.value) || "pandoc";
try {
await Zotero.Utilities.Internal.exec(pandocPath, ["--version"]);
alert("Pandoc is working correctly!");
} catch (_error) {
alert(`Pandoc not found at: ${pandocPath}\n\nPlease check the path.`);
}
},
async exportAllNow() {
try {
if (Zotero.OrgExportAnnotations && Zotero.OrgExportAnnotations.hooks) {
await Zotero.OrgExportAnnotations.hooks.onMenuExportAll();
}
} catch (error) {
alert(`Export failed: ${error.message}`);
}
},
async forceExportAllNow() {
try {
if (Zotero.OrgExportAnnotations && Zotero.OrgExportAnnotations.hooks) {
await Zotero.OrgExportAnnotations.hooks.onMenuForceExportAll();
}
} catch (error) {
alert(`Force export failed: ${error.message}`);
}
},
};
window.OrgExportAnnotationsPrefs = OrgExportAnnotationsPrefs;