document.addEventListener("DOMContentLoaded", function() { const jsonURL = "https://cpmalcazarcriptana.es/wp-content/uploads/2025/10/profesorado.json"; // ruta a tu JSON fetch(jsonURL) .then(resp => resp.json()) .then(datos => generarOrganigrama(datos)) .catch(err => console.error("Error cargando profesorado.json:", err)); function generarOrganigrama(datos) { const agrupado = {}; datos.forEach(fila => { const { Departamento, Especialidad } = fila; if (!agrupado[Departamento]) agrupado[Departamento] = {}; if (!agrupado[Departamento][Especialidad]) agrupado[Departamento][Especialidad] = []; agrupado[Departamento][Especialidad].push(fila); }); const contenedor = document.getElementById('claustro'); for (const dep in agrupado) { const card = document.createElement('div'); card.className = 'card'; const depTitle = document.createElement('div'); depTitle.className = 'department-title'; depTitle.textContent = dep; depTitle.onclick = () => { card.querySelectorAll('.specialty').forEach(sp => sp.classList.toggle('open')); }; card.appendChild(depTitle); for (const esp in agrupado[dep]) { const spDiv = document.createElement('div'); spDiv.className = 'specialty'; const btn = document.createElement('button'); btn.className = 'toggle-btn'; btn.textContent = esp; btn.onclick = () => listDiv.classList.toggle('open'); spDiv.appendChild(btn); const listDiv = document.createElement('div'); listDiv.className = 'teacher-list'; agrupado[dep][esp].forEach(p => { const teacherDiv = document.createElement('div'); teacherDiv.className = 'teacher'; const nameBtn = document.createElement('button'); nameBtn.className = 'toggle-btn'; nameBtn.textContent = p.Nombre; nameBtn.onclick = () => infoDiv.classList.toggle('open'); const infoDiv = document.createElement('div'); infoDiv.className = 'teacher-info'; infoDiv.innerHTML = `
Horario de tutoría: ${p.Horario}
Email: ${p.Email}
`; teacherDiv.appendChild(nameBtn); teacherDiv.appendChild(infoDiv); listDiv.appendChild(teacherDiv); }); spDiv.appendChild(listDiv); card.appendChild(spDiv); } contenedor.appendChild(card); } } });