- Email schema field type added. Thanks to Andrea Di Mario.
- Developer warnings for bad
showFields
configuration now apply to all field types that supportshowFields
. - Schemas are now validated for nested
array
andobject
schemas, giving developers more information to help them fix their code. - The
poll-notifications
API now runs as middleware that is scheduled as early asreq.user
becomes available, avoiding the overhead of loadingreq.data.global
in this frequently polled API. - The
poll-notifications
API does not crash if theapos
object has been destroyed. This is not an issue for typical sites. However, this fix removes scary error messages displayed by the very useful apostrophe-monitor module, which is similar tonodemon
but specialized to Apostrophe for much faster restarts. - Although technically released in the
moog-require
module, not here, a recent fix in that module bears mentioning because it prevents bothapostrophe-monitor
andapostrophe-multisite
from misbehaving when the options objects of modules are modified. Specifically, the modifications are now reliably distinct for eachapos
object. - The logic that removes certain typically unwanted buttons from CKEditor is now conditional and does not remove them when they are explicitly requested in the toolbar. Thanks to Fredrik Ekelund.
- Placeholder markup when a pieces widget is empty. Although not often used directly, this template is often copied as a starting point.
- An open “add widget” area menu now appears above any hovered widget controls rather than being lost behind them.
-
showFields
support for fields of typecheckboxes
has been restored. - The “recursion warning” that appears when the same doc is loaded more than 5 times in a single request can now be suppressed on a per-request basis by setting
req.suppressAreaLoaderRecursionWarnings
totrue
. However the runaway loading process is still prevented. This is mainly of use for workflow API routes that examine many documents but are OK with stopping in this situation without generating extra log messages.
Thanks to Michelin for sponsoring much of this work through Apostrophe Enterprise Support.