// get this script tag const script = document.currentScript as HTMLScriptElement; // get data-facultad attribute from script tag const dataFacultad = script.getAttribute("data-facultad") as string; const table = document.querySelector("table") as HTMLTableElement; // hide the table table.style.display = "none"; disableDatalist("#filter_grupo"); const buscarGrupo = async () => { // Add loading animation in the button const btn = document.querySelector("#btn-buscar") as HTMLButtonElement; btn.innerHTML = ' Cargando...'; btn.disabled = true; const carrera = document.querySelector("#filter_carrera") as HTMLInputElement; const grupo = document.querySelector("#filter_grupo") as HTMLInputElement; const periodo = document.querySelector("#periodo") as HTMLInputElement; console.log(`Carrera: ${carrera}, Grupo: ${grupo}`); if (carrera.value == "" || grupo.value == "") { triggerMessage("El nombre del grupo y la carrera son requeridos", "Faltan campos"); // Remove loading animation in the button btn.innerHTML = ' Buscar'; btn.disabled = false; return; } const formData = new FormData(); formData.append("carrera", carrera.value); formData.append("grupo", grupo.value); formData.append("periodo", periodo.value); formData.append('facultad', dataFacultad); try { const response = await fetch("api/horario.php", { method: "POST", body: formData }).then(res => res.json()); } catch (error) { triggerMessage("Error al cargar el horario", "Error"); } // Remove loading animation in the button btn.innerHTML = ' Buscar'; btn.disabled = false; } // on click the li element, inside datalist #dlcarera const dlcarreras = document.querySelectorAll("#dlcarrera li"); dlcarreras.forEach(li => { li.addEventListener("click", async () => { // get the data-id from the li element const carrera= li.getAttribute("data-id") as string; const facultad = dataFacultad; const periodo = document.querySelector("#periodo") as HTMLSelectElement; const formData = new FormData(); formData.append("carrera", carrera); formData.append("facultad", facultad); formData.append("periodo", periodo.value); try { const { status, grupos } = await fetch("action/action_grupo.php", { method: "POST", body: formData }).then(res => res.json()); if (status != "success") { throw new Error("Error al cargar los grupos"); } const dlgrupo = document.querySelector("#dlgrupo ul") as HTMLUListElement; const prompt = document.querySelector("#dlgrupo .datalist-input") as HTMLInputElement; dlgrupo.innerHTML = ""; grupos.forEach(grupo => { const li = document.createElement("li"); // data-id is the id of the group li.setAttribute("data-id", grupo); li.textContent = grupo; dlgrupo.appendChild(li); }); // write Seleccionar grupo prompt.textContent = "Seleccionar grupo"; disableDatalist("#filter_grupo", false); } catch (error) { triggerMessage("Error al cargar los grupos", "Error"); console.log(error); } }); });