diff --git a/asignados.html b/asignados.html
index 961f1d5..81e6fb6 100644
--- a/asignados.html
+++ b/asignados.html
@@ -246,7 +246,7 @@
let pickerSelectedDate = "";
let pickerSelectedTime = "";
- // --- SISTEMA DE TEMA DINÁMICO CORREGIDO ---
+ // --- SISTEMA DE TEMA DINÁMICO (VERSIÓN TODOTERRENO) ---
async function applyTheme() {
try {
let theme = JSON.parse(localStorage.getItem('app_theme'));
@@ -255,26 +255,26 @@
});
const data = await res.json();
- if(data.ok && data.config) {
- // 1. Extraemos los horarios (Están dentro de portal_settings)
- if (data.config.portal_settings) {
- const ps = data.config.portal_settings;
- if(ps.m_start) bizHours = { m_start: ps.m_start, m_end: ps.m_end, a_start: ps.a_start, a_end: ps.a_end };
- }
+ if (data.ok && data.config) {
+ // 1. Procesamos los horarios
+ const ps = typeof data.config.portal_settings === 'string' ? JSON.parse(data.config.portal_settings) : (data.config.portal_settings || {});
+ if(ps.m_start) bizHours = { m_start: ps.m_start, m_end: ps.m_end, a_start: ps.a_start, a_end: ps.a_end };
- // 2. Extraemos los colores (Están FUERA, en su propia columna app_settings)
- if (data.config.app_settings) {
- theme = data.config.app_settings;
+ // 2. Cazamos los colores (vengan como vengan)
+ let newTheme = data.config.app_settings || ps.app_settings;
+ if(newTheme) {
+ theme = typeof newTheme === 'string' ? JSON.parse(newTheme) : newTheme;
localStorage.setItem('app_theme', JSON.stringify(theme));
}
}
- if(theme) {
+ // 3. Pintamos la app
+ if(theme && theme.primary) {
document.documentElement.style.setProperty('--primary', theme.primary);
document.documentElement.style.setProperty('--secondary', theme.secondary);
- document.documentElement.style.setProperty('--app-bg', theme.bg);
+ document.documentElement.style.setProperty('--app-bg', theme.bg || '#f4f7f9');
}
- } catch (e) { console.warn("Usando tema por defecto"); }
+ } catch (e) { console.warn("Usando tema por defecto", e); }
}
document.addEventListener("DOMContentLoaded", async () => {