068d6c2afe
Учитель может выбрать любой активный учебник из каталога /api/textbooks и открыть его в общем iframe для всех участников. По аналогии с симуляциями: - Backend: контроллер classroom/textbook.js + 4 роута (POST/DELETE /:id/textbook, /:id/textbook/nav, /:id/textbook/mode) с SSE-событиями classroom_textbook_open|close|nav|mode - Embed-режим /textbook/:slug?embed=1: сервер injectит CSS+JS-bridge перед </head>, скрывая хедер/сайдбар и пересылая клики/скролл наверх через postMessage (без правки 40+ HTML-учебников) - Frontend (classroom.html): кнопка «Учебник» в header, пикер с фильтрами по предмету, iframe-панель с режимами демо/свободно, relay nav-событий учителя → всем студентам в demo-режиме
14 lines
466 B
JavaScript
14 lines
466 B
JavaScript
'use strict';
|
|
// Re-export facade — routes/classroom.js imports from this path unchanged.
|
|
// Implementation split into domain files under ./classroom/
|
|
module.exports = {
|
|
...require('./classroom/sessions'),
|
|
...require('./classroom/strokes'),
|
|
...require('./classroom/pages'),
|
|
...require('./classroom/chat'),
|
|
...require('./classroom/permissions'),
|
|
...require('./classroom/sim'),
|
|
...require('./classroom/textbook'),
|
|
...require('./classroom/admin'),
|
|
};
|