Files
Learn_System/plans/sim-builder/phase-5-catalog.md
T

2.7 KiB
Raw Blame History

Phase 5: Каталог (custom-sims в /lab)

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

Objective

Сохранённые custom-симуляции появляются и играют в /lab наравне со встроенными; раздел «Мои симуляции», редактирование/удаление из каталога, deep-link.

Tasks

  • При загрузке /lab подтягивать custom-sims (свои + published) из GET /api/custom-sims и регистрировать через registerSpecSim (Ф0-адаптер) с id custom:<dbid>.
  • Карточки в каталоге: категория/предмет/класс из меты; бейдж «Моя»/«Опубликована».
  • Раздел/фильтр «Мои симуляции» в /lab.
  • Кнопки на карточке custom-sim: «Редактировать» → sim-builder.html?id=<id>, «Удалить» (владельцу).
  • Deep-link /lab?sim=custom:<id> открывает напрямую (расширить существующий LAB_SIM_ALIASES/openSim).
  • Ленивая загрузка движка (_sim_*.js) — только когда открыта custom-sim (через _loader/_sim_deps).

Files to Modify/Create

  • frontend/js/labs/lab-glue.js и/или lab-init.js — загрузка+регистрация custom-sims, карточки, фильтр (modify)
  • frontend/js/labs/_sim_deps.js_sim_*.js в ленивые зависимости (modify)
  • js/api.js — при необходимости (modify, опц.)

Acceptance Criteria

  • Сохранённая в Ф4 симуляция видна в /lab, открывается и играет.
  • «Мои симуляции» показывает свои (вкл. draft); published видят и другие.
  • Edit/Delete с карточки работают; deep-link открывает.
  • Старт /lab не тормозит (движок грузится лениво).

Notes

  • НЕ ломать существующий каталог встроенных (lab_sims) — custom-список добавляется поверх.
  • id-неймспейс custom: чтобы не конфликтовать со встроенными.

Review Checklist

  • Все задачи выполнены
  • Встроенные симуляции и старт /lab не регрессировали
  • Draft видит только владелец; published — все
  • Ленивая загрузка движка работает

Handoff to Next Phase