Skip to content
Snippets Groups Projects
Commit 5c91991d authored by Lucie Bader's avatar Lucie Bader
Browse files

Correction erreur 500

parent 4f6a18ee
No related branches found
No related tags found
2 merge requests!8Test final,!5Ajout manuel d'un mot dans un ou plusieurs lexique(s)
......@@ -310,8 +310,9 @@ async function handleAuthButtonClick() {
* et les lexiques cochés, puis on appelle AddWord.
*/
async function handleAddWordClick() {
// 1) Vérifier la présence du token et du mot
if (!authToken) {
console.warn("⚠️ Impossible d’ajouter le mot : pas de token dauthentification.");
console.warn("⚠️ Pas de token d'authentification : impossible d'ajouter le mot.");
return;
}
......@@ -322,7 +323,6 @@ async function handleAddWordClick() {
console.warn("⚠️ Élément #motSelectionne introuvable.");
return;
}
const selectedWord = selectedWordElement.textContent.trim();
if (!selectedWord || selectedWord === "Aucun mot sélectionné") {
console.warn("⚠️ Aucun mot à ajouter.");
......@@ -332,12 +332,11 @@ async function handleAddWordClick() {
return;
}
// On récupère toutes les checkboxes cochées dans #lexiques
// 2) Récupérer les IDs des lexiques sélectionnés (cases à cocher “add-checkbox”)
const checkboxList = document.querySelectorAll("#lexiques .lexique-add-checkbox:checked");
const selectedLexiconIds = Array.from(checkboxList).map((cb) =>
const selectedLexiconIds = Array.from(checkboxList).map(cb =>
parseInt(cb.dataset.lexiconId, 10)
);
if (selectedLexiconIds.length === 0) {
console.warn("⚠️ Aucun lexique sélectionné.");
if (lexiconResultElement) {
......@@ -346,7 +345,7 @@ async function handleAddWordClick() {
return;
}
// Vérifier si le mot existe déjà dans l'un des lexiques sélectionnés
// 3) Vérifier si le mot existe déjà dans l'un des lexiques sélectionnés
let definitions = [];
try {
definitions = await fetchLexiconDefinitions(selectedWord);
......@@ -354,42 +353,64 @@ async function handleAddWordClick() {
console.error("Erreur lors de la récupération des définitions pour vérification :", error);
}
let exists = false;
if (definitions && definitions.length > 0) {
// Construire un ensemble (ou tableau) des IDs dans lesquels le mot existe déjà
const existingLexiconIds = [];
if (Array.isArray(definitions)) {
for (const def of definitions) {
if (selectedLexiconIds.includes(def.lexiconId)) {
exists = true;
break;
if (selectedLexiconIds.includes(def.lexiconId) && !existingLexiconIds.includes(def.lexiconId)) {
existingLexiconIds.push(def.lexiconId);
}
}
}
if (exists) {
if (existingLexiconIds.length > 0) {
if (lexiconResultElement) {
lexiconResultElement.innerHTML =
"Le mot <strong>" + selectedWord + "</strong> existe déjà dans le(s) lexique(s) : " + selectedLexiconIds.join(", ") + ".";
"Le mot <strong>" + selectedWord + "</strong> existe déjà dans le(s) lexique(s) : " +
existingLexiconIds.join(", ") + ".";
}
return;
}
// Procéder à l'ajout dans chaque lexique sélectionné
try {
for (const lexId of selectedLexiconIds) {
// 4) Déterminer les lexiques où ajouter le mot (ceux où il n’existe pas)
const lexiconsToAdd = selectedLexiconIds.filter(id => !existingLexiconIds.includes(id));
if (lexiconsToAdd.length === 0) {
// Le mot existe déjà dans tous les lexiques sélectionnés
return;
}
// 5) Ajouter le mot dans les lexiques restants
let addResults = [];
for (const lexId of lexiconsToAdd) {
try {
const result = await window.AddWord(authToken, selectedWord, [lexId], false);
console.log("✅ Réponse d’ajout pour le lexique", lexId, ":", result);
console.log("✅ Ajout réussi dans le lexique", lexId, ":", result);
addResults.push({ lexId, success: true });
// Envoyer un message pour rafraîchir l'UI si nécessaire
browser.runtime.sendMessage({ action: "refreshUI" });
} catch (error) {
console.error("❌ Erreur lors de l’ajout dans le lexique", lexId, ":", error);
addResults.push({ lexId, success: false, error });
}
if (lexiconResultElement) {
lexiconResultElement.textContent =
"✅ Mot <strong>" + selectedWord + "</strong> ajouté avec succès dans les lexiques : " + selectedLexiconIds.join(", ") + ".";
}
// 6) Afficher un message récapitulatif
if (lexiconResultElement) {
let message = "";
const successful = addResults.filter(r => r.success).map(r => r.lexId);
const failed = addResults.filter(r => !r.success).map(r => r.lexId);
if (successful.length > 0) {
message += "✅ Mot <strong>" + selectedWord + "</strong> ajouté avec succès dans les lexiques : " + successful.join(", ") + ".";
}
} catch (error) {
console.error("❌ Erreur lors de l’ajout du mot :", error);
if (lexiconResultElement) {
lexiconResultElement.textContent = "Erreur lors de l’ajout : " + error.message;
if (failed.length > 0) {
message += "<br>❌ Échec de l'ajout dans les lexiques : " + failed.join(", ") + ".";
}
lexiconResultElement.innerHTML = message;
}
}
// ─────────────────────────────────────────────────────────────────────────────
// ▌ Réception des messages
// ─────────────────────────────────────────────────────────────────────────────
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment