Index: gc_lang/fr/webext/panel/lex_editor.css
==================================================================
--- gc_lang/fr/webext/panel/lex_editor.css
+++ gc_lang/fr/webext/panel/lex_editor.css
@@ -209,10 +209,14 @@
#lexicon_page {
}
+
+#no_elem_line {
+ display: none;
+}
#save_button {
display: none;
float: right;
padding: 2px 20px;
Index: gc_lang/fr/webext/panel/lex_editor.html
==================================================================
--- gc_lang/fr/webext/panel/lex_editor.html
+++ gc_lang/fr/webext/panel/lex_editor.html
@@ -254,13 +254,13 @@
Mots générés
Forme fléchie (lemme), étiquettes
-
+
@@ -271,10 +271,12 @@
Enregistrer
Votre lexique
+
+ Aucun élément.
Index: gc_lang/fr/webext/panel/lex_editor.js
==================================================================
--- gc_lang/fr/webext/panel/lex_editor.js
+++ gc_lang/fr/webext/panel/lex_editor.js
@@ -27,52 +27,60 @@
function showError (e) {
console.error(e.fileName + "\n" + e.name + "\nline: " + e.lineNumber + "\n" + e.message);
}
-document.getElementById("lexicon_button").addEventListener("click", () => { oPage.showPage("lexicon"); }, false);
-document.getElementById("add_word_button").addEventListener("click", () => { oPage.showPage("lemma"); }, false);
+document.getElementById("lexicon_button").addEventListener("click", () => { oWidgets.showPage("lexicon"); }, false);
+document.getElementById("add_word_button").addEventListener("click", () => { oWidgets.showPage("lemma"); }, false);
-document.getElementById("table").addEventListener("click", (xEvent) => { oPage.onTableClick(xEvent); }, false);
+document.getElementById("table").addEventListener("click", (xEvent) => { oWidgets.onTableClick(xEvent); }, false);
document.getElementById("save_button").addEventListener("click", () => { oLexicon.save(); }, false);
-document.getElementById("editor").addEventListener("click", (xEvent) => { oPage.onSelectionClick(xEvent); }, false);
-document.getElementById("lemma").addEventListener("keyup", () => { oPage.onWrite(); }, false);
-document.getElementById("lemma2").addEventListener("keyup", () => { oPage.onWrite2(); }, false);
-document.getElementById("verb_pattern").addEventListener("keyup", () => { oFlex.update(); }, false);
-document.getElementById("flexion").addEventListener("keyup", () => { oFlex.update(); }, false);
-document.getElementById("tags").addEventListener("keyup", () => { oFlex.update(); }, false);
-document.getElementById("add_to_lexicon").addEventListener("click", () => { oFlex.addToLexicon(); }, false);
+document.getElementById("editor").addEventListener("click", (xEvent) => { oWidgets.onSelectionClick(xEvent); }, false);
+document.getElementById("lemma").addEventListener("keyup", () => { oWidgets.onWrite(); }, false);
+document.getElementById("lemma2").addEventListener("keyup", () => { oWidgets.onWrite2(); }, false);
+document.getElementById("verb_pattern").addEventListener("keyup", () => { oFlexGen.update(); }, false);
+document.getElementById("flexion").addEventListener("keyup", () => { oFlexGen.update(); }, false);
+document.getElementById("tags").addEventListener("keyup", () => { oFlexGen.update(); }, false);
+document.getElementById("add_to_lexicon").addEventListener("click", () => { oFlexGen.addToLexicon(); }, false);
/*
ACTIONS
*/
-const oPage = {
+const oWidgets = {
showPage: function (sPage) {
if (sPage == "lexicon") {
- document.getElementById("add_word_page").style.display = "none";
- document.getElementById("lexicon_page").style.display = "block";
+ this.hideElement("add_word_page");
+ this.showElement("lexicon_page");
document.getElementById("lexicon_button").style.backgroundColor = "hsl(210, 80%, 90%)";
document.getElementById("add_word_button").style.backgroundColor = "hsl(210, 10%, 95%)";
} else {
- document.getElementById("lexicon_page").style.display = "none";
- document.getElementById("add_word_page").style.display = "block";
+ this.hideElement("lexicon_page");
+ this.showElement("add_word_page");
document.getElementById("lexicon_button").style.backgroundColor = "hsl(210, 10%, 95%)";
document.getElementById("add_word_button").style.backgroundColor = "hsl(210, 80%, 90%)";
}
},
- showEditor: function () {
- document.getElementById("editor").style.display = "block";
+ showElement: function (sElemId) {
+ if (document.getElementById(sElemId)) {
+ document.getElementById(sElemId).style.display = "block";
+ } else {
+ console.log("HTML node named <" + sElemId + "> not found.")
+ }
},
- hideEditor: function () {
- document.getElementById("editor").style.display = "none";
+ hideElement: function (sElemId) {
+ if (document.getElementById(sElemId)) {
+ document.getElementById(sElemId).style.display = "none";
+ } else {
+ console.log("HTML node named <" + sElemId + "> not found.")
+ }
},
hideAllSections: function () {
for (let xElem of document.getElementById("sections").childNodes) {
if (xElem.id) {
@@ -82,19 +90,17 @@
},
showSection: function (sName) {
this.clear();
this.hideAllSections();
- if (document.getElementById(sName)) {
- document.getElementById(sName).style.display = "block";
- }
+ this.showElement(sName);
},
clear: function () {
try {
document.getElementById("lemma2").value = "";
- this.hideWord2();
+ this.hideElement("word_section2");
// nom, adjectif, noms propres
for (let xElem of document.getElementsByName("POS")) {
xElem.checked = false;
}
for (let xElem of document.getElementsByName("POS2")) {
@@ -134,14 +140,14 @@
try {
let xElem = xEvent.target;
if (xElem.id) {
if (xElem.id.startsWith("select_")) {
this.showSection("section_" + xElem.id.slice(7));
- oFlex.setMainTag(xElem.dataset.tag);
- oFlex.update();
+ oFlexGen.setMainTag(xElem.dataset.tag);
+ oFlexGen.update();
} else if (xElem.id.startsWith("up_")) {
- oFlex.update();
+ oFlexGen.update();
}
}
}
catch (e) {
showError(e);
@@ -148,50 +154,26 @@
}
},
onWrite: function () {
if (document.getElementById("lemma").value.trim() !== "") {
- this.showEditor();
- oFlex.update();
+ this.showElement("editor");
+ oFlexGen.update();
} else {
this.showSection("section_vide");
- this.hideEditor();
- this.hideActions();
+ this.hideElement("editor");
+ this.hideElement("actions");
}
},
onWrite2: function () {
if (document.getElementById("lemma2").value.trim() !== "") {
- this.showWord2();
- oFlex.update();
+ this.showElement("word_section2");
+ oFlexGen.update();
} else {
- this.hideWord2();
- }
- },
-
- showWord2: function () {
- document.getElementById("word_section2").style.display = "block";
- },
-
- hideWord2: function () {
- document.getElementById("word_section2").style.display = "none";
- },
-
- showActions: function () {
- document.getElementById("actions").style.display = "block";
- },
-
- hideActions: function () {
- document.getElementById("actions").style.display = "none";
- },
-
- showSaveButton: function () {
- document.getElementById("save_button").style.display = "block";
- },
-
- hideSaveButton: function () {
- document.getElementById("save_button").style.display = "none";
+ this.hideElement("word_section2");
+ }
},
createTableHeader: function () {
let xRowNode = createNode("tr");
xRowNode.appendChild(createNode("th", { textContent: "·" }));
@@ -209,10 +191,40 @@
xRowNode.appendChild(createNode("td", { textContent: sFlexion }));
xRowNode.appendChild(createNode("td", { textContent: sLemma }));
xRowNode.appendChild(createNode("td", { textContent: sTags }));
return xRowNode;
},
+
+ displayTable: function (lFlex) {
+ this.clearTable();
+ if (lFlex.length > 0) {
+ let xTable = document.getElementById("table");
+ let n = 0;
+ this.hideElement("no_elem_line");
+ xTable.appendChild(this.createTableHeader());
+ for (let [sFlexion, sLemma, sTags] of lFlex) {
+ xTable.appendChild(this.createRowNode(n, sFlexion, sLemma, sTags));
+ n += 1;
+ }
+ } else {
+ this.showElement("no_elem_line");
+ }
+ },
+
+ addEntriesToTable: function (n, lFlex) {
+ let xTable = document.getElementById("table");
+ if (lFlex.length > 0) {
+ if (document.getElementById("no_elem_line").style.display !== "none") {
+ this.hideElement("no_elem_line");
+ xTable.appendChild(this.createTableHeader());
+ }
+ for (let [sFlexion, sLemma, sTags] of lFlex) {
+ xTable.appendChild(this.createRowNode(n, sFlexion, sLemma, sTags));
+ n += 1;
+ }
+ }
+ },
clearTable: function () {
let xTable = document.getElementById("table");
while (xTable.firstChild) {
xTable.removeChild(xTable.firstChild);
@@ -224,12 +236,12 @@
let xElem = xEvent.target;
if (xElem.className) {
if (xElem.className == "delete_entry") {
let iEntry = xElem.dataset.id_entry
oLexicon.lFlexion[parseInt(iEntry)] = null;
- document.getElementById("row_"+iEntry).style.display = "none";
- this.showSaveButton();
+ this.hideElement("row_"+iEntry);
+ this.showElement("save_button");
}
}
}
catch (e) {
showError(e);
@@ -237,19 +249,19 @@
}
}
-const oFlex = {
+const oFlexGen = {
cMainTag: "",
lFlexion: [],
clear: function () {
this.lFlexion = [];
- document.getElementById("actions").style.display = "none";
+ oWidgets.hideElement("actions");
},
setMainTag: function (sValue) {
this.cMainTag = sValue;
},
@@ -270,35 +282,35 @@
break;
}
let sTag = this.getRadioValue("POS") + this.getRadioValue("genre");
switch (this.getRadioValue("pluriel")) {
case "s":
- this.addFlexion(sLemma, sLemma, sTag+":s");
- this.addFlexion(sLemma+"s", sLemma, sTag+":p");
+ this.addFlexion(sLemma, sLemma, sTag+":s/*");
+ this.addFlexion(sLemma+"s", sLemma, sTag+":p/*");
break;
case "x":
- this.addFlexion(sLemma, sLemma, sTag+":s");
- this.addFlexion(sLemma+"x", sLemma, sTag+":p");
+ this.addFlexion(sLemma, sLemma, sTag+":s/*");
+ this.addFlexion(sLemma+"x", sLemma, sTag+":p/*");
break;
case "i":
- this.addFlexion(sLemma, sLemma, sTag+":i");
+ this.addFlexion(sLemma, sLemma, sTag+":i/*");
break;
}
let sLemma2 = document.getElementById("lemma2").value.trim();
if (sLemma2.length > 0 && this.getRadioValue("POS2") && this.getRadioValue("genre2")) {
let sTag2 = this.getRadioValue("POS2") + this.getRadioValue("genre2");
switch (this.getRadioValue("pluriel2")) {
case "s":
- this.addFlexion(sLemma2, sLemma, sTag2+":s");
- this.addFlexion(sLemma2+"s", sLemma, sTag2+":p");
+ this.addFlexion(sLemma2, sLemma, sTag2+":s/*");
+ this.addFlexion(sLemma2+"s", sLemma, sTag2+":p/*");
break;
case "x":
- this.addFlexion(sLemma2, sLemma, sTag2+":s");
- this.addFlexion(sLemma2+"x", sLemma, sTag2+":p");
+ this.addFlexion(sLemma2, sLemma, sTag2+":s/*");
+ this.addFlexion(sLemma2+"x", sLemma, sTag2+":p/*");
break;
case "i":
- this.addFlexion(sLemma2, sLemma, sTag2+":i");
+ this.addFlexion(sLemma2, sLemma, sTag2+":i/*");
break;
}
}
break;
case "V": {
@@ -368,30 +380,30 @@
}
break;
}
case "W":
sLemma = sLemma.toLowerCase();
- this.addFlexion(sLemma, sLemma, ":W");
+ this.addFlexion(sLemma, sLemma, ":W/*");
break;
case "M1":
sLemma = sLemma.slice(0,1).toUpperCase() + sLemma.slice(1);
sGenderTag = this.getRadioValue("genre_m1");
if (sGenderTag) {
- this.addFlexion(sLemma, sLemma, ":M1"+sGenderTag+":i");
+ this.addFlexion(sLemma, sLemma, ":M1"+sGenderTag+":i/*");
}
break;
case "M2":
sLemma = sLemma.slice(0,1).toUpperCase() + sLemma.slice(1);
sGenderTag = this.getRadioValue("genre_m2");
if (sGenderTag) {
- this.addFlexion(sLemma, sLemma, ":M2"+sGenderTag+":i");
+ this.addFlexion(sLemma, sLemma, ":M2"+sGenderTag+":i/*");
}
break;
case "MP":
sGenderTag = this.getRadioValue("genre_mp");
if (sGenderTag) {
- this.addFlexion(sLemma, sLemma, ":MP"+sGenderTag+":i");
+ this.addFlexion(sLemma, sLemma, ":MP"+sGenderTag+":i/*");
}
break;
case "X":
let sFlexion = document.getElementById("flexion").value.trim();
let sTags = document.getElementById("tags").value.trim();
@@ -441,30 +453,31 @@
},
show: function () {
let sText = "";
for (let [sFlexion, sLemma, sTag] of this.lFlexion) {
- sText += sFlexion + " (" + sLemma + ") " + sTag + "
\n";
+ sText += sFlexion + " (" + sLemma + ") " + sTag + "\n";
}
if (sText) {
- document.getElementById("results").innerHTML = sText;
- oPage.showActions();
+ document.getElementById("results").textContent = sText;
+ oWidgets.showElement("actions");
} else {
- oPage.hideActions();
+ oWidgets.hideElement("actions");
}
},
addToLexicon: function () {
try {
oLexicon.addFlexions(this.lFlexion);
document.getElementById("lemma").value = "";
- oPage.showSection("section_vide");
- oPage.hideEditor();
- oPage.hideActions();
- oPage.clear();
- oPage.showSaveButton();
+ oWidgets.showSection("section_vide");
+ oWidgets.hideElement("editor");
+ oWidgets.hideElement("actions");
+ oWidgets.clear();
+ oWidgets.showElement("save_button");
this.clear();
+ this.cMainTag = "";
}
catch (e) {
showError(e);
}
}
@@ -475,58 +488,44 @@
const oLexicon = {
lFlexion: [],
addFlexions: function (lFlex) {
+ let n = this.lFlexion.length;
for (let aFlex of lFlex) {
this.lFlexion.push(aFlex);
}
- this.display();
+ oWidgets.addEntriesToTable(n, lFlex);
},
load: function () {
if (bChrome) {
browser.storage.local.get("lexicon_list", this._setList);
return;
}
let xPromise = browser.storage.local.get("lexicon_list");
- xPromise.then(this._setList, showError);
+ xPromise.then(this._setList.bind(this), showError);
},
_setList: function (dResult) {
if (dResult.hasOwnProperty("lexicon_list")) {
this.lFlexion = dResult.lexicon_list;
}
- },
-
- display: function () {
- oPage.clearTable();
- let xTable = document.getElementById("table");
- let n = 0;
- if (this.lFlexion.length > 0) {
- xTable.appendChild(oPage.createTableHeader());
- for (let [sFlexion, sLemma, sTags] of this.lFlexion) {
- xTable.appendChild(oPage.createRowNode(n, sFlexion, sLemma, sTags));
- n += 1;
- }
- } else {
- xTable.appendChild(createNode("tr", { textContent: "Aucun élément." }));
- }
+ oWidgets.displayTable(this.lFlexion);
},
save: function () {
- console.log("u");
- oPage.hideSaveButton();
+ oWidgets.hideElement("save_button");
let lResult = [];
for (let e of this.lFlexion) {
if (e !== null) {
lResult.push(e);
}
}
browser.storage.local.set({ "lexicon_list": lResult });
this.lFlexion = lResult;
- this.display();
+ oWidgets.displayTable(this.lFlexion);
},
build: function () {
return null;
},
@@ -538,6 +537,5 @@
}
}
oLexicon.load();
-oLexicon.display();