import { api } from '../api.js'; import { escapeHtml } from '../utils.js'; export async function initSchedule() { const tbody = document.getElementById('schedule-tbody'); async function loadSchedule() { try { // Предполагается, что на сервере есть endpoint GET /api/lessons, // возвращающий массив объектов с полями: // id, teacher (объект с username), group (объект с name), // subject (объект с name), day, week, time. const lessons = await api.get('/api/users/lessons'); renderSchedule(lessons); } catch (e) { tbody.innerHTML = `Ошибка загрузки: ${escapeHtml(e.message)}`; } } function renderSchedule(lessons) { if (!lessons || !lessons.length) { tbody.innerHTML = 'Нет занятий'; return; } tbody.innerHTML = lessons.map(lesson => { // Извлекаем имена из вложенных объектов или используем запасные поля const teacherName = lesson.teacher?.username || lesson.teacherName || '—'; const groupName = lesson.group?.name || lesson.groupName || '—'; const educationForm = lesson.educationForm?.name || lesson.educationFormName || '-'; const subjectName = lesson.subject?.name || lesson.subjectName || '—'; const day = lesson.day || '—'; const week = lesson.week || '—'; const time = lesson.time || '—'; return ` ${escapeHtml(lesson.id)} ${escapeHtml(teacherName)} ${escapeHtml(groupName)} ${escapeHtml(educationForm)} ${escapeHtml(subjectName)} ${escapeHtml(day)} ${escapeHtml(week)} ${escapeHtml(time)} `; }).join(''); } await loadSchedule(); }