add: export open in folder

change: sync in quiet mode, ready for official release
This commit is contained in:
xiangyu 2022-12-14 11:56:51 +08:00
parent ed3bb8b488
commit ea0b26fc54
3 changed files with 39 additions and 6 deletions

View File

@ -318,10 +318,20 @@ class NoteExport extends AddonBase {
private async _exportDocx(filename: string) {
await Zotero.File.putContentsAsync(filename, this._docxBlob);
this._Addon.ZoteroViews.showProgressWindow(
const progress = this._Addon.ZoteroViews.showProgressWindow(
"Better Notes",
`Note Saved to ${filename}`
);
// Just a placeholder
progress.addDescription('<a href="https://zotero.org">Open Folder</a>');
(await this._Addon.ZoteroViews.getProgressDocument(progress))
.querySelector("label[href]")
.addEventListener("click", async (e) => {
e.stopPropagation();
e.preventDefault();
await Zotero.File.reveal(filename);
});
progress.setProgress(100);
}
private async _exportMD(
@ -342,10 +352,20 @@ class NoteExport extends AddonBase {
`Exporting MD file: ${filename}, content length: ${content.length}`
);
await Zotero.File.putContentsAsync(filename, content);
this._Addon.ZoteroViews.showProgressWindow(
const progress = this._Addon.ZoteroViews.showProgressWindow(
"Better Notes",
`Note Saved to ${filename}`
);
// Just a placeholder
progress.addDescription('<a href="https://zotero.org">Open Folder</a>');
(await this._Addon.ZoteroViews.getProgressDocument(progress))
.querySelector("label[href]")
.addEventListener("click", async (e) => {
e.stopPropagation();
e.preventDefault();
await Zotero.File.reveal(filename);
});
progress.setProgress(100);
if (deleteAfterExport) {
const _w: Window = ZoteroPane.findNoteWindow(note.id);
if (_w) {
@ -362,10 +382,20 @@ class NoteExport extends AddonBase {
filename,
this._Addon.NoteParse.parseNoteToFreemind(noteItem)
);
this._Addon.ZoteroViews.showProgressWindow(
const progress = this._Addon.ZoteroViews.showProgressWindow(
"Better Notes",
`Note Saved to ${filename}`
);
// Just a placeholder
progress.addDescription('<a href="https://zotero.org">Open Folder</a>');
(await this._Addon.ZoteroViews.getProgressDocument(progress))
.querySelector("label[href]")
.addEventListener("click", async (e) => {
e.stopPropagation();
e.preventDefault();
await Zotero.File.reveal(filename);
});
progress.setProgress(100);
}
private async _getFileName(

View File

@ -131,9 +131,7 @@ class SyncController extends AddonBase {
}
}
// We set quiet false by default in pre-releases
// to test the syncing
async doSync(items: Zotero.Item[] = null, quiet: boolean = false) {
async doSync(items: Zotero.Item[] = null, quiet: boolean = true) {
if (this.sycnLock) {
// Only allow one task
return;

View File

@ -409,6 +409,11 @@ class ZoteroViews extends AddonBase {
return;
}
public async getProgressDocument(progressWindow): Promise<Document> {
await this.waitProgressWindow(progressWindow);
return progressWindow.progress._hbox.ownerDocument;
}
public createXULElement(doc: Document, options: XULElementOptions) {
const createElement: () => XUL.Element =
options.tag === "fragment"