// Tableaux globaux let configIndices = []; // Données issues de la table "indice" let coursActionsData = []; // Données issues de la table "cours_actions" function chargerDonnees() { // Chargement en parallèle des deux API Promise.all([ fetch("./php/api_lecture_tableindice.php").then((res) => res.json()), fetch("./php/api_indices.php").then((res) => res.json()), ]) .then(([configResult, coursResult]) => { if (configResult.status === "success") { configIndices = configResult.data; console.log( "Configuration indices chargée :", configIndices.length, "éléments", ); } else { console.error("Erreur API config indices :", configResult.message); } if (coursResult.status === "success") { coursActionsData = coursResult.data; console.log( "Cours actions chargés :", coursActionsData.length, "éléments", ); } else { console.error("Erreur API cours_actions :", coursResult.message); } // Mise à jour des vues afficherSyntheseCartes(); alimenterBandeauxTicker(); // Statut de rafraîchissement const statut = document.getElementById("statut"); if (statut) { statut.innerText = `Dernière mise à jour : ${new Date().toLocaleTimeString()}`; } }) .catch((error) => console.error("Erreur réseau lors du chargement des API :", error), ); } function afficherSyntheseCartes() { const container = document.getElementById("cards-container"); if (!container) return; container.innerHTML = ""; // CARTES : On se base STRICTEMENT sur le champ afficher == 1 const actionsAffichees = configIndices.filter( (item) => String(item.afficher) === "1" || item.afficher == 1, ); if (actionsAffichees.length > 0) { actionsAffichees.forEach((conf) => { // Croisement avec les cours en direct const d = coursActionsData.find( (item) => item.symbole === conf.symbole || item.isin === conf.isin, ) || {}; const ecartValeur = parseFloat(d.variation || 0); const isPositive = ecartValeur >= 0; const badgeColor = isPositive ? "text-emerald-400" : "text-rose-400"; const sign = isPositive ? "+" : ""; const volumeFormate = d.volume ? parseInt(d.volume).toLocaleString("fr-FR") : "--"; container.innerHTML += `