Files
Learn_System/plans/sim-builder/phase-4-builder-ui.md
T

3.5 KiB

Phase 4: Билдер (редактор)

Status: Not Started Parent plan: PLAN.md Domain: frontend

Objective

Учительский редактор: страница с живым превью и панелями для сборки спеки без кода. После фазы учитель собирает рабочую симуляцию с нуля в UI и сохраняет в БД (Ф3).

Tasks

  • Страница frontend/sim-builder.html (доступ teacher/admin; сайдбар как у других страниц).
  • Левая/правая панель + центр-превью (встроенный SimEngine инстанс, перемонтаж при правках).
  • Панель Параметры: добавить/удалить параметр (имя, min, max, step, начальное, единица) → слайдер в превью.
  • Панель Объекты: добавить объект (тип из whitelist), редактор свойств; числовые поля принимают число ИЛИ выражение; палитра-помощник функций/параметров; подпись с LaTeX.
  • Панель Графики/Физика: добавить plot (expr/var/range/trace); тумблер физики + её поля (Ф2).
  • Размещение объектов мышью на превью (клик-поставить, drag-двигать) с синхроном в свойства.
  • Мета: заголовок, описание, предмет, класс, категория, превью-картинка (опц.).
  • Save/Load через LS.customSims* (Ф3): новый / редактировать существующий; кнопка «Тест» (play inline).
  • Валидация на клиенте (понятные ошибки до сохранения) + показ ошибок выражений.

Files to Modify/Create

  • frontend/sim-builder.html (new) — страница + инлайн-логика редактора
  • frontend/js/labs/_sim_engine.js — при необходимости hook'и для билдера (live re-mount, highlight) (modify, минимально)
  • js/api.js — если нужны доп. методы (modify, опц.)
  • ссылка в сайдбаре/навигации для учителя (modify соответствующего include)

Acceptance Criteria

  • Учитель с нуля добавляет параметры/объекты/график, видит живое превью, сохраняет, открывает заново и видит то же.
  • Ошибка в выражении показывается понятно, не роняет редактор.
  • Нет эмодзи, дизайн в системе ls.css.

Notes

  • Прагматично: форма-панели + лёгкий drag на превью. НЕ полноценный node-граф.
  • Это frontend-фаза — использовать гайдлайны frontend-design.
  • Большой файл — держать логику модульной (можно вынести в frontend/js/sim-builder.js).

Review Checklist

  • Все задачи выполнены
  • Полный цикл build→save→reload→edit работает
  • Доступ только teacher/admin
  • Нет эмодзи; дизайн-система соблюдена

Handoff to Next Phase