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

76 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# План: разделение 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.js``showGenPrompt(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