Version 2.0.0 — Refonte interface et structure

This commit is contained in:
2026-04-16 14:00:00 +02:00
parent 3b1831a83a
commit d2afbf0dca
5 changed files with 1773 additions and 874 deletions
+7 -14
View File
@@ -1,11 +1,10 @@
// background.js — Service worker (Manifest V3)
//
// Quand l'utilisateur clique sur l'icône de l'extension :
// 1. On vérifie qu'il est bien sur itsma.vd.ch
// 2. On injecte un script dans l'onglet qui récupère le HTML complet
// de la page + tous les liens vers les fiches d'intervention
// 3. On stocke ça dans chrome.storage.local
// 4. On ouvre un nouvel onglet avec viewer.html
// Au clic sur l'icône :
// 1. Vérifier qu'on est bien sur itsma.vd.ch (sinon message d'erreur)
// 2. Injecter un script dans la page qui récupère le HTML complet
// 3. Stocker dans chrome.storage.local (persistant, sert de "dernière capture")
// 4. Ouvrir viewer.html
chrome.action.onClicked.addListener(async (tab) => {
try {
@@ -19,7 +18,6 @@ chrome.action.onClicked.addListener(async (tab) => {
return;
}
// Injecter un script dans l'onglet pour extraire le HTML
const results = await chrome.scripting.executeScript({
target: { tabId: tab.id },
func: extractPlanningFromPage
@@ -30,13 +28,12 @@ chrome.action.onClicked.addListener(async (tab) => {
await chrome.storage.local.set({
planningError:
"Impossible de lire le contenu de la page. " +
"Assure-toi d'être bien sur la page du planning des techniciens."
"Assure-toi d'être sur la page du planning des techniciens."
});
await openViewer();
return;
}
// Stocker le HTML capturé + l'URL de base pour les requêtes futures
await chrome.storage.local.set({
planningHtml: data.html,
planningUrl: tab.url,
@@ -54,12 +51,8 @@ chrome.action.onClicked.addListener(async (tab) => {
}
});
// Fonction injectée dans la page du planning
// (elle s'exécute dans le contexte de itsma.vd.ch, pas dans le service worker)
function extractPlanningFromPage() {
// Récupérer tout le HTML de la page
const html = document.documentElement.outerHTML;
return { html: html };
return { html: document.documentElement.outerHTML };
}
async function openViewer() {