Files
fission-console/doc/plans/separate-create-modals.md
T

4.0 KiB
Raw Blame History

План: разделение Create на два независимых модуля

Ветка: separate-create-modals Дата: 2026-05-04


Цель

Разделить одну кнопку «Создать функцию» с переключателем код/архив на два полностью независимых модуля. Никакого общего состояния, никакого общего if/else.


Задачи

1. Создать console/ui/js/fn-code.js [ ]

Содержит только:

  • onLangChangeCode() — читает cc-lang, пишет в cc-entry, cc-code
  • openCreateCode() — инит формы, открывает create-code-modal
  • closeCreateCode() — закрывает create-code-modal
  • submitCreateCode() — отправляет JSON POST /functions, без архивной ветки

2. Создать console/ui/js/fn-archive.js [ ]

Содержит только:

  • onLangChangeArchive() — читает ca-lang, пишет в ca-entry
  • openCreateArchive() — инит формы, открывает create-archive-modal
  • closeCreateArchive() — закрывает create-archive-modal
  • submitCreateArchive() — отправляет multipart POST /functions, без кодовой ветки

3. Изменить index.html [ ]

  • Заменить 1 кнопку «+ Создать функцию» на две:
    • + Из кодаopenCreateCode()
    • + Из архиваopenCreateArchive()
  • Добавить create-code-modal (prefix cc-) — только textarea + AI-кнопки
  • Добавить create-archive-modal (prefix ca-) — только file input + lint/explain
  • Удалить старую create-modal с переключателями
  • Подключить <script src="js/fn-code.js"> и <script src="js/fn-archive.js">
  • Убрать <script> для старой логики создания из functions.js (или оставить файл без этих функций)

4. Изменить console/ui/js/functions.js [ ]

Удалить:

  • openCreate(), closeCreate(), submitCreate()
  • setCodeMode('c', ...) — только c-префикс; e-префикс (edit) не трогать
  • onLangChange() → заменяется на onLangChangeCode() в fn-code.js

Что НЕ трогаем

  • edit-modal и весь edit-flow — следующий этап
  • Backend API — без изменений
  • Таблица функций — без изменений
  • lintArchiveFile(), explainArchiveFile() — остаются в functions.js, используются из обоих модулей по prefix

Прогресс

# Задача Статус
1 Создать fn-code.js
2 Создать fn-archive.js
3 Изменить index.html
4 Изменить functions.js
5 rsync + проверка на VM
6 docker build + push + apply v1.3.46
7 git commit + push ветка separate-create-modals

Лог изменений

  • js/fn-code.js — создан: onLangChangeCode, openCreateCode, closeCreateCode, submitCreateCode (prefix cc-)
  • js/fn-archive.js — создан: onLangChangeArchive, openCreateArchive, closeCreateArchive, submitCreateArchive (prefix ca-)
  • js/ai.jsshowGenPrompt(prefix) и aiGenerate(prefix) теперь принимают prefix (default 'cc')
  • js/functions.js — удалены onLangChange, openCreate, closeCreate, submitCreate
  • index.html — добавлены <script> для fn-code.js и fn-archive.js; кнопка заменена на две (✏️ Из кода / 📦 Из архива); старая create-modal заменена на create-code-modal (prefix cc-) и create-archive-modal (prefix ca-)
  • Версия: v1.3.45 → v1.3.46