diff --git a/backend/src/main/resources/static/index.html b/backend/src/main/resources/static/index.html
index 569630c..2596a4e 100644
--- a/backend/src/main/resources/static/index.html
+++ b/backend/src/main/resources/static/index.html
@@ -14,6 +14,12 @@
SysAdmin Monitor Dashboard
+
Conectando...
diff --git a/backend/src/main/resources/static/js/dashboard.js b/backend/src/main/resources/static/js/dashboard.js
index 28bc227..53bf003 100644
--- a/backend/src/main/resources/static/js/dashboard.js
+++ b/backend/src/main/resources/static/js/dashboard.js
@@ -1,11 +1,14 @@
const API_BASE = "/api/metrics";
-const INTERVALO = 5000;
+const INTERVALO_POR_DEFECTO = 5000;
const statusEl = document.getElementById("status");
const cpuValueEl = document.getElementById("cpu-value");
const ramValueEl = document.getElementById("ram-value");
const diskValueEl = document.getElementById("disk-value");
const hostSelect = document.getElementById("host-select");
+const intervaloSelect = document.getElementById("intervalo-select");
+
+let intervaloId = null;
function crearConfig(label, color) {
return {
@@ -144,15 +147,39 @@ async function fetchMetricas() {
}
}
+function leerIntervaloGuardado() {
+ const guardado = parseInt(localStorage.getItem("intervalo"), 10);
+ // si no hay nada guardado o es raro nos quedamos con el de por defecto
+ if (!guardado || guardado < 1000) {
+ return INTERVALO_POR_DEFECTO;
+ }
+ return guardado;
+}
+
+function arrancarRefresco(intervalo) {
+ if (intervaloId !== null) {
+ clearInterval(intervaloId);
+ }
+ intervaloId = setInterval(() => {
+ cargarHosts();
+ fetchMetricas();
+ }, intervalo);
+}
+
// cuando cambia el selector recargamos los datos
hostSelect.addEventListener("change", fetchMetricas);
+// cambiamos cada cuanto se refresca y lo guardamos para la proxima visita
+intervaloSelect.addEventListener("change", () => {
+ const intervalo = parseInt(intervaloSelect.value, 10);
+ localStorage.setItem("intervalo", intervalo);
+ arrancarRefresco(intervalo);
+ fetchMetricas();
+});
+
// primera carga
+const intervaloInicial = leerIntervaloGuardado();
+intervaloSelect.value = String(intervaloInicial);
cargarHosts();
fetchMetricas();
-
-// actualizamos cada 5 segundos
-setInterval(() => {
- cargarHosts();
- fetchMetricas();
-}, INTERVALO);
\ No newline at end of file
+arrancarRefresco(intervaloInicial);