76 lines
4.0 KiB
Markdown
76 lines
4.0 KiB
Markdown
# План: разделение 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
|