Files
poupoule/public/js/accueil.js
T
2026-09-25 11:02:14 +02:00

115 lines
3.0 KiB
JavaScript

/**
* Page d'accueil : statistiques + liste des animaux actifs.
*/
let utilisateurCourant = null;
async function chargerStatistiques()
{
const stats = await appelerApi("/api/statistiques");
if (!stats)
{
return;
}
document.getElementById("statPoules").textContent = stats.nombrePoulesActives;
document.getElementById("statCoqs").textContent = stats.nombreCoqsActifs;
document.getElementById("statTotal").textContent = stats.nombreTotalActifs;
document.getElementById("statPonte").textContent = stats.nombreEnPonte;
document.getElementById("statCouvage").textContent = stats.nombreEnCouvage;
}
async function chargerAnimaux()
{
const animaux = await appelerApi("/api/animaux?actifs=oui");
if (!animaux)
{
return;
}
const liste = document.getElementById("listeAnimaux");
const messageVide = document.getElementById("messageVide");
if (animaux.length === 0)
{
liste.innerHTML = "";
messageVide.hidden = false;
return;
}
messageVide.hidden = true;
liste.innerHTML = animaux.map(htmlCarteAnimal).join("");
}
function ouvrirDialogueAjout()
{
document.getElementById("titreDialogueAnimal").textContent = "Ajouter un animal";
document.getElementById("animalId").value = "";
document.getElementById("formAnimal").reset();
document.getElementById("erreurAnimal").hidden = true;
document.getElementById("dialogueAnimal").showModal();
}
document.getElementById("boutonNouvelAnimal").addEventListener("click", ouvrirDialogueAjout);
document.getElementById("annulerAnimal").addEventListener("click", function ()
{
document.getElementById("dialogueAnimal").close();
});
document.getElementById("formAnimal").addEventListener("submit", async function (event)
{
event.preventDefault();
const erreurAnimal = document.getElementById("erreurAnimal");
erreurAnimal.hidden = true;
const formData = new FormData();
formData.append("type", document.getElementById("type").value);
formData.append("couleurBague", document.getElementById("couleurBague").value);
formData.append("numeroBague", document.getElementById("numeroBague").value);
formData.append("dateNaissance", document.getElementById("dateNaissance").value);
formData.append("etatSante", document.getElementById("etatSante").value);
const photo = document.getElementById("photo").files[0];
if (photo)
{
formData.append("photo", photo);
}
try
{
await appelerApi("/api/animaux", {
method: "POST",
body: formData
});
document.getElementById("dialogueAnimal").close();
await chargerAnimaux();
await chargerStatistiques();
}
catch (erreur)
{
erreurAnimal.textContent = erreur.message;
erreurAnimal.hidden = false;
}
});
async function demarrer()
{
utilisateurCourant = await verifierSession();
if (!utilisateurCourant)
{
return;
}
brancherDeconnexion();
await chargerStatistiques();
await chargerAnimaux();
}
demarrer();