diff --git a/configuracion.html b/configuracion.html
index 7535eb5..d8edc9c 100644
--- a/configuracion.html
+++ b/configuracion.html
@@ -730,7 +730,7 @@
loadWaSettings();
});
- // ==========================================
+ // ==========================================
// LÓGICA DE NAVEGACIÓN Y TABS
// ==========================================
function showTab(tabId) {
@@ -754,6 +754,7 @@
if(tabId === 'providers') {
loadProviderCredentials();
loadIaRules();
+ loadRobotConfig(); // 👇 ¡AQUÍ ESTABA EL FALLO! Faltaba llamar a esta función
}
}
@@ -1243,31 +1244,36 @@
}
async function saveRobotConfig() {
- const resGet = await fetch(`${API_URL}/whatsapp/settings`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } });
- const dataGet = await resGet.json();
- const currentSettings = dataGet.settings || {};
+ // Ponemos el botón en modo "Cargando..."
+ const btn = document.querySelector('button[onclick="saveRobotConfig()"]');
+ const originalHtml = btn.innerHTML;
+ btn.innerHTML = ' Guardando...';
+ lucide.createIcons();
- currentSettings.robot_homeserve = {
- assign: {
- enabled: document.getElementById('hs_cfg_assign_enabled').checked,
- status: document.getElementById('hs_cfg_assign_status').value,
- days_next: parseInt(document.getElementById('hs_cfg_assign_days').value) || 0,
- check_inform: document.getElementById('hs_cfg_assign_inform').checked,
- obs: document.getElementById('hs_cfg_assign_obs').value
- },
- date: {
- enabled: document.getElementById('hs_cfg_date_enabled').checked,
- status: document.getElementById('hs_cfg_date_status').value,
- days_next: parseInt(document.getElementById('hs_cfg_date_days').value) || 0,
- check_inform: document.getElementById('hs_cfg_date_inform').checked,
- obs: document.getElementById('hs_cfg_date_obs').value
- },
- notfound: {
- enabled: document.getElementById('hs_cfg_notfound_enabled').checked,
- status: document.getElementById('hs_cfg_notfound_status').value,
- days_next: parseInt(document.getElementById('hs_cfg_notfound_days').value) || 0,
- check_inform: document.getElementById('hs_cfg_notfound_inform').checked,
- obs: document.getElementById('hs_cfg_notfound_obs').value
+ // Construimos SOLO el objeto del robot (el servidor ya se encarga de no borrar el de WhatsApp)
+ const payload = {
+ robot_homeserve: {
+ assign: {
+ enabled: document.getElementById('hs_cfg_assign_enabled').checked,
+ status: document.getElementById('hs_cfg_assign_status').value,
+ days_next: parseInt(document.getElementById('hs_cfg_assign_days').value) || 0,
+ check_inform: document.getElementById('hs_cfg_assign_inform').checked,
+ obs: document.getElementById('hs_cfg_assign_obs').value
+ },
+ date: {
+ enabled: document.getElementById('hs_cfg_date_enabled').checked,
+ status: document.getElementById('hs_cfg_date_status').value,
+ days_next: parseInt(document.getElementById('hs_cfg_date_days').value) || 0,
+ check_inform: document.getElementById('hs_cfg_date_inform').checked,
+ obs: document.getElementById('hs_cfg_date_obs').value
+ },
+ notfound: {
+ enabled: document.getElementById('hs_cfg_notfound_enabled').checked,
+ status: document.getElementById('hs_cfg_notfound_status').value,
+ days_next: parseInt(document.getElementById('hs_cfg_notfound_days').value) || 0,
+ check_inform: document.getElementById('hs_cfg_notfound_inform').checked,
+ obs: document.getElementById('hs_cfg_notfound_obs').value
+ }
}
};
@@ -1275,55 +1281,9 @@
const res = await fetch(`${API_URL}/whatsapp/settings`, {
method: 'POST',
headers: { "Content-Type": "application/json", "Authorization": `Bearer ${localStorage.getItem("token")}` },
- body: JSON.stringify(currentSettings)
- });
- if (res.ok) {
- showToast("✅ Reglas del Robot guardadas");
- } else {
- showToast("❌ Error al guardar", true);
- }
- } catch(e) {
- showToast("❌ Error de conexión", true);
- }
- }
-
- async function saveRobotConfig() {
- // Obtenemos todos los settings actuales para no sobreescribir lo de WhatsApp
- const resGet = await fetch(`${API_URL}/whatsapp/settings`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } });
- const dataGet = await resGet.json();
- const currentSettings = dataGet.settings || {};
-
- // Construimos el nuevo objeto del robot
- currentSettings.robot_homeserve = {
- assign: {
- enabled: document.getElementById('hs_cfg_assign_enabled').checked,
- status: document.getElementById('hs_cfg_assign_status').value,
- days_next: parseInt(document.getElementById('hs_cfg_assign_days').value) || 0,
- check_inform: document.getElementById('hs_cfg_assign_inform').checked,
- obs: document.getElementById('hs_cfg_assign_obs').value
- },
- date: {
- enabled: document.getElementById('hs_cfg_date_enabled').checked,
- status: document.getElementById('hs_cfg_date_status').value,
- days_next: parseInt(document.getElementById('hs_cfg_date_days').value) || 0,
- check_inform: document.getElementById('hs_cfg_date_inform').checked,
- obs: document.getElementById('hs_cfg_date_obs').value
- },
- notfound: {
- enabled: document.getElementById('hs_cfg_notfound_enabled').checked,
- status: document.getElementById('hs_cfg_notfound_status').value,
- days_next: parseInt(document.getElementById('hs_cfg_notfound_days').value) || 0,
- check_inform: document.getElementById('hs_cfg_notfound_inform').checked,
- obs: document.getElementById('hs_cfg_notfound_obs').value
- }
- };
-
- try {
- const res = await fetch(`${API_URL}/whatsapp/settings`, {
- method: 'POST',
- headers: { "Content-Type": "application/json", "Authorization": `Bearer ${localStorage.getItem("token")}` },
- body: JSON.stringify(currentSettings)
+ body: JSON.stringify(payload)
});
+
if (res.ok) {
showToast("✅ Reglas del Robot guardadas");
} else {
@@ -1331,6 +1291,10 @@
}
} catch(e) {
showToast("❌ Error de conexión", true);
+ } finally {
+ // Restauramos el botón
+ btn.innerHTML = originalHtml;
+ lucide.createIcons();
}
}