Noticias
Revisa todas nuestras publicaciones y manténte al día con nosotros.
No se pudo cargar la información desde la intranet.
News API error. Status=500 Internal Server Error. Url=https://demo-base.softcenter.cl/Api/News/Search?page=1&pageSize=12&tag=FORESTAL. Body= <!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8" /> <meta http-equiv="x-ua-compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Error interno del servidor — Tercera Compañia Cuerpo de Bomberos de Isla de Maipo</title> <!-- Bootstrap 5 CSS (permitido por tu CSP via cdn.jsdelivr.net) --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" /> <!-- Bootstrap Icons --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" /> <!-- DataTables (bundle único descargado desde datatables.net/download) Debe existir en: /Content/Templates/assets/vendor/datatables/DataTables/datatables.min.css --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css"> <!-- Tema Bomberos --> <link rel="stylesheet" href="/Content/Templates/assets/css/bomberos-theme.css?v=2026072009" /> </head> <body data-user="anon"> <div class="wrapper"> <!-- Sidebar --> <aside class="sidebar sidebar-apollo" id="sidebar"> <!-- Header del Sidebar con Logo - Estilo Apollo --> <div class="sidebar-header"> <a href="/Api/Home/Index" class="sidebar-brand" aria-label="Ir al inicio"> <div class="brand-logo"> <img class="brand-logo-img" src="/Content/Templates/assets/img/logo_compania.png" alt="Logo 3ª Compañía" /> </div> <div class="brand-text"> <span class="brand-title">Intranet</span> <span class="brand-subtitle"><strong>Tercera Compañia</strong></span> <span class="brand-subtitle">Cuerpo de Bomberos de Isla de Maipo</span> </div> </a> </div> <!-- Menú de Navegación Apollo --> <nav class="sidebar-menu apollo-menu" aria-label="Menú principal"> <div class="menu-host" id="mainMenu"> <div class="text-muted small px-2">[MainMenu] Menú vacÃo</div> </div> </nav> <script nonce=""> (function () { var menuHost = document.getElementById('mainMenu'); if (!menuHost) return; var serverMenu = menuHost.querySelector('.menu-shell'); if (serverMenu) { try { document.body.classList.add('menu-js-ready'); } catch (e) { } var wrapperServer = document.querySelector('.wrapper'); var storagePrefixServer = 'terceraIntranetMenu.'; var userKeyServer = (document.body && document.body.getAttribute('data-user')) || 'anon'; var selectedRootKeyServer = storagePrefixServer + userKeyServer + '.selectedRoot'; var collapsedStateKeyServer = storagePrefixServer + userKeyServer + '.sidebarCollapsed'; function expandPanelSubmenus(panel) { if (!panel) return; var submenuItems = panel.querySelectorAll('.menu-item.has-submenu'); for (var i = 0; i < submenuItems.length; i++) { submenuItems[i].classList.add('open'); var toggle = submenuItems[i].querySelector(':scope > .menu-toggle'); if (toggle) { toggle.setAttribute('aria-expanded', 'true'); } } } function selectServerPanel(panelId, persist) { if (!panelId) return; panelId = panelId.replace(/^#/, ''); var panels = serverMenu.querySelectorAll('.menu-root-panel'); var activePanel = null; for (var p = 0; p < panels.length; p++) { var isPanelActive = panels[p].getAttribute('data-menu-panel') === panelId; panels[p].classList.toggle('active', isPanelActive); if (isPanelActive) { activePanel = panels[p]; } } var railLinks = serverMenu.querySelectorAll('.menu-rail-link'); for (var r = 0; r < railLinks.length; r++) { var isActive = railLinks[r].getAttribute('data-menu-panel') === panelId; railLinks[r].classList.toggle('active', isActive); railLinks[r].setAttribute('aria-current', isActive ? 'page' : 'false'); } if (persist) { try { localStorage.setItem(selectedRootKeyServer, panelId); } catch (e) { } } expandPanelSubmenus(activePanel); } try { var savedPanel = localStorage.getItem(selectedRootKeyServer); if (savedPanel && serverMenu.querySelector('.menu-root-panel[data-menu-panel="' + savedPanel + '"]')) { selectServerPanel(savedPanel, false); } } catch (e) { } expandPanelSubmenus(serverMenu.querySelector('.menu-root-panel.active')); serverMenu.addEventListener('click', function (ev) { var railLink = ev.target.closest('.menu-rail-link'); if (railLink && railLink.getAttribute('data-menu-panel')) { ev.preventDefault(); if (wrapperServer) { wrapperServer.classList.remove('sidebar-collapsed'); try { localStorage.setItem(collapsedStateKeyServer, false); } catch (e) { } } var targetPanel = railLink.getAttribute('data-menu-panel'); selectServerPanel(targetPanel, true); if (window.location.hash !== '#' + targetPanel) { window.location.hash = targetPanel; } return; } var toggle = ev.target.closest('.menu-toggle'); if (!toggle) return; var item = toggle.closest('.menu-item'); if (!item || !item.querySelector(':scope > .submenu')) return; ev.preventDefault(); var willOpen = !item.classList.contains('open'); var siblings = item.parentElement ? item.parentElement.children : []; for (var s = 0; s < siblings.length; s++) { if (siblings[s] !== item && siblings[s].classList && siblings[s].classList.contains('open')) { siblings[s].classList.remove('open'); var siblingToggle = siblings[s].querySelector(':scope > .menu-toggle'); if (siblingToggle) siblingToggle.setAttribute('aria-expanded', 'false'); } } item.classList.toggle('open', willOpen); toggle.setAttribute('aria-expanded', willOpen ? 'true' : 'false'); }); window.addEventListener('hashchange', function () { var hashPanel = (window.location.hash || '').replace('#', ''); if (hashPanel && serverMenu.querySelector('.menu-root-panel[data-menu-panel="' + hashPanel + '"]')) { selectServerPanel(hashPanel, true); } }); var initialHashPanel = (window.location.hash || '').replace('#', ''); if (initialHashPanel && serverMenu.querySelector('.menu-root-panel[data-menu-panel="' + initialHashPanel + '"]')) { selectServerPanel(initialHashPanel, false); } document.addEventListener('click', function (ev) { var mobileToggle = ev.target.closest('#mobileToggle'); if (mobileToggle && wrapperServer) { ev.preventDefault(); wrapperServer.classList.toggle('sidebar-open'); } }); try { if (localStorage.getItem(collapsedStateKeyServer) === 'true' && wrapperServer) { wrapperServer.classList.add('sidebar-collapsed'); } } catch (e) { } return; } var menuRoot = menuHost.querySelector('ul') || menuHost; menuRoot.classList.add('menu-list'); var wrapper = document.querySelector('.wrapper'); var storagePrefix = 'terceraIntranetMenu.'; var userKey = (document.body && document.body.getAttribute('data-user')) || 'anon'; var openStateKey = storagePrefix + userKey + '.openGroups'; var selectedRootKey = storagePrefix + userKey + '.selectedRoot'; var collapsedStateKey = storagePrefix + userKey + '.sidebarCollapsed'; // Marca que el JS está activo try { document.body.classList.add('menu-js-ready'); } catch (e) { } // Helper: selección directa de hijos function direct(el, selector) { try { return el.querySelector(':scope > ' + selector); } catch (e) { return el.querySelector(selector); } } function getDirectTextNodes(el) { var nodes = []; for (var n = 0; n < el.childNodes.length; n++) { var child = el.childNodes[n]; if (child.nodeType === 3 && child.nodeValue && child.nodeValue.trim()) { nodes.push(child); } } return nodes; } function ensureMenuText(link) { if (!link || link.querySelector('.menu-text')) return; var textNodes = getDirectTextNodes(link); if (!textNodes.length) return; var span = document.createElement('span'); span.className = 'menu-text'; span.textContent = textNodes.map(function (node) { return node.nodeValue.trim(); }).join(' '); link.insertBefore(span, textNodes[0]); for (var t = 0; t < textNodes.length; t++) { textNodes[t].parentNode.removeChild(textNodes[t]); } } function normalizePath(value) { if (!value || value === '#' || value === 'javascript:void(0)') return ''; var parser = document.createElement('a'); parser.href = value; var path = (parser.pathname || '').toLowerCase(); if (path.length > 1 && path.charAt(path.length - 1) === '/') { path = path.substring(0, path.length - 1); } return path; } function setOpen(li, isOpen) { if (!li) return; li.classList.toggle('open', !!isOpen); var trigger = direct(li, 'a.menu-toggle'); if (trigger) { trigger.setAttribute('aria-expanded', isOpen ? 'true' : 'false'); } } function getMenuItemKey(li) { var link = direct(li, 'a.menu-link'); if (!link) return ''; return normalizePath(link.getAttribute('href')) || (link.textContent || '').trim().toLowerCase(); } function getTopMenuItem(li) { var current = li; while (current && current.parentElement && current.parentElement !== menuRoot) { var parentLi = current.parentElement.closest('li.menu-item'); if (!parentLi) break; current = parentLi; } return current; } function saveOpenState() { var keys = []; var opened = menuRoot.querySelectorAll('li.menu-item.open'); for (var o = 0; o < opened.length; o++) { var key = getMenuItemKey(opened[o]); if (key) keys.push(key); } try { localStorage.setItem(openStateKey, JSON.stringify(keys)); } catch (e) { // Ignora errores de localStorage. } } function restoreOpenState() { var keys = []; try { keys = JSON.parse(localStorage.getItem(openStateKey) || '[]'); } catch (e) { keys = []; } if (!keys || !keys.length) return; var items = menuRoot.querySelectorAll('li.menu-item.has-submenu'); for (var r = 0; r < items.length; r++) { if (keys.indexOf(getMenuItemKey(items[r])) >= 0) { setOpen(items[r], true); } } } // Convierte <div class="nav-link"> en <a href="#"> para hacerlo clickeable function ensureTrigger(li) { var a = direct(li, 'a'); if (a) return a; var div = direct(li, 'div.nav-link'); if (!div) return null; var link = document.createElement('a'); link.href = '#'; link.className = div.className; link.innerHTML = div.innerHTML; div.parentNode.replaceChild(link, div); return link; } // 1) NORMALIZA ESTRUCTURA: agrega clases y elementos necesarios var allLis = menuRoot.querySelectorAll('li'); for (var i = 0; i < allLis.length; i++) { var li = allLis[i]; li.classList.add('menu-item'); var childUl = direct(li, 'ul'); var trigger = ensureTrigger(li); if (childUl) { // Es un item con submenú childUl.classList.add('submenu'); li.classList.add('has-submenu'); if (trigger) { trigger.classList.add('menu-link', 'menu-toggle'); trigger.setAttribute('aria-expanded', 'false'); // Agrega flecha si no existe if (!trigger.querySelector('.menu-arrow')) { var arrow = document.createElement('span'); arrow.className = 'menu-arrow'; arrow.setAttribute('aria-hidden', 'true'); arrow.innerHTML = '<i class="bi bi-chevron-right"></i>'; trigger.appendChild(arrow); } } } else { // Es un item hoja (sin hijos) if (trigger) { trigger.classList.add('menu-link'); } } ensureMenuText(trigger); if (trigger && !trigger.getAttribute('title')) { var label = (trigger.textContent || '').trim(); if (label) trigger.setAttribute('title', label); } } restoreOpenState(); // 2) MARCA EL ACTIVO por URL (solo links reales) var currentPath = normalizePath(window.location.href); var links = menuRoot.querySelectorAll('a.menu-link[href]'); var bestMatch = null; var bestLength = -1; for (var j = 0; j < links.length; j++) { var href = normalizePath(links[j].getAttribute('href')); if (!href) continue; if (currentPath === href || (href.length > 1 && currentPath.indexOf(href + '/') === 0)) { if (href.length > bestLength) { bestMatch = links[j]; bestLength = href.length; } } } if (bestMatch) { var activeLi = bestMatch.closest('li.menu-item'); if (activeLi) activeLi.classList.add('active'); } // 3) ABRE PADRES del item activo var activeNodes = menuRoot.querySelectorAll('li.active'); for (var k = 0; k < activeNodes.length; k++) { var node = activeNodes[k]; var parent = node.parentElement; while (parent && parent !== menuRoot) { if (parent.classList && parent.classList.contains('submenu')) { var parentLi = parent.closest('li.menu-item'); if (parentLi) { setOpen(parentLi, true); } } parent = parent.parentElement; } } saveOpenState(); function selectRootMenu(rootLi, persist) { if (!rootLi) return; var roots = menuRoot.children; for (var x = 0; x < roots.length; x++) { if (roots[x].classList) { roots[x].classList.toggle('rail-selected', roots[x] === rootLi); } } var railLinks = document.querySelectorAll('.menu-rail-link'); var selectedKey = getMenuItemKey(rootLi); for (var y = 0; y < railLinks.length; y++) { var isSelected = railLinks[y].getAttribute('data-menu-key') === selectedKey; railLinks[y].classList.toggle('active', isSelected); railLinks[y].setAttribute('aria-current', isSelected ? 'page' : 'false'); } setOpen(rootLi, true); if (persist) { try { localStorage.setItem(selectedRootKey, selectedKey); } catch (e) { // Ignora errores de localStorage. } } } function buildRailMenu() { var sidebar = document.getElementById('sidebar'); if (!sidebar || sidebar.querySelector('.menu-rail')) return; var rail = document.createElement('nav'); rail.className = 'menu-rail'; rail.setAttribute('aria-label', 'Secciones principales'); var roots = menuRoot.children; for (var m = 0; m < roots.length; m++) { var rootLi = roots[m]; if (!rootLi.classList) continue; var rootLink = direct(rootLi, 'a.menu-link'); if (!rootLink) continue; var rootKey = getMenuItemKey(rootLi) || ('root-' + m); rootLi.setAttribute('data-menu-key', rootKey); var railLink = document.createElement('a'); railLink.className = 'menu-rail-link'; railLink.href = rootLi.classList.contains('has-submenu') ? '#' : (rootLink.getAttribute('href') || '#'); railLink.setAttribute('data-menu-key', rootKey); railLink.setAttribute('title', (rootLink.textContent || '').trim()); railLink.setAttribute('aria-label', (rootLink.textContent || '').trim()); var icon = rootLink.querySelector('i'); if (icon) { railLink.appendChild(icon.cloneNode(true)); } else { var fallbackIcon = document.createElement('i'); fallbackIcon.className = 'bi bi-circle'; railLink.appendChild(fallbackIcon); } railLink.addEventListener('click', (function (targetLi) { return function (ev) { if (targetLi.classList.contains('has-submenu')) { ev.preventDefault(); selectRootMenu(targetLi, true); } }; })(rootLi)); rail.appendChild(railLink); } sidebar.insertBefore(rail, sidebar.firstChild); var selectedRoot = null; if (activeNodes.length) { selectedRoot = getTopMenuItem(activeNodes[0]); } if (!selectedRoot) { try { var savedRoot = localStorage.getItem(selectedRootKey); for (var sRoot = 0; sRoot < roots.length; sRoot++) { if (roots[sRoot].classList && getMenuItemKey(roots[sRoot]) === savedRoot) { selectedRoot = roots[sRoot]; break; } } } catch (e) { selectedRoot = null; } } if (!selectedRoot && roots.length) { selectedRoot = roots[0]; } selectRootMenu(selectedRoot, false); } buildRailMenu(); // 4) ACORDEÓN: clic en toggles abre/cierra (cierra hermanos) menuRoot.addEventListener('click', function (ev) { var link = ev.target.closest('a.menu-toggle'); if (!link) return; var li = link.closest('li.menu-item'); if (!li) return; var submenu = direct(li, 'ul.submenu'); if (!submenu) return; ev.preventDefault(); var willOpen = !li.classList.contains('open'); // Cierra hermanos del mismo nivel var siblings = li.parentElement ? li.parentElement.children : []; for (var s = 0; s < siblings.length; s++) { var sib = siblings[s]; if (sib !== li && sib.classList && sib.classList.contains('open')) { setOpen(sib, false); } } // Abre o cierra el actual setOpen(li, willOpen); saveOpenState(); }); // 5) TOGGLE del sidebar (colapsar/expandir) var toggleButtons = [ document.getElementById('btnSidebarToggle'), document.getElementById('sidebarToggleDesktop') ].filter(function (btn) { return !!btn; }); function toggleCollapsed() { if (!wrapper) return; wrapper.classList.toggle('sidebar-collapsed'); var isCollapsed = wrapper.classList.contains('sidebar-collapsed'); try { localStorage.setItem(collapsedStateKey, isCollapsed); } catch (e) { // Ignora errores de localStorage. } } for (var b = 0; b < toggleButtons.length; b++) { toggleButtons[b].addEventListener('click', toggleCollapsed); } var mobileToggle = document.getElementById('mobileToggle'); if (mobileToggle && wrapper) { mobileToggle.addEventListener('click', function (ev) { ev.preventDefault(); wrapper.classList.toggle('sidebar-open'); }); } document.addEventListener('click', function (event) { if (!wrapper || window.innerWidth >= 992 || !wrapper.classList.contains('sidebar-open')) return; var sidebar = document.getElementById('sidebar'); var clickedSidebar = sidebar && sidebar.contains(event.target); var clickedToggle = mobileToggle && mobileToggle.contains(event.target); if (!clickedSidebar && !clickedToggle) { wrapper.classList.remove('sidebar-open'); } }); // 6) RESTAURA estado colapsado desde localStorage try { var savedState = localStorage.getItem(collapsedStateKey); if (savedState === 'true') { if (wrapper) { wrapper.classList.add('sidebar-collapsed'); } } } catch (e) { // Ignora errores de localStorage } })(); </script> </aside> <!-- Contenido principal --> <div class="main-content"> <!-- Navbar superior --> <nav class="navbar-top"> <div class="navbar-left"> <!-- Toggle Sidebar - Visible en Desktop --> <button class="sidebar-toggle-btn d-none d-xl-block" id="sidebarToggleDesktop" type="button" aria-label="Mostrar"> <i class="bi bi-list"></i> </button> <!-- Toggle Mobile - Solo en pantallas pequeñas --> <button class="mobile-toggle d-block d-xl-none" id="mobileToggle" type="button" aria-label="Mostrar menú"> <i class="bi bi-list"></i> </button> <!-- Buscador --> </div> <div class="navbar-right"> <!-- Notificaciones --> <div class="navbar-item dropdown"> <button class="icon-btn" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-label="Notificaciones"> <i class="bi bi-bell"></i> </button> <div class="dropdown-menu dropdown-menu-end dropdown-notifications"> <div class="dropdown-header"> <h6 class="mb-0">Notificaciones</h6> </div> <div class="dropdown-body"> <div class="notification-empty"> <i class="bi bi-bell-slash"></i> <p>No hay notificaciones</p> </div> </div> <div class="dropdown-footer"> <a href="/Api/Notifications/Index">Ver todas</a> </div> </div> </div> <!-- Mensajes --> <div class="navbar-item"> <button class="icon-btn" type="button" aria-label="Mensajes"> <i class="bi bi-envelope"></i> </button> </div> <!-- Usuario --> <div class="navbar-item dropdown"> <button class="user-dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-label="Menú de usuario"> <div class="user-avatar"> <span class="avatar-circle">I</span> </div> <span class="user-name d-none d-md-inline">Invitado</span> <i class="bi bi-chevron-down ms-1"></i> </button> <ul class="dropdown-menu dropdown-menu-end"> <li class="dropdown-header"> <div class="dropdown-user-info"> <div class="user-avatar-large"> <span class="avatar-circle-large">I</span> </div> <div> <div class="fw-semibold">Invitado</div> <small class="text-muted"></small> </div> </div> </li> <li><hr class="dropdown-divider" /></li> <li> <a class="dropdown-item" href="/Api/Users/Index"> <i class="bi bi-person"></i> <span>Mi perfil</span> </a> </li> <li> <a class="dropdown-item" href="/Api/Home/Index"> <i class="bi bi-speedometer2"></i> <span>Panel principal</span> </a> </li> <li> <a class="dropdown-item" href="/Api/Settings/Index"> <i class="bi bi-gear"></i> <span>Configuración</span> </a> </li> <li><hr class="dropdown-divider" /></li> <li> <form action="/Api/Auth/Logout" class="m-0" method="post"><input name="__RequestVerificationToken" type="hidden" value="avVLGrvGjZHsZJKdOEZ8sW5hXLKtOsWG1hDa5qU3Wd7_xegyJjtQXZclMUM6GGyXIMwPj_bt37bipwGSDvyy4joVeu6pIJ-fesmO1XzPC_E1" /> <button type="submit" class="dropdown-item text-danger"> <i class="bi bi-box-arrow-right"></i> <span>Cerrar sesión</span> </button> </form> </li> </ul> </div> </div> </nav> <!-- Contenido de la página --> <main class="page-content"> <div class="container py-5"> <div class="row justify-content-center"> <div class="col-lg-6 col-md-8"> <div class="card shadow-sm border-0"> <div class="card-body text-center p-4"> <div class="mb-3 text-danger"> <span class="d-inline-block fw-bold" style="font-size: 3rem;">500</span> </div> <h1 class="h3 mb-3">Error interno del servidor</h1> <p class="text-muted mb-4"> Se produjo un error inesperado al procesar tu solicitud. Si el problema persiste, por favor informa a soporte indicando la fecha y hora del incidente. </p> <div class="d-grid gap-2 d-sm-flex justify-content-sm-center"> <a href="/Api/Home/Index" class="btn btn-success"> <i class="bi bi-house-door"></i> Volver al inicio </a> <a href="javascript:location.reload()" class="btn btn-outline-secondary"> <i class="bi bi-arrow-clockwise"></i> Reintentar </a> </div> </div> </div> </div> </div> </div> </main> <!-- Footer --> <footer class="footer"> <div class="footer-content"> <div class="mt-4 text-center" style="font-size:.8rem;color:#94a3b8;"> © 2025 - 2026 Tercera Compañía Cuerpo de Bomberos de Isla de Maipo - Diseño y Desarrollo <a href="https://www.softcenter.cl" target="_blank" style="color: rgb(255, 106, 0); font-weight:600;"> SoftCenter | Technology </a> </div> </div> </footer> </div> </div> <!-- jQuery (permitido por tu CSP via cdn.jsdelivr.net) --> <script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/sortablejs@1.15.0/Sortable.min.js"></script> <!-- ============================= --> <!-- jQuery (YA AUTORIZADO POR CSP) --> <!-- ============================= --> <script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> <!-- ============================= --> <!-- DataTables 1.13.x + Bootstrap 5 --> <!-- ============================= --> <link rel="stylesheet" href="/Content/Templates/assets/vendor/datatables/css/dataTables.bootstrap5.min.css?v=1310" /> <script src="/Content/Templates/assets/vendor/datatables/js/jquery.dataTables.min.js?v=1310"></script> <script src="/Content/Templates/assets/vendor/datatables/js/dataTables.bootstrap5.min.js?v=1310"></script> <!-- ============================= --> <!-- DataTables Buttons --> <!-- ============================= --> <link rel="stylesheet" href="/Content/Templates/assets/vendor/datatables/css/buttons.bootstrap5.min.css?v=2420" /> <script src="/Content/Templates/assets/vendor/datatables/js/dataTables.buttons.min.js?v=2420"></script> <script src="/Content/Templates/assets/vendor/datatables/js/buttons.bootstrap5.min.js?v=2420"></script> <!-- ============================= --> <!-- Export Excel / PDF (OBLIGATORIO) --> <!-- ============================= --> <script src="/Content/Templates/assets/vendor/datatables/js/jszip.min.js?v=3101"></script> <script src="/Content/Templates/assets/vendor/datatables/js/pdfmake.min.js?v=0270"></script> <script src="/Content/Templates/assets/vendor/datatables/js/vfs_fonts.js?v=0270"></script> <script src="/Content/Templates/assets/vendor/datatables/js/buttons.html5.min.js?v=2420"></script> <!-- ============================= --> <!-- Apollo DataTables Wrapper --> <!-- ============================= --> <script src="/Content/Templates/assets/js/datatables-apollo.js?v=4000"></script> <script nonce=""> (function () { var storageKey = 'terceraIntranetMenu.' + (document.body.getAttribute('data-user') || 'anon') + '.sidebarCollapsed'; document.addEventListener('click', function (ev) { var toggle = ev.target.closest('#sidebarToggleDesktop, #btnSidebarToggle'); if (!toggle) return; var wrapper = document.querySelector('.wrapper'); if (!wrapper) return; ev.preventDefault(); wrapper.classList.toggle('sidebar-collapsed'); try { localStorage.setItem(storageKey, wrapper.classList.contains('sidebar-collapsed')); } catch (e) { } }); })(); </script> </body> </html>
News API error. Status=500 Internal Server Error. Url=https://demo-base.softcenter.cl/Api/News/Search?page=1&pageSize=12&tag=FORESTAL. Body= <!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8" /> <meta http-equiv="x-ua-compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Error interno del servidor — Tercera Compañia Cuerpo de Bomberos de Isla de Maipo</title> <!-- Bootstrap 5 CSS (permitido por tu CSP via cdn.jsdelivr.net) --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" /> <!-- Bootstrap Icons --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" /> <!-- DataTables (bundle único descargado desde datatables.net/download) Debe existir en: /Content/Templates/assets/vendor/datatables/DataTables/datatables.min.css --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css"> <!-- Tema Bomberos --> <link rel="stylesheet" href="/Content/Templates/assets/css/bomberos-theme.css?v=2026072009" /> </head> <body data-user="anon"> <div class="wrapper"> <!-- Sidebar --> <aside class="sidebar sidebar-apollo" id="sidebar"> <!-- Header del Sidebar con Logo - Estilo Apollo --> <div class="sidebar-header"> <a href="/Api/Home/Index" class="sidebar-brand" aria-label="Ir al inicio"> <div class="brand-logo"> <img class="brand-logo-img" src="/Content/Templates/assets/img/logo_compania.png" alt="Logo 3ª Compañía" /> </div> <div class="brand-text"> <span class="brand-title">Intranet</span> <span class="brand-subtitle"><strong>Tercera Compañia</strong></span> <span class="brand-subtitle">Cuerpo de Bomberos de Isla de Maipo</span> </div> </a> </div> <!-- Menú de Navegación Apollo --> <nav class="sidebar-menu apollo-menu" aria-label="Menú principal"> <div class="menu-host" id="mainMenu"> <div class="text-muted small px-2">[MainMenu] Menú vacÃo</div> </div> </nav> <script nonce=""> (function () { var menuHost = document.getElementById('mainMenu'); if (!menuHost) return; var serverMenu = menuHost.querySelector('.menu-shell'); if (serverMenu) { try { document.body.classList.add('menu-js-ready'); } catch (e) { } var wrapperServer = document.querySelector('.wrapper'); var storagePrefixServer = 'terceraIntranetMenu.'; var userKeyServer = (document.body && document.body.getAttribute('data-user')) || 'anon'; var selectedRootKeyServer = storagePrefixServer + userKeyServer + '.selectedRoot'; var collapsedStateKeyServer = storagePrefixServer + userKeyServer + '.sidebarCollapsed'; function expandPanelSubmenus(panel) { if (!panel) return; var submenuItems = panel.querySelectorAll('.menu-item.has-submenu'); for (var i = 0; i < submenuItems.length; i++) { submenuItems[i].classList.add('open'); var toggle = submenuItems[i].querySelector(':scope > .menu-toggle'); if (toggle) { toggle.setAttribute('aria-expanded', 'true'); } } } function selectServerPanel(panelId, persist) { if (!panelId) return; panelId = panelId.replace(/^#/, ''); var panels = serverMenu.querySelectorAll('.menu-root-panel'); var activePanel = null; for (var p = 0; p < panels.length; p++) { var isPanelActive = panels[p].getAttribute('data-menu-panel') === panelId; panels[p].classList.toggle('active', isPanelActive); if (isPanelActive) { activePanel = panels[p]; } } var railLinks = serverMenu.querySelectorAll('.menu-rail-link'); for (var r = 0; r < railLinks.length; r++) { var isActive = railLinks[r].getAttribute('data-menu-panel') === panelId; railLinks[r].classList.toggle('active', isActive); railLinks[r].setAttribute('aria-current', isActive ? 'page' : 'false'); } if (persist) { try { localStorage.setItem(selectedRootKeyServer, panelId); } catch (e) { } } expandPanelSubmenus(activePanel); } try { var savedPanel = localStorage.getItem(selectedRootKeyServer); if (savedPanel && serverMenu.querySelector('.menu-root-panel[data-menu-panel="' + savedPanel + '"]')) { selectServerPanel(savedPanel, false); } } catch (e) { } expandPanelSubmenus(serverMenu.querySelector('.menu-root-panel.active')); serverMenu.addEventListener('click', function (ev) { var railLink = ev.target.closest('.menu-rail-link'); if (railLink && railLink.getAttribute('data-menu-panel')) { ev.preventDefault(); if (wrapperServer) { wrapperServer.classList.remove('sidebar-collapsed'); try { localStorage.setItem(collapsedStateKeyServer, false); } catch (e) { } } var targetPanel = railLink.getAttribute('data-menu-panel'); selectServerPanel(targetPanel, true); if (window.location.hash !== '#' + targetPanel) { window.location.hash = targetPanel; } return; } var toggle = ev.target.closest('.menu-toggle'); if (!toggle) return; var item = toggle.closest('.menu-item'); if (!item || !item.querySelector(':scope > .submenu')) return; ev.preventDefault(); var willOpen = !item.classList.contains('open'); var siblings = item.parentElement ? item.parentElement.children : []; for (var s = 0; s < siblings.length; s++) { if (siblings[s] !== item && siblings[s].classList && siblings[s].classList.contains('open')) { siblings[s].classList.remove('open'); var siblingToggle = siblings[s].querySelector(':scope > .menu-toggle'); if (siblingToggle) siblingToggle.setAttribute('aria-expanded', 'false'); } } item.classList.toggle('open', willOpen); toggle.setAttribute('aria-expanded', willOpen ? 'true' : 'false'); }); window.addEventListener('hashchange', function () { var hashPanel = (window.location.hash || '').replace('#', ''); if (hashPanel && serverMenu.querySelector('.menu-root-panel[data-menu-panel="' + hashPanel + '"]')) { selectServerPanel(hashPanel, true); } }); var initialHashPanel = (window.location.hash || '').replace('#', ''); if (initialHashPanel && serverMenu.querySelector('.menu-root-panel[data-menu-panel="' + initialHashPanel + '"]')) { selectServerPanel(initialHashPanel, false); } document.addEventListener('click', function (ev) { var mobileToggle = ev.target.closest('#mobileToggle'); if (mobileToggle && wrapperServer) { ev.preventDefault(); wrapperServer.classList.toggle('sidebar-open'); } }); try { if (localStorage.getItem(collapsedStateKeyServer) === 'true' && wrapperServer) { wrapperServer.classList.add('sidebar-collapsed'); } } catch (e) { } return; } var menuRoot = menuHost.querySelector('ul') || menuHost; menuRoot.classList.add('menu-list'); var wrapper = document.querySelector('.wrapper'); var storagePrefix = 'terceraIntranetMenu.'; var userKey = (document.body && document.body.getAttribute('data-user')) || 'anon'; var openStateKey = storagePrefix + userKey + '.openGroups'; var selectedRootKey = storagePrefix + userKey + '.selectedRoot'; var collapsedStateKey = storagePrefix + userKey + '.sidebarCollapsed'; // Marca que el JS está activo try { document.body.classList.add('menu-js-ready'); } catch (e) { } // Helper: selección directa de hijos function direct(el, selector) { try { return el.querySelector(':scope > ' + selector); } catch (e) { return el.querySelector(selector); } } function getDirectTextNodes(el) { var nodes = []; for (var n = 0; n < el.childNodes.length; n++) { var child = el.childNodes[n]; if (child.nodeType === 3 && child.nodeValue && child.nodeValue.trim()) { nodes.push(child); } } return nodes; } function ensureMenuText(link) { if (!link || link.querySelector('.menu-text')) return; var textNodes = getDirectTextNodes(link); if (!textNodes.length) return; var span = document.createElement('span'); span.className = 'menu-text'; span.textContent = textNodes.map(function (node) { return node.nodeValue.trim(); }).join(' '); link.insertBefore(span, textNodes[0]); for (var t = 0; t < textNodes.length; t++) { textNodes[t].parentNode.removeChild(textNodes[t]); } } function normalizePath(value) { if (!value || value === '#' || value === 'javascript:void(0)') return ''; var parser = document.createElement('a'); parser.href = value; var path = (parser.pathname || '').toLowerCase(); if (path.length > 1 && path.charAt(path.length - 1) === '/') { path = path.substring(0, path.length - 1); } return path; } function setOpen(li, isOpen) { if (!li) return; li.classList.toggle('open', !!isOpen); var trigger = direct(li, 'a.menu-toggle'); if (trigger) { trigger.setAttribute('aria-expanded', isOpen ? 'true' : 'false'); } } function getMenuItemKey(li) { var link = direct(li, 'a.menu-link'); if (!link) return ''; return normalizePath(link.getAttribute('href')) || (link.textContent || '').trim().toLowerCase(); } function getTopMenuItem(li) { var current = li; while (current && current.parentElement && current.parentElement !== menuRoot) { var parentLi = current.parentElement.closest('li.menu-item'); if (!parentLi) break; current = parentLi; } return current; } function saveOpenState() { var keys = []; var opened = menuRoot.querySelectorAll('li.menu-item.open'); for (var o = 0; o < opened.length; o++) { var key = getMenuItemKey(opened[o]); if (key) keys.push(key); } try { localStorage.setItem(openStateKey, JSON.stringify(keys)); } catch (e) { // Ignora errores de localStorage. } } function restoreOpenState() { var keys = []; try { keys = JSON.parse(localStorage.getItem(openStateKey) || '[]'); } catch (e) { keys = []; } if (!keys || !keys.length) return; var items = menuRoot.querySelectorAll('li.menu-item.has-submenu'); for (var r = 0; r < items.length; r++) { if (keys.indexOf(getMenuItemKey(items[r])) >= 0) { setOpen(items[r], true); } } } // Convierte <div class="nav-link"> en <a href="#"> para hacerlo clickeable function ensureTrigger(li) { var a = direct(li, 'a'); if (a) return a; var div = direct(li, 'div.nav-link'); if (!div) return null; var link = document.createElement('a'); link.href = '#'; link.className = div.className; link.innerHTML = div.innerHTML; div.parentNode.replaceChild(link, div); return link; } // 1) NORMALIZA ESTRUCTURA: agrega clases y elementos necesarios var allLis = menuRoot.querySelectorAll('li'); for (var i = 0; i < allLis.length; i++) { var li = allLis[i]; li.classList.add('menu-item'); var childUl = direct(li, 'ul'); var trigger = ensureTrigger(li); if (childUl) { // Es un item con submenú childUl.classList.add('submenu'); li.classList.add('has-submenu'); if (trigger) { trigger.classList.add('menu-link', 'menu-toggle'); trigger.setAttribute('aria-expanded', 'false'); // Agrega flecha si no existe if (!trigger.querySelector('.menu-arrow')) { var arrow = document.createElement('span'); arrow.className = 'menu-arrow'; arrow.setAttribute('aria-hidden', 'true'); arrow.innerHTML = '<i class="bi bi-chevron-right"></i>'; trigger.appendChild(arrow); } } } else { // Es un item hoja (sin hijos) if (trigger) { trigger.classList.add('menu-link'); } } ensureMenuText(trigger); if (trigger && !trigger.getAttribute('title')) { var label = (trigger.textContent || '').trim(); if (label) trigger.setAttribute('title', label); } } restoreOpenState(); // 2) MARCA EL ACTIVO por URL (solo links reales) var currentPath = normalizePath(window.location.href); var links = menuRoot.querySelectorAll('a.menu-link[href]'); var bestMatch = null; var bestLength = -1; for (var j = 0; j < links.length; j++) { var href = normalizePath(links[j].getAttribute('href')); if (!href) continue; if (currentPath === href || (href.length > 1 && currentPath.indexOf(href + '/') === 0)) { if (href.length > bestLength) { bestMatch = links[j]; bestLength = href.length; } } } if (bestMatch) { var activeLi = bestMatch.closest('li.menu-item'); if (activeLi) activeLi.classList.add('active'); } // 3) ABRE PADRES del item activo var activeNodes = menuRoot.querySelectorAll('li.active'); for (var k = 0; k < activeNodes.length; k++) { var node = activeNodes[k]; var parent = node.parentElement; while (parent && parent !== menuRoot) { if (parent.classList && parent.classList.contains('submenu')) { var parentLi = parent.closest('li.menu-item'); if (parentLi) { setOpen(parentLi, true); } } parent = parent.parentElement; } } saveOpenState(); function selectRootMenu(rootLi, persist) { if (!rootLi) return; var roots = menuRoot.children; for (var x = 0; x < roots.length; x++) { if (roots[x].classList) { roots[x].classList.toggle('rail-selected', roots[x] === rootLi); } } var railLinks = document.querySelectorAll('.menu-rail-link'); var selectedKey = getMenuItemKey(rootLi); for (var y = 0; y < railLinks.length; y++) { var isSelected = railLinks[y].getAttribute('data-menu-key') === selectedKey; railLinks[y].classList.toggle('active', isSelected); railLinks[y].setAttribute('aria-current', isSelected ? 'page' : 'false'); } setOpen(rootLi, true); if (persist) { try { localStorage.setItem(selectedRootKey, selectedKey); } catch (e) { // Ignora errores de localStorage. } } } function buildRailMenu() { var sidebar = document.getElementById('sidebar'); if (!sidebar || sidebar.querySelector('.menu-rail')) return; var rail = document.createElement('nav'); rail.className = 'menu-rail'; rail.setAttribute('aria-label', 'Secciones principales'); var roots = menuRoot.children; for (var m = 0; m < roots.length; m++) { var rootLi = roots[m]; if (!rootLi.classList) continue; var rootLink = direct(rootLi, 'a.menu-link'); if (!rootLink) continue; var rootKey = getMenuItemKey(rootLi) || ('root-' + m); rootLi.setAttribute('data-menu-key', rootKey); var railLink = document.createElement('a'); railLink.className = 'menu-rail-link'; railLink.href = rootLi.classList.contains('has-submenu') ? '#' : (rootLink.getAttribute('href') || '#'); railLink.setAttribute('data-menu-key', rootKey); railLink.setAttribute('title', (rootLink.textContent || '').trim()); railLink.setAttribute('aria-label', (rootLink.textContent || '').trim()); var icon = rootLink.querySelector('i'); if (icon) { railLink.appendChild(icon.cloneNode(true)); } else { var fallbackIcon = document.createElement('i'); fallbackIcon.className = 'bi bi-circle'; railLink.appendChild(fallbackIcon); } railLink.addEventListener('click', (function (targetLi) { return function (ev) { if (targetLi.classList.contains('has-submenu')) { ev.preventDefault(); selectRootMenu(targetLi, true); } }; })(rootLi)); rail.appendChild(railLink); } sidebar.insertBefore(rail, sidebar.firstChild); var selectedRoot = null; if (activeNodes.length) { selectedRoot = getTopMenuItem(activeNodes[0]); } if (!selectedRoot) { try { var savedRoot = localStorage.getItem(selectedRootKey); for (var sRoot = 0; sRoot < roots.length; sRoot++) { if (roots[sRoot].classList && getMenuItemKey(roots[sRoot]) === savedRoot) { selectedRoot = roots[sRoot]; break; } } } catch (e) { selectedRoot = null; } } if (!selectedRoot && roots.length) { selectedRoot = roots[0]; } selectRootMenu(selectedRoot, false); } buildRailMenu(); // 4) ACORDEÓN: clic en toggles abre/cierra (cierra hermanos) menuRoot.addEventListener('click', function (ev) { var link = ev.target.closest('a.menu-toggle'); if (!link) return; var li = link.closest('li.menu-item'); if (!li) return; var submenu = direct(li, 'ul.submenu'); if (!submenu) return; ev.preventDefault(); var willOpen = !li.classList.contains('open'); // Cierra hermanos del mismo nivel var siblings = li.parentElement ? li.parentElement.children : []; for (var s = 0; s < siblings.length; s++) { var sib = siblings[s]; if (sib !== li && sib.classList && sib.classList.contains('open')) { setOpen(sib, false); } } // Abre o cierra el actual setOpen(li, willOpen); saveOpenState(); }); // 5) TOGGLE del sidebar (colapsar/expandir) var toggleButtons = [ document.getElementById('btnSidebarToggle'), document.getElementById('sidebarToggleDesktop') ].filter(function (btn) { return !!btn; }); function toggleCollapsed() { if (!wrapper) return; wrapper.classList.toggle('sidebar-collapsed'); var isCollapsed = wrapper.classList.contains('sidebar-collapsed'); try { localStorage.setItem(collapsedStateKey, isCollapsed); } catch (e) { // Ignora errores de localStorage. } } for (var b = 0; b < toggleButtons.length; b++) { toggleButtons[b].addEventListener('click', toggleCollapsed); } var mobileToggle = document.getElementById('mobileToggle'); if (mobileToggle && wrapper) { mobileToggle.addEventListener('click', function (ev) { ev.preventDefault(); wrapper.classList.toggle('sidebar-open'); }); } document.addEventListener('click', function (event) { if (!wrapper || window.innerWidth >= 992 || !wrapper.classList.contains('sidebar-open')) return; var sidebar = document.getElementById('sidebar'); var clickedSidebar = sidebar && sidebar.contains(event.target); var clickedToggle = mobileToggle && mobileToggle.contains(event.target); if (!clickedSidebar && !clickedToggle) { wrapper.classList.remove('sidebar-open'); } }); // 6) RESTAURA estado colapsado desde localStorage try { var savedState = localStorage.getItem(collapsedStateKey); if (savedState === 'true') { if (wrapper) { wrapper.classList.add('sidebar-collapsed'); } } } catch (e) { // Ignora errores de localStorage } })(); </script> </aside> <!-- Contenido principal --> <div class="main-content"> <!-- Navbar superior --> <nav class="navbar-top"> <div class="navbar-left"> <!-- Toggle Sidebar - Visible en Desktop --> <button class="sidebar-toggle-btn d-none d-xl-block" id="sidebarToggleDesktop" type="button" aria-label="Mostrar"> <i class="bi bi-list"></i> </button> <!-- Toggle Mobile - Solo en pantallas pequeñas --> <button class="mobile-toggle d-block d-xl-none" id="mobileToggle" type="button" aria-label="Mostrar menú"> <i class="bi bi-list"></i> </button> <!-- Buscador --> </div> <div class="navbar-right"> <!-- Notificaciones --> <div class="navbar-item dropdown"> <button class="icon-btn" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-label="Notificaciones"> <i class="bi bi-bell"></i> </button> <div class="dropdown-menu dropdown-menu-end dropdown-notifications"> <div class="dropdown-header"> <h6 class="mb-0">Notificaciones</h6> </div> <div class="dropdown-body"> <div class="notification-empty"> <i class="bi bi-bell-slash"></i> <p>No hay notificaciones</p> </div> </div> <div class="dropdown-footer"> <a href="/Api/Notifications/Index">Ver todas</a> </div> </div> </div> <!-- Mensajes --> <div class="navbar-item"> <button class="icon-btn" type="button" aria-label="Mensajes"> <i class="bi bi-envelope"></i> </button> </div> <!-- Usuario --> <div class="navbar-item dropdown"> <button class="user-dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-label="Menú de usuario"> <div class="user-avatar"> <span class="avatar-circle">I</span> </div> <span class="user-name d-none d-md-inline">Invitado</span> <i class="bi bi-chevron-down ms-1"></i> </button> <ul class="dropdown-menu dropdown-menu-end"> <li class="dropdown-header"> <div class="dropdown-user-info"> <div class="user-avatar-large"> <span class="avatar-circle-large">I</span> </div> <div> <div class="fw-semibold">Invitado</div> <small class="text-muted"></small> </div> </div> </li> <li><hr class="dropdown-divider" /></li> <li> <a class="dropdown-item" href="/Api/Users/Index"> <i class="bi bi-person"></i> <span>Mi perfil</span> </a> </li> <li> <a class="dropdown-item" href="/Api/Home/Index"> <i class="bi bi-speedometer2"></i> <span>Panel principal</span> </a> </li> <li> <a class="dropdown-item" href="/Api/Settings/Index"> <i class="bi bi-gear"></i> <span>Configuración</span> </a> </li> <li><hr class="dropdown-divider" /></li> <li> <form action="/Api/Auth/Logout" class="m-0" method="post"><input name="__RequestVerificationToken" type="hidden" value="avVLGrvGjZHsZJKdOEZ8sW5hXLKtOsWG1hDa5qU3Wd7_xegyJjtQXZclMUM6GGyXIMwPj_bt37bipwGSDvyy4joVeu6pIJ-fesmO1XzPC_E1" /> <button type="submit" class="dropdown-item text-danger"> <i class="bi bi-box-arrow-right"></i> <span>Cerrar sesión</span> </button> </form> </li> </ul> </div> </div> </nav> <!-- Contenido de la página --> <main class="page-content"> <div class="container py-5"> <div class="row justify-content-center"> <div class="col-lg-6 col-md-8"> <div class="card shadow-sm border-0"> <div class="card-body text-center p-4"> <div class="mb-3 text-danger"> <span class="d-inline-block fw-bold" style="font-size: 3rem;">500</span> </div> <h1 class="h3 mb-3">Error interno del servidor</h1> <p class="text-muted mb-4"> Se produjo un error inesperado al procesar tu solicitud. Si el problema persiste, por favor informa a soporte indicando la fecha y hora del incidente. </p> <div class="d-grid gap-2 d-sm-flex justify-content-sm-center"> <a href="/Api/Home/Index" class="btn btn-success"> <i class="bi bi-house-door"></i> Volver al inicio </a> <a href="javascript:location.reload()" class="btn btn-outline-secondary"> <i class="bi bi-arrow-clockwise"></i> Reintentar </a> </div> </div> </div> </div> </div> </div> </main> <!-- Footer --> <footer class="footer"> <div class="footer-content"> <div class="mt-4 text-center" style="font-size:.8rem;color:#94a3b8;"> © 2025 - 2026 Tercera Compañía Cuerpo de Bomberos de Isla de Maipo - Diseño y Desarrollo <a href="https://www.softcenter.cl" target="_blank" style="color: rgb(255, 106, 0); font-weight:600;"> SoftCenter | Technology </a> </div> </div> </footer> </div> </div> <!-- jQuery (permitido por tu CSP via cdn.jsdelivr.net) --> <script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/sortablejs@1.15.0/Sortable.min.js"></script> <!-- ============================= --> <!-- jQuery (YA AUTORIZADO POR CSP) --> <!-- ============================= --> <script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> <!-- ============================= --> <!-- DataTables 1.13.x + Bootstrap 5 --> <!-- ============================= --> <link rel="stylesheet" href="/Content/Templates/assets/vendor/datatables/css/dataTables.bootstrap5.min.css?v=1310" /> <script src="/Content/Templates/assets/vendor/datatables/js/jquery.dataTables.min.js?v=1310"></script> <script src="/Content/Templates/assets/vendor/datatables/js/dataTables.bootstrap5.min.js?v=1310"></script> <!-- ============================= --> <!-- DataTables Buttons --> <!-- ============================= --> <link rel="stylesheet" href="/Content/Templates/assets/vendor/datatables/css/buttons.bootstrap5.min.css?v=2420" /> <script src="/Content/Templates/assets/vendor/datatables/js/dataTables.buttons.min.js?v=2420"></script> <script src="/Content/Templates/assets/vendor/datatables/js/buttons.bootstrap5.min.js?v=2420"></script> <!-- ============================= --> <!-- Export Excel / PDF (OBLIGATORIO) --> <!-- ============================= --> <script src="/Content/Templates/assets/vendor/datatables/js/jszip.min.js?v=3101"></script> <script src="/Content/Templates/assets/vendor/datatables/js/pdfmake.min.js?v=0270"></script> <script src="/Content/Templates/assets/vendor/datatables/js/vfs_fonts.js?v=0270"></script> <script src="/Content/Templates/assets/vendor/datatables/js/buttons.html5.min.js?v=2420"></script> <!-- ============================= --> <!-- Apollo DataTables Wrapper --> <!-- ============================= --> <script src="/Content/Templates/assets/js/datatables-apollo.js?v=4000"></script> <script nonce=""> (function () { var storageKey = 'terceraIntranetMenu.' + (document.body.getAttribute('data-user') || 'anon') + '.sidebarCollapsed'; document.addEventListener('click', function (ev) { var toggle = ev.target.closest('#sidebarToggleDesktop, #btnSidebarToggle'); if (!toggle) return; var wrapper = document.querySelector('.wrapper'); if (!wrapper) return; ev.preventDefault(); wrapper.classList.toggle('sidebar-collapsed'); try { localStorage.setItem(storageKey, wrapper.classList.contains('sidebar-collapsed')); } catch (e) { } }); })(); </script> </body> </html>
No hay noticias disponibles para los filtros actuales.