Создание вкладки "Расписание занятий"
This commit is contained in:
48
frontend/admin/js/views/schedule.js
Normal file
48
frontend/admin/js/views/schedule.js
Normal file
@@ -0,0 +1,48 @@
|
||||
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 = `<tr><td colspan="7" class="loading-row">Ошибка загрузки: ${escapeHtml(e.message)}</td></tr>`;
|
||||
}
|
||||
}
|
||||
|
||||
function renderSchedule(lessons) {
|
||||
if (!lessons || !lessons.length) {
|
||||
tbody.innerHTML = '<tr><td colspan="7" class="loading-row">Нет занятий</td></tr>';
|
||||
return;
|
||||
}
|
||||
|
||||
tbody.innerHTML = lessons.map(lesson => {
|
||||
// Извлекаем имена из вложенных объектов или используем запасные поля
|
||||
const teacherName = lesson.teacher?.username || lesson.teacherName || '—';
|
||||
const groupName = lesson.group?.name || lesson.groupName || '—';
|
||||
const subjectName = lesson.subject?.name || lesson.subjectName || '—';
|
||||
const day = lesson.day || '—';
|
||||
const week = lesson.week || '—';
|
||||
const time = lesson.time || '—';
|
||||
|
||||
return `<tr>
|
||||
<td>${escapeHtml(lesson.id)}</td>
|
||||
<td>${escapeHtml(teacherName)}</td>
|
||||
<td>${escapeHtml(groupName)}</td>
|
||||
<td>${escapeHtml(subjectName)}</td>
|
||||
<td>${escapeHtml(day)}</td>
|
||||
<td>${escapeHtml(week)}</td>
|
||||
<td>${escapeHtml(time)}</td>
|
||||
</tr>`;
|
||||
}).join('');
|
||||
}
|
||||
|
||||
await loadSchedule();
|
||||
}
|
||||
Reference in New Issue
Block a user