v3.39.0
v3.39.0 (2025-05-22)
🚀 Features
Folders allow you to organize your documents in a more manageable way. Now you can enable folders on a per-collection basis and from there start adding folders from within the admin panel (or via the API). Once you have folders enabled you can then start organizing. You can create folders and store documents across multiple collection types and then view them either in the collection "By Folder" or in the global "Browse by Folder" view.
CleanShot.2025-05-21.at.21.49.16.mp4
- show fields inside groups as separate columns in the list view (#7355) (2a41d3f)
- plugin-form-builder: add new date field (#12416) (4dfb2d2)
- richtext-lexical: add TextStateFeature (allows applying styles such as color and background color to text) (#9667) (fc83823)
- ui: extracts relationship input for external use (#12339) (88769c8)
🐛 Bug Fixes
- auto inject req.user into query preset constraints (#12461) (22b1858)
- telemetry in opennext cloudflare (#12327) (2ab8e2e)
- prevent resizing of original file with
withoutEnlargement
on update (#12291) (1235a18) - incorrect environment file loading (#12360) (1425269)
- sanitize duplicate blocks (#12440) (5855f3a)
- orderable with groups and tabs requires migration (#12422) (529bfe1)
- respect
hidden: true
for virtual fields that have reference to a relationship field (#12219) (1f6efe9) - cpa: ensure it always installs the latest version of the templates (#12488) (898e97e)
- db-*: ensure consistent sorting even when sorting on non-unique fields or no sort parameters at all (#12447) (72ab319)
- db-mongodb: remove
limit
from nested querying (#12464) (230128b) - db-postgres: allow the same block slug in different places with a different
localized
value (#12414) (219fd01) - plugin-import-export: add translations for all UI elements and fields (#12449) (3127d6a)
- plugin-multi-tenant: multi-locale tenant select label (#12444) (4fe3423)
- plugin-multi-tenant: add missing translation for Assigned Tenant field (#12448) (e8c2b15)
- plugin-seo: fix genImageResponse result parsing (#12301) (cead312)
- richtext-lexical: support inline block types in strict mode for JSXConvertersFunction type (#12478) (8596ac5)
- templates: make images visible in live preview if it is not running on port 3000 (#12432) (d4899b8)
- ui: set gap to 0 in sort column buttons to remove unneeded spacing (#12481) (c772a32)
- ui: render missing group children fields for unnamed group (#12433) (6fb2beb)
- ui: req not being threaded through to views (#12213) (bd6ee31)
⚡ Performance
📚 Documentation
- update rich text to HTML conversion documentation (#12465) (c701dd4)
- fix API capitalization typo in virtual fields documentation (#12477) (324daff)
🧪 Tests
📝 Templates
🏡 Chores
- simplifies buildColumnState functions (#12496) (8142a00)
- ignore .idea run configuration templates (#12439) (23f4204)
- fix all lint errors and add mechanisms to prevent them from appearing again (#12401) (2a929cf)
- add ignores .next folder in eslint config for templates template (#12423) (e395a0a)
- drizzle: fix lint errors in
@payloadcms/drizzle
(#12428) (38029cd) - live-preview: load schemaJSON from proper client config in integration tests (#12167) (08a3dfb)
🤝 Contributors
- Jarrod Flesch (@JarrodMFlesch)
- Paul (@paulpopus)
- Anders Semb Hermansen (@andershermansen)
- Germán Jabloñski (@GermanJablo)
- Patrik (@PatrikKozak)
- Sasha (@r1tsuu)
- Dan Ribbens (@DanRibbens)
- Alessio Gravili (@AlessioGr)
- Keisuke Ikeda (@ksk1kd)
- Jacob Fletcher (@jacobsfletch)
- conico974 (@conico974)
- Femi Oladipo (@femioladipo)
- Anyu Jiang (@anyuj)
- Elliot DeNolf (@denolfe)
- ch-jwoo (@ch-jwoo)