From 0b0997c3de99c06f95306d9c0e70a1506b73864b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pr=C3=A9nom=20Nom?= <adresse@mail.com>
Date: Mon, 24 Feb 2025 01:59:43 +0100
Subject: [PATCH] correction ouverture page stats

---
 src/plugin/displayStats.js |  6 ++----
 src/plugin/plugin.js       | 42 ++++++++++++++++++++++++--------------
 2 files changed, 29 insertions(+), 19 deletions(-)

diff --git a/src/plugin/displayStats.js b/src/plugin/displayStats.js
index ad6debe..833f0e4 100644
--- a/src/plugin/displayStats.js
+++ b/src/plugin/displayStats.js
@@ -1,12 +1,10 @@
-log("displayStats.js chargé");
-
 document.addEventListener("DOMContentLoaded", async () => {
   /**
    * Met à jour le résumé des statistiques
    * @returns {Promise<Object>} - Un objet contenant les statistiques
    */
   async function updateStatsSummary() {
-    log("[Stats Page] Mise à jour du résumé des statistiques...");
+    // log("[Stats Page] Mise à jour du résumé des statistiques...");
     
     const { 
       lemmaFrequencies = {}, 
@@ -42,7 +40,7 @@ document.addEventListener("DOMContentLoaded", async () => {
       wordsAdded
     };
   
-    log("[Stats Page] Résumé des statistiques mis à jour:", summary);
+    // log("[Stats Page] Résumé des statistiques mis à jour:", summary);
     await browser.storage.local.set({ statsSummary: summary });
     return { summary, lemmaFrequencies, trackedLanguages };
   }
diff --git a/src/plugin/plugin.js b/src/plugin/plugin.js
index 89bce4b..1574f7c 100644
--- a/src/plugin/plugin.js
+++ b/src/plugin/plugin.js
@@ -17,6 +17,20 @@ async function updateExtension() {
   updateUI(states); 
 }
 
+/**
+ * Envoie un message à tous les onglets.
+ * @param {Object} message - Le message à envoyer.
+ */
+async function notifyAllTabs(message) {
+  browser.tabs.query({}).then((tabs) => {
+    tabs.forEach((tab) => {
+      browser.tabs.sendMessage(tab.id, message)
+        .catch((error) => console.warn(`[Background] Impossible d'envoyer un message à l'onglet ${tab.id} : ${error}`));
+    });
+  });
+}
+
+
 /**
  * Récupère les valeurs du local storage
  * @returns {Promise<Object>} - Un objet contenant les valeurs
@@ -77,12 +91,19 @@ function setupEventListeners() {
   document.getElementById("save-options")?.addEventListener("click", handleSaveOptions);
 
   // Ouverture de la page des statistiques
-  // TODO : ajouter l'évènement
   document.getElementById("open-stats")?.addEventListener("click", () => {
-    window.open("stats.html", "_blank");
+    openStatsPage();
   });
 }
 
+function openStatsPage() {
+  window.open("stats.html");
+  log("Ouverture de la page de statistiques :")
+}
+
+
+
+
 /**
  * Gestion de la connexion / déconnexion
  */
@@ -131,6 +152,9 @@ async function handleStatsToggle() {
   // Exécution de Pyodide si nécessaire
   if (newState) {
     browser.runtime.sendMessage({ command: "pyodide-simplemma" });
+  } else {
+    // Désactivation : envoyer le message de désactivation à l'onglet actif
+    notifyAllTabs({ command: "deactivate-stats" });
   }
 }
 
@@ -148,7 +172,7 @@ async function handleToggleExtension() {
 
   if (!newState) {
     await browser.storage.local.set({ isTrackingActive: false });
-    if (isTrackingActive) window.open("stats.html", "_blank");
+    // if (isTrackingActive) window.open("stats.html", "_blank"); //Si on désactive l'analyse, on ouvre la page de stats
     browser.runtime.sendMessage({ action: "closeSidebarBlocks" });
   }
 
@@ -518,16 +542,4 @@ function handleWorkerMessage(event) {
   }}
 
 
-/**
- * Ouvre la page des statistiques
- */
-document.getElementById("open-stats")?.addEventListener("click", async () => {
-  openStatsPage();
-});
-
-function openStatsPage() {
-  browser.tabs.create({
-    url: browser.runtime.getURL("stats.html")
-  });
-}
 
-- 
GitLab