1/** 2 * @name TEMPLATE JS 3 */ 4import Fetch from "https://aplicaciones.upaep.mx/applications/util/modules/Fetch/fetch.js"; 5 6var urlFetch = { 7 ejemplo: "", 8 program: "", 9 newApi: "/locksmith/middleware/get.php", 10 getFile: "https://aplicaciones.upaep.mx/utilities/getFile_Base64/getFile_Base64.php", 11}; 12 13var upaep__btn__menu = document.querySelectorAll(".upaep__btn__menu"); 14// var upaep__btn__menu = document.querySelectorAll('#btn_menu'); 15var upaep__header__rigth = document.querySelector(".upaep__header__rigth"); 16var menu__close = document.querySelector(".menu__close"); 17 18upaep__btn__menu.forEach((ubm) => { 19 ubm.addEventListener("click", () => { 20 const desktop = document.querySelector(".upaep__menu__desktop"); 21 const list = desktop.querySelector(".upaep__menu-list"); 22 const content = desktop.querySelector(".upaep__menu-content"); 23 const sublist = content.querySelector(".upaep__submenu-list"); 24 const oferta = document.querySelector(".upaep__oferta-educativa"); 25 if (oferta) { 26 if (oferta.classList.contains("__tehuacan")) { 27 list.firstElementChild.click(); 28 sublist.children[1].click(); 29 } else { 30 list.firstElementChild.click(); 31 sublist.firstElementChild.click(); 32 } 33 } else { 34 list.firstElementChild.click(); 35 sublist.firstElementChild.click(); 36 } 37 }); 38}); 39 40/* Inicio Footer */ 41 42 43const getDataPortal = async () => { 44 let dominio = window.location.protocol + "//" + window.location.host; 45 let alias = window.location.pathname; 46 let json = { 47 dominio: dominio, 48 alias: alias.replace("_v2", ""), 49 lang: getLanguageActive(), 50 KeychainName: "PORTAL" 51 } 52 const instance = new Fetch(urlFetch.newApi, "POST", json); 53 const response = await instance.execFetch(); 54 return response; 55}; 56 57const urlLanguangeWeb = () => { 58 try { 59 const header = document.querySelector('header'); 60 if (!header) { 61 console.error('No se encontró el elemento header'); 62 return; 63 } 64 const logo = header.querySelector('.upaep__header__logo'); 65 if (!logo) { 66 console.error('No se encontró el logo dentro del header'); 67 return; 68 } 69 const aLogo = logo.querySelector('a'); 70 if (!aLogo) { 71 console.error('No se encontró el enlace dentro del logo'); 72 return; 73 } 74 const language = getLanguageActive()?.trim(); 75 // console.log('Idioma detectado:', language); // Para depuración 76 const newHref = language === 'ES' ? 'https://upaep.mx/' : 'https://upaep.mx/en'; 77 // console.log('Intentando cambiar href a:', newHref); // Para depuración 78 aLogo.href = newHref; 79 // console.log('Href actualizado correctamente'); // Confirmación 80 } catch (error) { 81 console.error('Error en urlLanguangeWeb:', error); 82 } 83}; 84 85const insertFooterHeaderSecondaryMenu = async () => { 86 const dataPortal = await getDataPortal(); 87 const { alias, dominio, encabezado, menu_secundario, pie_de_pagina, recursos } = dataPortal.at(0); 88 const dataFooter = JSON.parse(pie_de_pagina) ?? ''; 89 const dataHeader = JSON.parse(encabezado) ?? ''; 90 const dataSecondaryMenu = (menu_secundario) ? JSON.parse(menu_secundario) ?? '' : ''; 91 92 const newfooter = new Footer_('.upaep-footer', { footer: dataFooter }); 93 const newmenu = new Menu_(".upaep-menu-content", { menu: dataHeader.items }); 94 if (dataSecondaryMenu) { 95 let lista_menu_secundario = document.getElementById("menu_secundario"); 96 97 if (dataSecondaryMenu.length) { 98 dataSecondaryMenu.forEach((item) => { 99 let html = ""; 100 101 if (item.items && item.items.length > 0) { 102 // Menú con subitems 103 html += '<li class="upaep__navbar-item upaep__dropdown __mark">'; 104 html += 105 ' <a class="upaep__navbar-link upaep__dropdown-btn __link" upaep-dropdown>' + 106 item.titulo + 107 "</a>"; 108 html += ' <ul class="upaep__dropdown-menu">';
109 item.items.forEach((subitem) => { 110 html += ' <li class="upaep__dropdown-item">'; 111 html += 112 ' <a href="' + 113 subitem.url + 114 '" target="' + 115 subitem.target + 116 '">' + 117 subitem.label + 118 "</a>"; 119 html += " </li>"; 120 }); 121 html += " </ul>"; 122 html += "</li>"; 123 } else if (item.url && item.label) { 124 // Enlace directo como "Inicio" 125 html += '<li class="upaep__navbar-item">'; 126 html += 127 ' <a class="upaep__navbar-link __link" href="' + 128 item.url + 129 '" target="' + 130 item.target + 131 '">' + 132 item.label + 133 "</a>"; 134 html += "</li>"; 135 } 136 137 lista_menu_secundario.insertAdjacentHTML("beforeend", html); 138 }); 139 } 140 } 141 setTimeout(() => { urlLanguangeWeb(); }, 1000); 142}; 143insertFooterHeaderSecondaryMenu() 144 145var button__language = document.querySelector(".upaep__button__language"); 146button__language.addEventListener('click', () => { 147 getLanguageChangeButtonToUrl(); 148 getFooterHeader(); 149 getMenuSecundario(); 150}) 151 152/* Final Footer */ 153 154AOS.init(); 155 156const url_general = new URL(window.location); 157const lang = url_general.hash; 158const lang_value = 159 lang == "" ? "ES" : lang == "#es" ? "ES" : lang == "#en" ? "EN" : "ES"; 160if (lang_value != "ES") document.querySelector(".upaep__header__menu span").innerHTML = "MENU"; 161 162 163(function () { 164 var cx = "004514702581536462061:cgeks1_xu6w"; 165 var gcse = document.createElement("script"); 166 gcse.type = "text/javascript"; 167 gcse.async = true; 168 gcse.src = "https://cse.google.com/cse.js?cx=" + cx; 169 var s = document.getElementsByTagName("script")[0]; 170 s.parentNode.insertBefore(gcse, s); 171})(); 172 173const upaep_banner = document.querySelector(".upaep__banner"); 174window.addEventListener("load", () => { 175 document.querySelector(".upaep__header__logo a").setAttribute("href", "https://upaep.mx/"); 176}); 177 178const changeScale = () => { 179 const zoom_ratio = window.devicePixelRatio; 180 console.log(zoom_ratio); 181 if (zoom_ratio > 1) { 182 document.querySelector("body").style.zoom = ".8"; 183 document.querySelector("body").style.transform = 184 "-moz-transform:scale(.8);"; 185 if (upaep_banner) { 186 upaep_banner.style.zoom = `${zoom_ratio}`; 187 if (upaep_banner.querySelector(".upaep__banner-buttons")) { 188 upaep_banner.querySelector(".upaep__banner-buttons").style.zoom = ".8"; 189 } 190 } 191 if (document.querySelector(".upaep__transformadora")) { 192 document.querySelector( 193 ".upaep__transformadora .upaep__transformadora-panel.panel_1" 194 ).style.height = "60vh"; 195 document.querySelector( 196 ".upaep__transformadora .upaep__transformadora-panel.panel_2" 197 ).style.height = "60vh"; 198 document.querySelector( 199 ".upaep__transformadora .upaep__transformadora-panel.panel_3" 200 ).style.height = "60vh"; 201 } 202 if (Navegador() == "firefox") { 203 if (document.querySelector(".upaep__oferta-educativa")) { 204 document.querySelector(".upaep__oferta-educativa").style.height = 205 "auto"; 206 } 207 } 208 // console.log(`si hubo zoom de ${zoom_ratio}`) 209 } else { 210 document.querySelector("body").style.zoom = "1"; 211 if (upaep_banner) { 212 upaep_banner.style.zoom = `1`; 213 if (upaep_banner.querySelector(".upaep__banner-buttons")) { 214 upaep_banner.querySelector(".upaep__banner-buttons").style.zoom = "1"; 215 } 216 } 217 if (document.querySelector(".upaep__oferta-educativa")) { 218 document.querySelector(".upaep__oferta-educativa").style.height = "auto"; 219 } 220 if (document.querySelector(".upaep__transformadora")) { 221 document.querySelector( 222 ".upaep__transformadora-panel.panel_3" 223 ).style.height = "auto"; 224 document.querySelector( 225 ".upaep__transformadora-panel.panel_2" 226 ).style.height = "auto"; 227 } 228 // console.log(`si hubo zoom de ${zoom_ratio}`) 229 } 230} 231// Función para detectar cambios de zoom 232const detectZoomChange = (callback) => { 233 var currentZoom = window.innerWidth / window.outerWidth; 234 235 window.addEventListener("resize", function () { 236 var newZoom = window.innerWidth / window.outerWidth; 237 if (newZoom !== currentZoom) { 238 currentZoom = newZoom; 239 callback(); 240 } 241 });
242} 243 244// Ejemplo de uso 245// detectZoomChange(function () { 246// // console.log('Se ha cambiado el nivel de zoom'); 247// changeScale(); 248// }); 249 250 251const Navegador = () => { 252 var browserName = ""; 253 254 if (navigator.userAgentData) { 255 // Utilizando la nueva API de User Agent Client Hints 256 browserName = navigator.userAgentData.brands[0].brand; 257 } else { 258 // Utilizando propiedades y métodos del objeto navigator 259 if ( 260 navigator.userAgent.indexOf("Chrome") !== -1 && 261 navigator.vendor.indexOf("Google") !== -1 262 ) { 263 browserName = "Chrome"; 264 } else if ( 265 navigator.userAgent.indexOf("Safari") !== -1 && 266 navigator.vendor.indexOf("Apple") !== -1 267 ) { 268 browserName = "Safari"; 269 } else if (navigator.userAgent.indexOf("Firefox") !== -1) { 270 browserName = "Firefox"; 271 } else if ( 272 (navigator.userAgent.indexOf("Opera") !== -1 || 273 navigator.userAgent.indexOf("OPR") !== -1) && 274 typeof window.opr !== "undefined" 275 ) { 276 browserName = "Opera"; 277 } else if ( 278 navigator.userAgent.indexOf("Edge") !== -1 && 279 navigator.vendor.indexOf("Microsoft") !== -1 280 ) { 281 browserName = "Microsoft Edge"; 282 } else if (navigator.userAgent.indexOf("Trident") !== -1) { 283 browserName = "Internet Explorer"; 284 } else if (navigator.userAgent.indexOf("Brave") !== -1) { 285 browserName = "Brave"; 286 } else if (navigator.userAgent.indexOf("YaBrowser") !== -1) { 287 browserName = "Yandex"; 288 } else { 289 browserName = "Navegador desconocido"; 290 } 291 } 292 293 return browserName.toLowerCase(); 294}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.