From b5e649f1985ca9b22677f16f12852f4317b76f1c Mon Sep 17 00:00:00 2001 From: xiangyu <3170102889@zju.edu.cn> Date: Sat, 11 Jun 2022 16:22:03 +0800 Subject: [PATCH] fix: system template modification bug fix: export pdf menu bug --- src/events.ts | 1 + src/template.ts | 32 ++++++++++++++++++++++++++++++-- src/views.ts | 4 ++++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/events.ts b/src/events.ts index 16bd1bf..07d5011 100644 --- a/src/events.ts +++ b/src/events.ts @@ -73,6 +73,7 @@ class AddonEvents extends AddonBase { _contextPane.setAttribute("collapsed", true); _tabToolbar.hidden = true; _tabCover.hidden = true; + this._Addon.views.switchRealMenuBar(false); this._Addon.views.switchKey(false); } else { this._Addon.views.switchRealMenuBar(true); diff --git a/src/template.ts b/src/template.ts index 07a3f3c..298182d 100644 --- a/src/template.ts +++ b/src/template.ts @@ -2,9 +2,17 @@ import { AddonBase, NoteTemplate } from "./base"; class AddonTemplate extends AddonBase { private _window: Window; + _systemTemplateNames: string[]; _defaultTemplates: NoteTemplate[]; constructor(parent: Knowledge4Zotero) { super(parent); + this._systemTemplateNames = [ + "[QuickInsert]", + "[QuickBackLink]", + "[QuickImport]", + "[QuickNote]", + "[ExportMDFileName]", + ]; this._defaultTemplates = [ { name: "[QuickInsert]", @@ -128,11 +136,16 @@ class AddonTemplate extends AddonBase { deleteTemplate.setAttribute("disabled", "true"); } else { header.value = name; - header.removeAttribute("disabled"); + if (!this._systemTemplateNames.includes(name)) { + header.removeAttribute("disabled"); + deleteTemplate.removeAttribute("disabled"); + } else { + header.setAttribute("disabled", "true"); + deleteTemplate.setAttribute("disabled", "true"); + } text.value = templateText; text.removeAttribute("disabled"); saveTemplate.removeAttribute("disabled"); - deleteTemplate.removeAttribute("disabled"); } } @@ -186,6 +199,14 @@ class AddonTemplate extends AddonBase { const text: XUL.Textbox = this._window.document.getElementById("editor-textbox"); + if (this._systemTemplateNames.includes(name) && header.value !== name) { + this._Addon.views.showProgressWindow( + "Better Notes", + `Template ${name} is a system template. Modifying template name is not allowed.` + ); + return; + } + const template = this.getTemplateKey(name); template.name = header.value; template.text = text.value; @@ -203,6 +224,13 @@ class AddonTemplate extends AddonBase { deleteSelectedTemplate() { const name = this.getSelectedTemplateName(); + if (this._systemTemplateNames.includes(name)) { + this._Addon.views.showProgressWindow( + "Better Notes", + `Template ${name} is a system template. Removing system template is note allowed.` + ); + return; + } this.removeTemplate(name); this.updateTemplateView(); } diff --git a/src/views.ts b/src/views.ts index 9f209cf..b37bfa5 100644 --- a/src/views.ts +++ b/src/views.ts @@ -47,6 +47,10 @@ class AddonViews extends AddonBase { document .querySelectorAll(".menu-type-betternotes") .forEach((el) => ((el as HTMLElement).hidden = hidden)); + + // Disable Zotero pdf export + (document.getElementById("menu_export_files") as XUL.Element).disabled = + !hidden; } switchKey(disabled: boolean) {