feat(sprint-5.5): store block metadata (version, changelog) in PostgreSQL
- Prisma schema: added `changelog Json @default("[]")` to Block model
- Migration: 20260324141120_add_changelog_field
- Seed: 8 blocks with actual versions (v1.0–v1.2) and changelog entries
- API: PATCH /blocks/by-path accepts changelog field
- CORS: accept any localhost port (regex pattern)
- BlockChangelog component: renders version history from API or fallback
- BlockMetaBar: loads changelog from API, passes to BlockChangelog
- Removed "API офлайн" text, replaced with subtle gray dot
- Added defaultChangelog prop for offline fallback
- Block pages: removed hardcoded changelog JSX, use defaultChangelog prop
- Updated SPRINTS.md with completed tasks
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
+20
-9
@@ -239,9 +239,17 @@
|
||||
- Фон новостей: #f2fee6 (ранее #fff)
|
||||
- Типографика сайта: обновлена таблица стилей
|
||||
- [x] FE: Добавлена «История версий» с changelog на каждую страницу блока
|
||||
- [x] BE: Метаданные блоков (version, isInPreview, changelog) перенесены в PostgreSQL
|
||||
- Prisma schema: добавлено поле `changelog Json @default("[]")`
|
||||
- Seed обновлён: 8 блоков с актуальными версиями и историей изменений
|
||||
- API: PATCH /blocks/by-path принимает changelog
|
||||
- CORS: открыт для любого localhost порта
|
||||
- BlockMetaBar: загружает version + changelog из API, fallback на defaultVersion/defaultChangelog
|
||||
- Компонент BlockChangelog: отображает историю версий из API или из кода
|
||||
- Надпись «API офлайн» заменена на серую точку
|
||||
- [ ] FE: Footer
|
||||
|
||||
**Результат спринта:** Hero v1.2, Doctors v1.2, Reviews v1.1, ContactForms v1.1, News v1.1 — все стили синхронизированы с реальным сайтом.
|
||||
**Результат спринта:** Hero v1.2, Doctors v1.2, Reviews v1.1, ContactForms v1.1, News v1.1 — стили синхронизированы с реальным сайтом. Метаданные блоков хранятся в БД.
|
||||
|
||||
---
|
||||
|
||||
@@ -285,14 +293,17 @@
|
||||
|
||||
### Задачи
|
||||
|
||||
- [ ] FE: Страница `/pages/preview` — пустое состояние с кнопкой «Создать»
|
||||
- [ ] FE: Логика `localStorage` — сохранение/сброс состояния превью
|
||||
- [ ] FE: Рефактор `/blocks/hero/page.tsx` — вынести баннер в компонент `HeroBlock` (переиспользуемый)
|
||||
- [ ] FE: Рефактор `/blocks/doctors/page.tsx` — вынести в компонент `DoctorsBlock`
|
||||
- [ ] FE: Placeholder-компонент для блоков, которые ещё не готовы (серая рамка с названием блока)
|
||||
- [ ] FE: Сборка превью: рендер всех доступных компонентов в порядке реального сайта
|
||||
- [ ] FE: Sidebar — добавить «Просмотр страницы» в раздел «Страницы»
|
||||
- [ ] FE: Кнопка «Пересобрать» в созданном состоянии
|
||||
- [x] FE: Страница `/pages/preview` — пустое состояние с кнопкой «Создать»
|
||||
- [x] FE: Логика `localStorage` — сохранение/сброс состояния превью
|
||||
- [x] FE: Рефактор `/blocks/hero/page.tsx` — вынести баннер в компонент `HeroBlock` (переиспользуемый)
|
||||
- [x] FE: Рефактор `/blocks/doctors/page.tsx` — вынести в компонент `DoctorsBlock`
|
||||
- [x] FE: Placeholder-компонент для блоков, которые ещё не готовы (серая рамка с названием блока)
|
||||
- [x] FE: Сборка превью: рендер всех доступных компонентов в порядке реального сайта
|
||||
- [x] FE: Sidebar — добавить «Просмотр страницы» в раздел «Страницы»
|
||||
- [x] FE: Кнопка «Пересобрать» в созданном состоянии
|
||||
- [x] FE: Toggle «В превью» через localStorage (fallback при API офлайн)
|
||||
- [x] BE: BlockMetaBar + PreviewClient подключены к NestJS API `/blocks`
|
||||
- [x] BE: Метаданные блоков (version, changelog, isInPreview) в PostgreSQL
|
||||
- [ ] Docs: Добавить `/pages/preview` v1.0 в LLM_CONTEXT.md
|
||||
|
||||
### Зависимости
|
||||
|
||||
Reference in New Issue
Block a user