(function jf_init_ofertas() { function obtener_ofertas(url, filtros) { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var modulePs = document.getElementById("module_ps"); if (modulePs) { var cargandoOferta = document.getElementById("cargando_oferta"); if (cargandoOferta) { cargandoOferta.style.display = "none"; } var modulePsOfertas = document.getElementById("module_ps_ofertas"); if (!modulePsOfertas) { modulePsOfertas = document.createElement("div"); modulePsOfertas.id = "module_ps_ofertas"; modulePs.appendChild(modulePsOfertas); } modulePsOfertas.innerHTML = this.responseText; document.querySelectorAll("#siguiente-pagina > div > a").forEach(function(element) { //Agregar un evento de clic al elemento element.addEventListener('click', function(event) { // Evitar el comportamiento predeterminado del enlace event.preventDefault(); obtener_ofertas(event.srcElement.href, false); }); }); var ofertasCargadoEvent = new Event("ofertas_jf_cargado"); document.dispatchEvent(ofertasCargadoEvent); } else { alert("No se ha encontrado el elemento module_ps"); } } else if (this.readyState == 1) { var modulePs = document.getElementById("module_ps"); if (modulePs) { var modulePsOfertas = document.getElementById("module_ps_ofertas"); if (!modulePsOfertas) { modulePsOfertas = document.createElement("div"); modulePsOfertas.id = "module_ps_ofertas"; modulePs.appendChild(modulePsOfertas); } var cargandoOferta = document.getElementById("cargando_oferta"); if (cargandoOferta) { cargandoOferta.style.display = ""; } else { var cargandoOferta = document.createElement("div"); cargandoOferta.id = "cargando_oferta"; cargandoOferta.textContent = ""; modulePsOfertas.appendChild(cargandoOferta); } } } }; if(filtros) { url = url + "?p="+filtros.province+"&t="+filtros.town+"&f="+filtros.fecha+"&c="+filtros.contrato+"&h="+filtros.horario+"&j="+filtros.jornada+"&s="+filtros.sector; } xhttp.open("GET", url, true); xhttp.send(); } function obtener_filtro(url) { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var modulePs = document.getElementById("module_ps"); if (modulePs) { var primerHijo = modulePs.firstChild; var modulePSFiltro = document.getElementById("module_ps_filtro"); if (!modulePSFiltro) { modulePSFiltro = document.createElement("div"); modulePSFiltro.id = "module_ps_filtro"; modulePs.insertBefore(modulePSFiltro,primerHijo); } modulePSFiltro.innerHTML = this.responseText; configurar_filtro(); /* var selector = document.querySelector('#siguiente-pagina > div > a'); // Agregar un evento de clic al elemento selector.addEventListener('click', function(event) { // Evitar el comportamiento predeterminado del enlace event.preventDefault(); });*/ } } }; xhttp.open("GET", url, true); xhttp.send(); } function getTowns(id) { let town_elem = document.querySelector(".town_offer"); if (id == -1) { town_elem.innerHTML = ""; town_elem.classList.add("disabled"); town_elem.disabled = true; } else { var xhr = new XMLHttpRequest(); xhr.open("GET", "https://www.jobfie.es/general/getTowns/" + id, true); xhr.onload = function() { if (xhr.status === 200) { town_elem.innerHTML = ""; town_elem.innerHTML += xhr.responseText; town_elem.classList.remove("disabled"); town_elem.disabled = false; } }; xhr.send(); } } function getOptions(type, element_class, cond, clean) { var url = "https://www.jobfie.es/general/getOptions/" + type; if (cond != null) { url += "/" + cond; } var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.onload = function() { if (xhr.status === 200) { var element = document.querySelector(element_class); if(element) { element.innerHTML = xhr.responseText; } } else { alert("No se ha podido comunicar con el servidor, sentimos las molestias, inténtelo de nuevo y si persiste el problema contacte con el servicio de atención al cliente"); } }; xhr.send(); } function configurar_filtro() { document.querySelectorAll(".town-offer").forEach(function(element) { element.disabled = true; }); document.querySelector("select[name=province_offer]").addEventListener("change", function() { document.querySelector("#town_offer").value = -1; getTowns(this.value); }); getTowns(-1); document.querySelector(".clear-filter").addEventListener("click", function() { document.querySelectorAll(".filtro-buscador-externo select").forEach(function(element) { element.value = "-1"; getTowns(-1); }); document.querySelector(".finder-offers").dispatchEvent(new Event("click")); }); document.querySelectorAll(".filtro-buscador-externo select").forEach(function(element) { element.addEventListener("change", function() { //Activar si queremos que cada vez que cambie una opción busque ofertas //document.querySelector(".finder-offers").dispatchEvent(new Event("click")); }); }); document.querySelector(".finder-offers").addEventListener("click", function() { let filtros = {}; let province = document.querySelector("#province_offer"); if(province) { filtros.province = province.value ? province.value : -1; } else { filtros.province = -1; } let town = document.querySelector("#town_offer"); if(town) { filtros.town = town.value ? town.value : -1; } else { filtros.town = -1; } let fecha = document.querySelector("#release_date_offer"); if(fecha) { filtros.fecha = fecha.value ? fecha.value : -1; } else { filtros.fecha = -1; } let contrato = document.querySelector("#contrato_offer"); if(contrato) { filtros.contrato = contrato.value ? contrato.value : -1; } else { filtros.contrato = -1; } let horario = document.querySelector("#horario_offer"); if(horario) { filtros.horario = horario.value ? horario.value : -1; } else { filtros.horario = -1; } let jornada = document.querySelector("#jornada_offer"); if(jornada) { filtros.jornada = jornada.value ? jornada.value : -1; } else { filtros.jornada = -1; } let sector = document.querySelector("#sector_offer"); if(sector) { filtros.sector = sector.value ? sector.value : -1; } else { filtros.sector = -1; } obtener_ofertas("https://www.jobfie.es/auth/getExternalOffersCompany/33845",filtros); }); } window.addEventListener("load", function() { //Cargamos las ofertas de trabajo obtener_ofertas("https://www.jobfie.es/auth/getExternalOffersCompany/33845"); //Cargamos el filtro de ofertas de trabajo obtener_filtro("https://www.jobfie.es/auth/getExternalFilterOffersCompany/33845"); }); })();