Skip to content

Commit

Permalink
prefs
Browse files Browse the repository at this point in the history
  • Loading branch information
MuiseDestiny committed Mar 6, 2023
1 parent 47328bd commit 18a7154
Show file tree
Hide file tree
Showing 7 changed files with 260 additions and 205 deletions.
Binary file added addon/chrome/content/icons/favicon-small.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
51 changes: 31 additions & 20 deletions addon/chrome/content/preferences.xhtml
Original file line number Diff line number Diff line change
@@ -1,28 +1,39 @@
<vbox
id="zotero-prefpane-__addonRef__"
onload="Zotero.AddonTemplate.hooks.onPrefsEvent('load', {window})"
onload="Zotero.ZoteroStyle.hooks.onPrefsEvent('load', {window})"
>
<groupbox>
<label><html:h2>&zotero.__addonRef__.pref.title;</html:h2></label>
<checkbox
id="zotero-prefpane-__addonRef__-enable"
label="&zotero.__addonRef__.pref.enable.label;"
preference="extensions.zotero.__addonRef__.enable"
/>
<hbox>
<html:label for="zotero-prefpane-__addonRef__-input"
>&zotero.__addonRef__.pref.input.label;</html:label
>
<html:input
type="text"
id="zotero-prefpane-__addonRef__-input"
preference="extensions.zotero.__addonRef__.input"
></html:input>
</hbox>
<label>
<html:h3>Functions</html:h3>
</label>
<checkbox label="IF" preference="extensions.zotero.__addonRef__.function.IFColumn.enable" />
<checkbox label="Title" preference="extensions.zotero.__addonRef__.function.titleColumn.enable"/>
<checkbox label="Tags" preference="extensions.zotero.__addonRef__.function.tagsColumn.enable" />
<checkbox label="#Tags" preference="extensions.zotero.__addonRef__.function.textTagsColumn.enable" />
<checkbox label="Rating" preference="extensions.zotero.__addonRef__.function.ratingColumn.enable" />
<checkbox label="Progress" preference="extensions.zotero.__addonRef__.function.progressColumn.enable" />
<checkbox label="Graph View" preference="extensions.zotero.__addonRef__.function.graphView.enable" />
<checkbox label="Nested Tags" preference="extensions.zotero.__addonRef__.function.Tags.enable" />
<checkbox label="View Groups" preference="extensions.zotero.__addonRef__.function.columnsViews.enable" />
<checkbox label="Item Type Filter" preference="extensions.zotero.__addonRef__.function.itemTypeFilter.enable" />
<checkbox label="Publication Tags" preference="extensions.zotero.__addonRef__.function.PublicationTagsColumn.enable" />
<checkbox label="Annotation Colors" preference="extensions.zotero.__addonRef__.function.annotationColors.enable" />
<checkbox label="Add Number To Collection Tree" preference="extensions.zotero.__addonRef__.function.addNumberToCollectionTree.enable" />
</groupbox>
<groupbox>
<label>
<html:h3>Links</html:h3>
</label>
<description><label class="zotero-text-link" value="Help"
href="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/MuiseDestiny/zotero-style#zotero-style"></label></description>
<description><label class="zotero-text-link" value="History"
href="https://github.com/MuiseDestiny/zotero-style/releases"></label></description>
<description><label class="zotero-text-link" value="Share"
href="https://github.com/MuiseDestiny/zotero-style/issues/48"></label></description>
<description><label class="zotero-text-link" value="Issue"
href="https://github.com/MuiseDestiny/zotero-style/issues/new/choose"></label></description>
</groupbox>
</vbox>
<vbox>
<label
value="&zotero.__addonRef__.help.version.label; &zotero.__addonRef__.help.releasetime.label;"
></label>
<label value="&zotero.__addonRef__.help.version.label; &zotero.__addonRef__.help.releasetime.label;"></label>
</vbox>
7 changes: 1 addition & 6 deletions addon/chrome/locale/en-US/overlay.dtd
Original file line number Diff line number Diff line change
@@ -1,7 +1,2 @@
<!ENTITY zotero.__addonRef__.pref.title "Addon Template Example">
<!ENTITY zotero.__addonRef__.itemmenu.test.label "addon template">
<!ENTITY zotero.__addonRef__.pref.enable.label "Enable">
<!ENTITY zotero.__addonRef__.pref.input.label "Input">

<!ENTITY zotero.__addonRef__.help.version.label "__addonName__ VERSION __buildVersion__">
<!ENTITY zotero.__addonRef__.help.version.label "__addonName__ __buildVersion__">
<!ENTITY zotero.__addonRef__.help.releasetime.label "Build __buildTime__">
7 changes: 1 addition & 6 deletions addon/chrome/locale/zh-CN/overlay.dtd
Original file line number Diff line number Diff line change
@@ -1,7 +1,2 @@
<!ENTITY zotero.__addonRef__.pref.title "插件模板设置示例">
<!ENTITY zotero.__addonRef__.itemmenu.test.label "插件模板">
<!ENTITY zotero.__addonRef__.pref.enable.label "开启">
<!ENTITY zotero.__addonRef__.pref.input.label "输入">

<!ENTITY zotero.__addonRef__.help.version.label "__addonName__ 版本 __buildVersion__">
<!ENTITY zotero.__addonRef__.help.version.label "__addonName__ __buildVersion__">
<!ENTITY zotero.__addonRef__.help.releasetime.label "Build __buildTime__">
16 changes: 15 additions & 1 deletion src/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@ import { getString, initLocale } from "./modules/locale";
import Views from "./modules/views";
import Events from "./modules/events";
import AddonItem from "./modules/item";
import { registerPrefsScripts, registerPrefs } from "./modules/prefs";


Zotero._AddonItemGlobal = Zotero._AddonItemGlobal || new AddonItem()
const addonItem = Zotero._AddonItemGlobal


async function onStartup() {
registerPrefs();
// Register the callback in Zotero as an item observer
const notifierID = Zotero.Notifier.registerObserver(
{ notify: onNotify },
Expand Down Expand Up @@ -111,8 +114,19 @@ async function onNotify(
}
}

async function onPrefsEvent(type: string, data: { [key: string]: any }) {
switch (type) {
case "load":
registerPrefsScripts(data.window);
break;
default:
return;
}
}

export default {
onStartup,
onShutdown,
onNotify
onNotify,
onPrefsEvent
};
24 changes: 24 additions & 0 deletions src/modules/prefs.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { config } from "../../package.json";


export function registerPrefs() {
const prefOptions = {
pluginID: config.addonID,
src: rootURI + "chrome/content/preferences.xhtml",
label: "Style",
image: `chrome:https://${config.addonRef}/content/icons/favicon-small.png`,
extraDTD: [`chrome:https://${config.addonRef}/locale/overlay.dtd`],
defaultXUL: true,
};
ztoolkit.PreferencePane.register(prefOptions);
}

export function registerPrefsScripts(_window: Window) {
if (!addon.data.prefs) {
addon.data.prefs = {
window: _window,
};
} else {
addon.data.prefs.window = _window;
}
}
Loading

0 comments on commit 18a7154

Please sign in to comment.