Elige tu sesión de equipo para comenzar a colaborar
Selecciona un módulo para comenzar
🎯 Desafíos del día
🧩 Mini-Quiz
Hola a todas, bienvenidas a nuestro aula de B-Learning. ¡Estoy emocionada de trabajar juntas! 🌸
Diseñen una secuencia con inicio, desarrollo y cierre.
Completa la sopa de letras sobre pedagogía.
Selecciona un módulo
Selecciona tu nombre:
`; alumnos.forEach(aid=>{ // Try ALL_STUDENTS first, then Firebase const st=ALL_STUDENTS.find(x=>x.id===aid); const firstName=st?st.firstName:(aid.charAt(0).toUpperCase()+aid.slice(1)); const emailUser=st?(st.firstName||aid).toLowerCase():aid.toLowerCase(); const card=document.createElement("div"); card.style.cssText="display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:11px;border:1.5px solid rgba(255,143,163,.2);background:#FFFBF0;cursor:pointer;transition:all .2s;margin-bottom:5px"; card.onmouseenter=()=>{card.style.background="rgba(255,143,163,.08)";card.style.borderColor="var(--accent)";}; card.onmouseleave=()=>{card.style.background="#FFFBF0";card.style.borderColor="rgba(255,143,163,.2)";}; card.onclick=()=>{ document.getElementById("join-email-input").value=emailUser; updateEmailPreview(); document.getElementById("join-pass-input").focus(); // Highlight selected studentsDiv.querySelectorAll("[data-student]").forEach(c=>{c.style.borderColor="rgba(255,143,163,.2)";c.style.background="#FFFBF0";}); card.style.borderColor="var(--accent)";card.style.background="rgba(255,143,163,.12)"; }; card.dataset.student=aid; card.innerHTML=`Agrega un módulo para comenzar
📊 Avance por módulos (predeterminados + creados por el equipo)
⏳ Cargando...
`; try{ db.ref("pedagogia/logs").once("value").then(snap=>{ const data=snap.val()||{}; // Collect all logs from all sessions const allLogs=[]; Object.entries(data).forEach(([sid,entries])=>{ Object.values(entries).forEach(entry=>{ allLogs.push({...entry,sid}); }); }); allLogs.sort((a,b)=>(b.ts||0)-(a.ts||0)); if(allLogs.length===0){list.innerHTML=`No hay actividad registrada aún.
`;return;} list.innerHTML=allLogs.slice(0,100).map(e=>{ const d=new Date(e.ts||0); const timeStr=d.toLocaleDateString("es-MX",{day:"2-digit",month:"short"})+" "+d.toLocaleTimeString("es-MX",{hour:"2-digit",minute:"2-digit"}); return `⚠️ No se pudo cargar el registro
`;}); }catch(e){list.innerHTML=`⚠️ Firebase no disponible
`;} } function loadSessionEditor(){ const grid=document.getElementById("session-editor-grid"); if(!grid) return; const COLORS=[ ["linear-gradient(135deg,#FFBCCA,#FF8FA3)","Rosa"], ["linear-gradient(135deg,#D4B8FF,#C77DFF)","Lavanda"], ["linear-gradient(135deg,#B8F0D8,#4DD9AC)","Menta"], ["linear-gradient(135deg,#B8DCFF,#5BA3F5)","Cielo"], ["linear-gradient(135deg,#FFD4B8,#FF9A76)","Durazno"], ["linear-gradient(135deg,#FFF3B0,#F7C948)","Limón"], ["linear-gradient(135deg,#FFBCCA,#D4B8FF)","Rosa-Lavanda"], ["linear-gradient(135deg,#B8F0D8,#B8DCFF)","Menta-Cielo"], ["linear-gradient(135deg,#FF6B35,#F7C948)","Naranja"], ["linear-gradient(135deg,#7C3AED,#EC4899)","Violeta"], ["linear-gradient(135deg,#E11D48,#7C3AED)","Rojo"], ["linear-gradient(135deg,#0891B2,#6366F1)","Azul"], ["linear-gradient(135deg,#DB2777,#F97316)","Fucsia"], ]; try{ db.ref("pedagogia/sesiones_config").once("value").then(snap=>{ const sessions=snap.val()||{}; grid.innerHTML=""; Object.entries(sessions).forEach(([sid,s])=>{ const card=document.createElement("div"); card.style.cssText="background:white;border-radius:14px;padding:18px;border:1.5px solid rgba(212,184,255,.2);"; card.innerHTML=`🎭 Icono de la sesión:
🎨 Color del equipo:
👩🎓 Alumnas asignadas (máx. 2):
🎯 ¿Qué debe hacer el alumno para completar este módulo?
${compOptions.map(o=>``).join("")} `; /* —— Contenido principal por tipo —— */ let mainContent=""; if(d.type==="intro"){ // Initialize objectives if not set — save to modData immediately if(!d.objectives || d.objectives.length===0){ d.objectives=["Objetivo 1: Conocer los fundamentos de la pedagogía digital","Objetivo 2: Identificar tipos de EVA","Objetivo 3: Diseñar una secuencia básica"]; modData[id].objectives=d.objectives; // Don't autosave yet — wait for user to edit } const objHtml=d.objectives.map((obj,i)=> `${d.desc}
${d.desc}
${d.desc}
📝 Mis apuntes:
${d.desc}
${d.desc}
${d.desc}
🔧 Editor de preguntas — selecciona el radio ✓ para marcar la respuesta correcta
${qd.preguntas.map((p,qi)=>`❓ Pregunta del foro:
${sb.desc||"Escribe aquí la pregunta para el grupo..."}
✏️ Editar pregunta y respuestas — marca ✓ la correcta
${opts.map((o,oi)=>`Selecciona un módulo
${desc}
${iframeHtml}