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();
}