Files
projet-cal/frontend/static/script.js
florianboisdron 8c4e38205a modale
2024-11-27 18:34:26 +01:00

77 lines
2.5 KiB
JavaScript

// URL de l'API
const apiUrl = "http://localhost:8080/api/get_day";
// Fonction pour récupérer les données depuis l'API
async function fetchDayData() {
try {
const response = await fetch(apiUrl);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json(); // Exemple de réponse : { link: "...", date: "27-11-2024" }
return data;
} catch (error) {
console.error("Erreur lors de l'appel API :", error);
}
}
// Fonction pour initialiser les événements des boîtes
function initCalendar() {
const boxes = document.querySelectorAll(".box");
// Attacher un événement 'click' à chaque boîte
boxes.forEach(box => {
box.addEventListener("click", async () => {
const dayNumber = box.id.split("-")[1]; // Récupère le numéro de la boîte à partir de l'ID
const dayData = await fetchDayData();
if (!dayData) return; // Si l'appel API échoue, on ne fait rien
const todayDate = parseInt(dayData.date.split("-")[0], 10); // Extraire le jour de la date (ex : "27")
const link = dayData.link;
if (parseInt(dayNumber, 10) === todayDate) {
showModal("🎉 Bravo !", `Voici votre lien du jour : <a href="${link}" target="_blank">${link}</a>`);
} else {
showModal("⏳ Patience...", "Ce n'est pas encore le jour pour ouvrir cette boîte !");
}
});
});
}
// Fonction pour afficher une modale
function showModal(title, message) {
// Créer la structure HTML de la modale
const modal = document.createElement("div");
modal.className = "modal";
modal.innerHTML = `
<div class="modal-content">
<span class="close">&times;</span>
<h2>${title}</h2>
<p>${message}</p>
</div>
`;
// Ajouter la modale au corps du document
document.body.appendChild(modal);
// Fermer la modale quand l'utilisateur clique sur "close"
modal.querySelector(".close").addEventListener("click", () => {
modal.remove();
});
// Fermer la modale si l'utilisateur clique à l'extérieur du contenu
modal.addEventListener("click", (event) => {
if (event.target === modal) {
modal.remove();
}
});
}
// Appel de la fonction à l'initialisation de la page
document.addEventListener("DOMContentLoaded", () => {
initCalendar();
});