- Apostrophe now displays “Saving… Saved” indicators near the context menu in the lower left indicator. In our UX tests, users often did not realize Apostrophe automatically saved their work and were concerned by the lack of an explicit save button. In addition, Apostrophe no longer attempts to save your remaining changes via a synchronous HTTP request when you close the page, because this is deprecated in all browsers and disabled in many. Instead, Apostrophe uses the standard “you have unsaved changes, are you sure you wish to leave this page?” dialog. Together with the “saving… saved” indicator, this provides a mechanism for preventing lost work that is robust in modern browsers.
This does impact Apostrophe’s “advisory locking” mechanism that warns users if another user is already editing. Since we cannot guarantee a synchronous request to unlock the page will ever be received, we have instead shortened the expiration time for document locks to 30 seconds. Since these are refreshed every 5 seconds there should be no negative impacts in typical use.
Thanks to Freshworks for making this improvement possible via Apostrophe Enterprise Support.
- New
disableInactiveAccounts
option, which can be set like so:
{
// in your project level lib/modules/apostrophe-users/index.js file
disableInactiveAccounts: {
neverDisabledGroups: [ 'admin' ],
// After 30 days without logging in, the account is marked disabled
// on next login attempt, until an admin explicitly enables it again
inactivityDuration: 30
}
}
If you enable this option you must set both sub-options explicitly.
-
A longstanding bug relating to schemas has been fixed. Previously, if you attempted to clear a string field that had a
def
property, that field would be repopulated with thedef
value. This was never intended;def
is only for the initial population of a newly created object. If you were relying on this bug, update your code to useapos.schemas.newInstance(schema)
from the start so that you begin with an object that has the right defaults for each field. Note that pieces, pages, etc. already do this. -
Added a
bodyAttributes
block toouterLayoutBase.html
. You may override this block to add new attributes tobody
without overriding the entireouterLayoutBase.html
template. It is a best practice to not override this template, use the provided blocks. -
Fields of type
attachment
withrequired
not set totrue
now work properly. -
You may now set the
loginUrl
option of theapostrophe-login
module to change the login URL from/login
to something else. Thanks to Giuseppe Monteleone for this contribution. -
help
property is now supported for array fields. -
Uploads with a capitalized file extension are now accepted where appropriate. Thanks to Fernando Figaroli for this contribution.
-
When editing a join with pages, a nonfunctional edit pencil icon is no longer displayed. Actual inline editing of page settings from another page may be a 3.0 feature.
Workflow 2.31.0
-
A regression introduced into the Batch Force Export feature in version 2.29.0 has been fixed. This regression prevented the documents directly selected from being force exported, unless related documents were also selected. Thanks to Michelin for making this work possible via Apostrophe Enterprise Support.
-
When you log in, workflow now defaults to
draft
mode. Defaulting tolive
mode caused a great deal of user frustration as users expected to be able to edit right away. However, you can set thedefaultMode
option for theapostrophe-workflow
module todraft
,live
orpreview
to override this. Thanks to J. Garijo for contributing this feature. -
Private locales are now locked down fully even in cases where they have hostnames, subdomains, prefixes, or defaultLocaleByHostname configuration that might otherwise imply they should be visible to the public. Thanks again to Michelin.