all repos — mailcatcher-viewer @ dcc7c0a0ccfb2e91745d8ea997b7f62ff4219606

popup.js (view raw)

 1// Sauvegarde l'URL de Mailcatcher
 2document.getElementById("save-url").addEventListener("click", () => {
 3  const url = document.getElementById("mailcatcher-url").value;
 4  if (url) {
 5    browser.storage.local.set({ mailcatcherUrl: url });
 6    alert("URL enregistrée !");
 7  }
 8});
 9
10// Charge l'URL sauvegardée au démarrage
11browser.storage.local.get("mailcatcherUrl").then((data) => {
12  if (data.mailcatcherUrl) {
13    document.getElementById("mailcatcher-url").value = data.mailcatcherUrl;
14    fetchEmails(data.mailcatcherUrl);
15  }
16});
17
18// Rafraîchit la liste des emails
19document.getElementById("refresh-emails").addEventListener("click", () => {
20  browser.storage.local.get("mailcatcherUrl").then((data) => {
21    if (data.mailcatcherUrl) {
22      fetchEmails(data.mailcatcherUrl);
23    } else {
24      alert("Veuillez configurer l'URL de Mailcatcher.");
25    }
26  });
27});
28
29// Récupère les emails depuis Mailcatcher
30function fetchEmails(baseUrl) {
31  const emailList = document.getElementById("email-list");
32  emailList.innerHTML = "<p>Chargement...</p>";
33
34  fetch(`${baseUrl}/messages`)
35    .then((response) => response.json())
36    .then((emails) => {
37      emailList.innerHTML = "";
38      if (emails.length === 0) {
39        emailList.innerHTML = "<p>Aucun email trouvé.</p>";
40        return;
41      }
42      emails.forEach((email) => {
43        const item = document.createElement("div");
44        item.className = "email-item";
45        item.innerHTML = `
46          <strong>${email.sender}</strong> → ${email.recipients.join(", ")}
47          <br><small>${new Date(email.sent_at).toLocaleString()}</small>
48        `;
49        item.addEventListener("click", () =>
50          showEmailDetails(baseUrl, email.id),
51        );
52        emailList.appendChild(item);
53      });
54    })
55    .catch((error) => {
56      emailList.innerHTML = `<p>Erreur : ${error.message}</p>`;
57    });
58}
59
60// Affiche les détails d'un email
61function showEmailDetails(baseUrl, emailId) {
62  fetch(`${baseUrl}/messages/${emailId}.json`)
63    .then((response) => response.json())
64    .then((email) => {
65      alert(
66        `De : ${email.sender}\nÀ : ${email.recipients}\nSujet : ${email.subject}\n\n${email.text_body || email.html_body}`,
67      );
68    })
69    .catch((error) => {
70      alert(`Erreur : ${error.message}`);
71    });
72}