fix(lessons): живые обновления списка отчётов о занятии
broadcastLessonChanged() был объявлен, но нигде не вызывался — список отчётов не обновлялся после правки, создания, отката к версии/оригиналу и удаления. Публикация перенесена в invalidateLessonReports(), поэтому покрыты все 10 мест вызова, включая мутации через /api/v1/*. lessons.js подписан на lessons_changed с дебаунсом 300 мс; lesson_report_status продолжает слаться сразу для точечного обновления строки.
This commit is contained in:
@@ -159,6 +159,7 @@ document.getElementById('searchInput').addEventListener('input', () => {
|
||||
});
|
||||
|
||||
let lessonLiveSource = null;
|
||||
let lessonRefreshTimer = null;
|
||||
|
||||
function connectLessonLive() {
|
||||
if (lessonLiveSource) { lessonLiveSource.close(); lessonLiveSource = null; }
|
||||
@@ -166,6 +167,13 @@ function connectLessonLive() {
|
||||
const t = sessionStorage.getItem('authToken');
|
||||
if (!t) return;
|
||||
lessonLiveSource = new EventSource(`${API}/api/events?token=${encodeURIComponent(t)}`);
|
||||
lessonLiveSource.addEventListener('lessons_changed', () => {
|
||||
if (lessonRefreshTimer) return;
|
||||
lessonRefreshTimer = setTimeout(() => {
|
||||
lessonRefreshTimer = null;
|
||||
loadLessons();
|
||||
}, 300);
|
||||
});
|
||||
lessonLiveSource.addEventListener('lesson_report_status', () => loadLessons());
|
||||
lessonLiveSource.onerror = () => {
|
||||
if (lessonLiveSource) { lessonLiveSource.close(); lessonLiveSource = null; }
|
||||
|
||||
Reference in New Issue
Block a user