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(); } }