From d3fb8413410019048d09f0bd9e882bda0ea97db6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pr=C3=A9nom=20Nom?= <adresse@mail.com> Date: Mon, 24 Feb 2025 03:59:27 +0100 Subject: [PATCH] correction erreur ouverture stats.html --- src/background/background.js | 4 ++-- src/plugin/plugin.js | 37 +++++++++++++++++++++++++++--------- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/src/background/background.js b/src/background/background.js index c384f37..9771adb 100644 --- a/src/background/background.js +++ b/src/background/background.js @@ -53,7 +53,7 @@ browser.storage.onChanged.addListener((changes, area) => { if (!extensionActive) { log("Token ajouté, activation automatique de l'extension."); browser.storage.local.set({ extensionActive: true }); // Met à jour l'état de l'extension - updateExtension(); // Met à jour les fonctionnalités de l'extension + // updateExtension(); // Met à jour les fonctionnalités de l'extension // Envoie un message pour mettre à jour l'interface utilisateur browser.runtime.sendMessage({ action: "updateUI", @@ -195,7 +195,7 @@ async function saveToken(token) { const { extensionActive } = await browser.storage.local.get("extensionActive"); if (!extensionActive) { await browser.storage.local.set({ extensionActive: true }); // Met à jour l'état de l'extension - updateExtension(); // Met à jour les fonctionnalités de l'extension + // updateExtension(); // Met à jour les fonctionnalités de l'extension browser.runtime.sendMessage({ action: "updateUI", extensionActive: true, diff --git a/src/plugin/plugin.js b/src/plugin/plugin.js index 1574f7c..3611b30 100644 --- a/src/plugin/plugin.js +++ b/src/plugin/plugin.js @@ -90,20 +90,42 @@ function setupEventListeners() { // Sauvegarde des options document.getElementById("save-options")?.addEventListener("click", handleSaveOptions); - // Ouverture de la page des statistiques + // Ouverture de la page des statistiques via le bouton "Afficher les statistiques" document.getElementById("open-stats")?.addEventListener("click", () => { openStatsPage(); }); + + // Ouverture de la page des statistiques via le bouton "Désactiver les statistiques" + document.getElementById("toggleStatsBtn")?.addEventListener("click", async () => { + const { isTrackingActive } = await browser.storage.local.get({ isTrackingActive: false }); + if (isTrackingActive) { + openStatsPage().catch(err => + console.error("Erreur lors de l'ouverture de stats.html :", err) + ); + } + }); } +/** + * Ouverture de la fenêtre de stats + */ function openStatsPage() { - window.open("stats.html"); - log("Ouverture de la page de statistiques :") + return new Promise((resolve, reject) => { + try { + const newWindow = window.open("stats.html"); + if (!newWindow) { + reject(new Error("L'ouverture de stats.html a échoué (pop-up peut-être bloquée)")); + } else { + log("Ouverture de la page de statistiques"); + resolve(newWindow); + } + } catch (err) { + reject(err); + } + }); } - - /** * Gestion de la connexion / déconnexion */ @@ -145,13 +167,10 @@ async function handleStatsToggle() { log("Nouvel état des statistiques :", newState); // Envoi du message de mise à jour browser.runtime.sendMessage({ command: "toggle-stats", isActive: newState }); - // Ouvrir la page des statistiques si désactivé - if (!newState) { - openStatsPage(); - } // Exécution de Pyodide si nécessaire if (newState) { browser.runtime.sendMessage({ command: "pyodide-simplemma" }); + // Si on active le suivi, ouvrir la page des statistiques } else { // Désactivation : envoyer le message de désactivation à l'onglet actif notifyAllTabs({ command: "deactivate-stats" }); -- GitLab