Ajouter dashboard.js

This commit is contained in:
2026-03-24 08:28:19 +00:00
parent c3837d85d0
commit f385d6c568

82
dashboard.js Normal file
View File

@@ -0,0 +1,82 @@
// -------------------------------
// 1 - Sélection des widgets
// -------------------------------
const climat = document.querySelector('.widget.climat');
const securite = document.querySelector('.widget.securite');
const energie = document.querySelector('.widget.energie');
const lumiere = document.querySelector('.widget.lumiere');
const graphiques = document.querySelector('.widget.graphiques');
const alertes = document.querySelector('.widget.alertes');
// -------------------------------
// 2 - Hover dynamique sur les widgets
// -------------------------------
function setupHover(widget, colorNormal, colorHover) {
widget.addEventListener('mouseenter', () => {
widget.style.backgroundColor = colorHover;
});
widget.addEventListener('mouseleave', () => {
widget.style.backgroundColor = colorNormal;
});
}
// Appliquer le hover sur chaque widget
setupHover(climat, '#ADD8E6', '#87CEEB');
setupHover(securite, '#D3D3D3', '#C0C0C0');
setupHover(energie, '#FFFACD', '#FAFAD2');
setupHover(lumiere, '#F5F5DC', '#FFF8DC');
// -------------------------------
// 3 - Simulation d'alerte visuelle
// -------------------------------
function showAlert(widget) {
widget.classList.add('alert'); // contour rouge
}
function hideAlert(widget) {
widget.classList.remove('alert'); // retire le contour rouge
}
// Exemple : activer l'alerte sur climat
showAlert(climat);
// Le bloc Alertes reste visible
alertes.style.display = 'block';
// -------------------------------
// 4 - Préparer la zone graphique vide
// -------------------------------
const canvasTemp = document.getElementById('graph-temp');
if (canvasTemp) {
const ctx = canvasTemp.getContext('2d');
const myChart = new Chart(ctx, {
type: 'line',
data: {
labels: [], // vide pour l'instant
datasets: [{
label: 'Température',
data: [], // vide pour l'instant
borderColor: 'blue',
tension: 0.4
}]
},
options: {
responsive: true,
plugins: {
legend: { display: false }
},
scales: {
x: { display: false },
y: { display: false }
}
}
});
}
// -------------------------------
// 5 - Fonction de mise à jour future
// -------------------------------
function majWidget(widget, valeur) {
// futur code pour mettre à jour le widget avec de vraies données
// exemple : climat.querySelector('p').innerText = "Température : " + valeur + "°C";
}