change: repo name
add: editor button main workspace icon switch
This commit is contained in:
parent
0f64b0ebf1
commit
910c6c1334
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
<overlay id="__addonRef__-preferences" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml">
|
||||
<prefwindow id="zotero-prefs">
|
||||
<prefpane id="zotero-prefpane-__addonRef__" insertafter="zotero-prefpane-advanced" label="__addonRef__" image="chrome://__addonRef__/skin/favicon@2x.png" onpaneload="Zotero.Notero.prefs.initPreferences(document)">
|
||||
<prefpane id="zotero-prefpane-__addonRef__" insertafter="zotero-prefpane-advanced" label="__addonRef__" image="chrome://__addonRef__/skin/favicon@2x.png" onpaneload="Zotero.Knowledge4Zotero.prefs.initPreferences(document)">
|
||||
<preferences id="zotero-preferences-__addonRef__">
|
||||
<preference id="pref-__addonRef__-mainknowledgeid" name="extensions.zotero.__addonRef__.mainKnowledgeID" type="string" />
|
||||
</preferences>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 573 B After Width: | Height: | Size: 573 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
|
@ -13,7 +13,7 @@
|
|||
em:description="__description__"
|
||||
em:homepageURL="__homepage__"
|
||||
em:iconURL="chrome://__addonRef__/skin/favicon.png"
|
||||
em:updateURL="https://raw.githubusercontent.com/windingwind/Notero/master/update.rdf">>
|
||||
em:updateURL="https://raw.githubusercontent.com/windingwind/Knowledge4Zotero/master/update.rdf">>
|
||||
<em:type>2</em:type>
|
||||
<em:targetApplication RDF:resource="rdf:#$x61SL3"/>
|
||||
<em:targetApplication>
|
||||
|
|
|
|||
14
package.json
14
package.json
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"name": "notero",
|
||||
"addonName": "Notero",
|
||||
"addonID": "notero@windingwind.com",
|
||||
"addonRef": "Notero",
|
||||
"name": "knowledge-for-zotero",
|
||||
"addonName": "Knowledge for Zotero",
|
||||
"addonID": "Knowledge4Zotero@windingwind.com",
|
||||
"addonRef": "Knowledge4Zotero",
|
||||
"version": "0.0.0",
|
||||
"description": "Knowledge management for Zotero",
|
||||
"main": "src/index.js",
|
||||
|
|
@ -13,14 +13,14 @@
|
|||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/windingwind/Notero.git"
|
||||
"url": "git+https://github.com/windingwind/Knowledge4Zotero.git"
|
||||
},
|
||||
"author": "windingwind",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"bugs": {
|
||||
"url": "https://github.com/windingwind/Notero/issues"
|
||||
"url": "https://github.com/windingwind/Knowledge4Zotero/issues"
|
||||
},
|
||||
"homepage": "https://github.com/windingwind/Notero#readme",
|
||||
"homepage": "https://github.com/windingwind/Knowledge4Zotero#readme",
|
||||
"dependencies": {
|
||||
"compressing": "^1.5.1",
|
||||
"esbuild": "^0.14.34",
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import AddonEvents from "./events";
|
|||
import AddonViews from "./views";
|
||||
import AddonPrefs from "./prefs";
|
||||
|
||||
class Notero {
|
||||
class Knowledge4Zotero {
|
||||
public events: AddonEvents;
|
||||
public views: AddonViews;
|
||||
public prefs: AddonPrefs;
|
||||
|
|
@ -14,4 +14,4 @@ class Notero {
|
|||
}
|
||||
}
|
||||
|
||||
export default Notero;
|
||||
export default Knowledge4Zotero;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
class AddonBase {
|
||||
protected _Addon: Notero;
|
||||
constructor(parent: Notero) {
|
||||
protected _Addon: Knowledge4Zotero;
|
||||
constructor(parent: Knowledge4Zotero) {
|
||||
this._Addon = parent;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
import { AddonBase, EditorMessage } from "./base";
|
||||
|
||||
class AddonEvents extends AddonBase {
|
||||
constructor(parent: Notero) {
|
||||
constructor(parent: Knowledge4Zotero) {
|
||||
super(parent);
|
||||
}
|
||||
|
||||
public async onInit() {
|
||||
Zotero.debug("Notero: init called");
|
||||
Zotero.debug("Knowledge4Zotero: init called");
|
||||
this.addNoteInstanceListener();
|
||||
this.resetState();
|
||||
}
|
||||
|
|
@ -24,49 +24,54 @@ class AddonEvents extends AddonBase {
|
|||
}
|
||||
|
||||
public async onEditorEvent(message: EditorMessage) {
|
||||
Zotero.debug(`Notero: onEditorEvent\n${String(message)}`);
|
||||
switch (message.type) {
|
||||
case "addNoteInstance":
|
||||
let mainKnowledgeID = parseInt(
|
||||
Zotero.Prefs.get("Notero.mainKnowledgeID")
|
||||
);
|
||||
await message.content.editorInstance._initPromise;
|
||||
Zotero.debug(`Knowledge4Zotero: onEditorEvent\n${String(message)}`);
|
||||
if (message.type === "addNoteInstance") {
|
||||
let mainKnowledgeID = parseInt(
|
||||
Zotero.Prefs.get("Knowledge4Zotero.mainKnowledgeID")
|
||||
);
|
||||
await message.content.editorInstance._initPromise;
|
||||
|
||||
if (message.content.editorInstance._item.id !== mainKnowledgeID) {
|
||||
Zotero.debug(`Notero: main Knowledge`);
|
||||
this._Addon.views.addEditorButton(
|
||||
message.content.editorInstance,
|
||||
"setMainKnowledge",
|
||||
"Use Current Note as Knowledge Workspace",
|
||||
new EditorMessage("setMainKnowledge", {})
|
||||
);
|
||||
this._Addon.views.addEditorButton(
|
||||
message.content.editorInstance,
|
||||
"addToKnowledge",
|
||||
"Add Note Link to Knowledge Workspace",
|
||||
new EditorMessage("addToKnowledge", {})
|
||||
);
|
||||
}
|
||||
break;
|
||||
let isMainKnowledge =
|
||||
message.content.editorInstance._item.id === mainKnowledgeID;
|
||||
|
||||
case "addToKnowledge":
|
||||
/*
|
||||
Zotero.debug(`Knowledge4Zotero: main Knowledge`);
|
||||
this._Addon.views.addEditorButton(
|
||||
message.content.editorInstance,
|
||||
"mainKnowledge",
|
||||
isMainKnowledge ? "isMainKnowledge" : "setMainKnowledge",
|
||||
isMainKnowledge
|
||||
? "This Note is Knowledge Workspace"
|
||||
: "Use Current Note as Knowledge Workspace",
|
||||
new EditorMessage("setMainKnowledge", {})
|
||||
);
|
||||
this._Addon.views.addEditorButton(
|
||||
message.content.editorInstance,
|
||||
"addToKnowledge",
|
||||
"addToKnowledge",
|
||||
"Add Note Link to Knowledge Workspace",
|
||||
new EditorMessage("addToKnowledge", {})
|
||||
);
|
||||
} else if (message.type === "addToKnowledge") {
|
||||
/*
|
||||
message.content = {
|
||||
editorInstance
|
||||
}
|
||||
*/
|
||||
// TODO: Complete this part
|
||||
Zotero.debug("Notero: addToKnowledge");
|
||||
break;
|
||||
case "setMainKnowledge":
|
||||
/*
|
||||
// TODO: Complete this part
|
||||
Zotero.debug("Knowledge4Zotero: addToKnowledge");
|
||||
} else if (message.type === "setMainKnowledge") {
|
||||
/*
|
||||
message.content = {
|
||||
editorInstance
|
||||
}
|
||||
*/
|
||||
// TODO: Complete this part
|
||||
Zotero.debug("Notero: addToKnowledge");
|
||||
if (Zotero.Prefs.get("Notero.mainKnowledgeID")) {
|
||||
// TODO: Complete this part
|
||||
Zotero.debug("Knowledge4Zotero: setMainKnowledge");
|
||||
let mainKnowledgeID = parseInt(
|
||||
Zotero.Prefs.get("Knowledge4Zotero.mainKnowledgeID")
|
||||
);
|
||||
if (message.content.editorInstance._item.id !== mainKnowledgeID) {
|
||||
if (Zotero.Prefs.get("Knowledge4Zotero.mainKnowledgeID")) {
|
||||
let confirmChange = confirm(
|
||||
"Will remove current Knowledge Workspace. Confirm?"
|
||||
);
|
||||
|
|
@ -75,7 +80,7 @@ class AddonEvents extends AddonBase {
|
|||
}
|
||||
}
|
||||
Zotero.Prefs.set(
|
||||
"Notero.mainKnowledgeID",
|
||||
"Knowledge4Zotero.mainKnowledgeID",
|
||||
message.content.editorInstance._item.id
|
||||
);
|
||||
// Set the button to selected state
|
||||
|
|
@ -85,9 +90,21 @@ class AddonEvents extends AddonBase {
|
|||
"This Note is Knowledge Workspace"
|
||||
);
|
||||
// TODO: update workspace window here
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
for (let editor of Zotero.Notes._editorInstances) {
|
||||
await editor._initPromise;
|
||||
if (editor._item.id === mainKnowledgeID) {
|
||||
let button =
|
||||
editor._iframeWindow.document.getElementById("mainKnowledge");
|
||||
if (button) {
|
||||
this._Addon.views.changeEditorButton(
|
||||
button,
|
||||
"setMainKnowledge",
|
||||
"Use Current Note as Knowledge Workspace"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
import Notero from "./Notero";
|
||||
import Knowledge4Zotero from "./addon";
|
||||
|
||||
Zotero.Notero = new Notero();
|
||||
Zotero.Knowledge4Zotero = new Knowledge4Zotero();
|
||||
|
||||
window.addEventListener(
|
||||
"load",
|
||||
async function (e) {
|
||||
Zotero.Notero.events.onInit();
|
||||
Zotero.Knowledge4Zotero.events.onInit();
|
||||
},
|
||||
false
|
||||
);
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@ import { AddonBase } from "./base";
|
|||
|
||||
class AddonPrefs extends AddonBase {
|
||||
private _document: Document;
|
||||
constructor(parent: Notero) {
|
||||
constructor(parent: Knowledge4Zotero) {
|
||||
super(parent);
|
||||
}
|
||||
initPreferences(_document: Document) {
|
||||
this._document = _document;
|
||||
Zotero.debug("Notero: Initialize preferences.");
|
||||
Zotero.debug("Knowledge4Zotero: Initialize preferences.");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@ class AddonViews extends AddonBase {
|
|||
progressWindowIcon: object;
|
||||
editorIcon: object;
|
||||
|
||||
constructor(parent: Notero) {
|
||||
constructor(parent: Knowledge4Zotero) {
|
||||
super(parent);
|
||||
this.progressWindowIcon = {
|
||||
success: "chrome://zotero/skin/tick.png",
|
||||
fail: "chrome://zotero/skin/cross.png",
|
||||
default: "chrome://notero/skin/favicon.png",
|
||||
default: "chrome://Knowledge4Zotero/skin/favicon.png",
|
||||
};
|
||||
this.editorIcon = {
|
||||
addToKnowledge: `<svg t="1651124422933" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3269" width="24" height="24"><path d="M896.00324 352c70.7 0 128-57.3 128-128 0-70.6-57.4-128-128-128-70.7 0-128 57.3-128 128 0 18.8 4.1 36.7 11.3 52.8 2.7 6 1.4 13.1-3.3 17.8l-24.2 24.2c-5.7 5.7-14.9 6.3-21.2 1.2-38.1-30.1-86.3-48-138.6-48-18.8 0-37.1 2.3-54.6 6.7-6.9 1.7-14.1-1.4-17.7-7.5l-6.6-11.4c-3.4-5.8-2.7-13.1 1.6-18.3 18.6-22.6 29.7-51.6 29.3-83.2C543.10324 89 486.30324 32.6 417.00324 32c-70.6-0.6-128.1 56.1-129 126.3-0.9 69.5 56.5 128.6 126 129.6 9.4 0.1 18.5-0.7 27.4-2.5 6.8-1.4 13.6 1.7 17.1 7.7l2.2 3.8c4 7 2.2 15.9-4.2 20.7-42.4 32.3-73 79.4-84 133.6-1.5 7.4-8.1 12.7-15.7 12.7h-94.1c-6.6 0-12.6-4-14.9-10.2-18.1-48-64.3-82.2-118.5-82.8C58.70324 370.3 0.50324 427.6 0.00324 498.1-0.49676 569.2 57.00324 627 128.00324 627c56.7 0 104.8-36.9 121.6-87.9 2.2-6.6 8.3-11.1 15.2-11.1h92c7.6 0 14.2 5.4 15.7 12.9 9.5 46.7 33.5 88 67 119.2 5.4 5 6.6 13.2 2.9 19.6l-21.7 37.6c-3.7 6.3-11.1 9.4-18.2 7.4-11.1-3.1-22.7-4.7-34.8-4.7-69.7 0.1-127 56.8-127.8 126.6-0.8 71.7 57.4 130 129.1 129.4 69.5-0.6 126.3-57.3 126.9-126.8 0.3-28-8.5-53.9-23.5-75.1-3.6-5.1-3.9-11.8-0.8-17.2l24.9-43.1c3.9-6.7 12-9.7 19.3-7 23.7 8.6 49.3 13.2 76 13.2 34.9 0 67.9-8 97.3-22.2 7.6-3.7 16.7-0.9 20.9 6.4l37 64c-26.3 23.5-43 57.7-43 95.8 0 70.9 58 128.5 128.9 128 69.7-0.5 126.2-56.7 127.1-126.3 0.9-70.1-57-129.3-127.1-129.7-6.2 0-12.3 0.4-18.3 1.2-6.5 0.9-12.8-2.2-16.1-7.8l-39.2-67.9c-3.4-5.9-2.7-13.3 1.7-18.4 34.2-39.3 54.9-90.7 54.9-147 0-38.9-9.9-75.5-27.4-107.4-3.4-6.2-2.2-13.9 2.8-18.9l28.4-28.4c4.9-4.9 12.4-6 18.7-2.9 17.4 8.6 36.9 13.5 57.6 13.5z m0-192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM128.00324 563c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z m240 349c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z m464-112c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM416.00324 224c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z m289.1 385.1C674.90324 639.4 634.70324 656 592.00324 656s-82.9-16.6-113.1-46.9C448.60324 578.9 432.00324 538.7 432.00324 496s16.6-82.9 46.9-113.1C509.10324 352.6 549.30324 336 592.00324 336s82.9 16.6 113.1 46.9C735.40324 413.1 752.00324 453.3 752.00324 496s-16.6 82.9-46.9 113.1z" p-id="3270"></path></svg>`,
|
||||
|
|
@ -20,6 +20,7 @@ class AddonViews extends AddonBase {
|
|||
|
||||
async addEditorButton(
|
||||
editorInstances: EditorInstance,
|
||||
id: string,
|
||||
icon: string,
|
||||
title: string,
|
||||
message: EditorMessage
|
||||
|
|
@ -31,7 +32,7 @@ class AddonViews extends AddonBase {
|
|||
let toolbar = _document.getElementsByClassName("middle")[0];
|
||||
let button = _document.createElement("button");
|
||||
button.setAttribute("class", "toolbar-button");
|
||||
button.setAttribute("id", title);
|
||||
button.setAttribute("id", id);
|
||||
button.setAttribute("title", title);
|
||||
button.innerHTML = this.editorIcon[icon];
|
||||
toolbar.append(button);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
declare interface Notero {
|
||||
declare interface Knowledge4Zotero {
|
||||
events: import("../src/events");
|
||||
views: import("../src/view");
|
||||
prefs: import("../src/prefs");
|
||||
|
|
@ -128,7 +128,7 @@ declare const Zotero: {
|
|||
};
|
||||
Reader: Reader;
|
||||
Notes: Notes;
|
||||
Notero: import("../src/Notero");
|
||||
Knowledge4Zotero: import("../src/addon");
|
||||
};
|
||||
|
||||
declare const ZoteroPane: {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
|
||||
<rdf:Description rdf:about="urn:mozilla:extension:notero@windingwind.com">
|
||||
<rdf:Description rdf:about="urn:mozilla:extension:Knowledge4Zotero@windingwind.com">
|
||||
<em:updates>
|
||||
<rdf:Seq>
|
||||
<rdf:li>
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
<em:id>zotero@chnm.gmu.edu</em:id>
|
||||
<em:minVersion>5.0</em:minVersion>
|
||||
<em:maxVersion>*</em:maxVersion>
|
||||
<em:updateLink>https://github.com/windingwind/Notero/releases/latest/download/notero.xpi</em:updateLink>
|
||||
<em:updateLink>https://github.com/windingwind/Knowledge4Zotero/releases/latest/download/Knowledge4Zotero.xpi</em:updateLink>
|
||||
</rdf:Description>
|
||||
</em:targetApplication>
|
||||
<em:targetApplication>
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
<em:id>juris-m@juris-m.github.io</em:id>
|
||||
<em:minVersion>5.0</em:minVersion>
|
||||
<em:maxVersion>*</em:maxVersion>
|
||||
<em:updateLink>https://github.com/windingwind/Notero/releases/latest/download/notero.xpi</em:updateLink>
|
||||
<em:updateLink>https://github.com/windingwind/Knowledge4Zotero/releases/latest/download/Knowledge4Zotero.xpi</em:updateLink>
|
||||
</rdf:Description>
|
||||
</em:targetApplication>
|
||||
</rdf:Description>
|
||||
|
|
|
|||
Loading…
Reference in New Issue