Files
websitedev/proto/src/lib/payload-versions.ts
T
Do SikiandClaude Sonnet 5 d445f0f31a
CI Pipeline with Test Management / 🧪 Run Tests & Generate Reports (push) Canceled after 0s
Test Reporting & Gherkin Analysis / 🧪 Run Tests & Generate Reports (push) Canceled after 0s
CI Pipeline with Test Management / 🐳 Docker Integration Tests (push) Canceled after 0s
CI Pipeline with Test Management / 🏗️ Build Docker Image (push) Canceled after 0s
CI Pipeline with Test Management / 📊 Generate Test Summary (push) Canceled after 0s
Test Reporting & Gherkin Analysis / 📊 Analyze Test Coverage (push) Canceled after 0s
Test Reporting & Gherkin Analysis / 🔄 Sync with Linear (push) Canceled after 0s
Test Reporting & Gherkin Analysis / ⚡ Performance Monitoring (push) Canceled after 0s
feat(cms): enable draft/publish + version history on Globals/Collections (MITHOME-92)
Adds versions.drafts to all content-bearing Globals (Home, About,
Services, Contact, Common) and Collections (LegalPages, Partners) via
shared config in src/lib/payload-versions.ts. Media and Users are
deliberately excluded (no draft workflow needed for uploads/auth).

This is the direct successor to the old custom CMS's "Verziók panel"
(MITHOME-64): the Payload admin now shows Save Draft / Publish changes
and a Versions tab with history/diff/restore per document.

Fixes a real bug found during manual verification: Payload's `_status`
field defaults to 'draft' when a create/update call's data omits it,
and that value is preserved on subsequent updates rather than being
overwritten. Since migrate-content-to-payload.ts never passed
`_status`, every migrated document ended up in draft status, which
would have broken public pages once combined with any future explicit
draft read. Fixed by explicitly setting `_status: 'published'` on
every write in the migration script.

Verified live in the browser:
- Payload admin: Home global shows Status: Published, Save Draft /
  Publish changes buttons, Versions tab with history (draft -> current).
- Saving a draft edit (title change, not published) does NOT change
  what /hu and /en render — confirmed by reloading the public page
  before publishing.
- Publishing the change updates the public page as expected.
- Full gate green: tsc, lint, tests (58 passed), production build.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 21:36:03 +02:00

28 lines
1.1 KiB
TypeScript

import type { GlobalConfig, CollectionConfig } from 'payload'
/**
* MITHOME-92: közös draft/verziózás beállítás — ez az elődje a régi egyedi
* CMS "Verziók panel"-jének (MITHOME-64: mentéslista, diff-nézet, egy-
* kattintásos visszaállítás). A Payload beépített verziózása/draft-rendszere
* ugyanezt adja natívan (Payload admin "Versions" fül minden dokumentumon),
* nem kellett újraépíteni.
*
* WHY `autosave` nincs bekapcsolva: az ügyfél explicit "Save Draft" /
* "Publish" gombokkal dolgozzon, ne automatikus mentés — ugyanaz a
* szándékos, kézi mentés-modell, mint a régi CMS-nél volt.
*
* WHY a Local API hívásaink (src/lib/payload-content.ts) nem törnek el
* ettől: `findGlobal`/`find` alapból a PUBLISHED verziót adja vissza, amíg
* explicit `draft: true` paramétert nem adunk át — ezt sehol nem tesszük,
* így a publikus oldal renderelése változatlan marad.
*/
export const globalVersions: GlobalConfig['versions'] = {
drafts: true,
max: 50,
}
export const collectionVersions: CollectionConfig['versions'] = {
drafts: true,
maxPerDoc: 50,
}