Apostrophe 4.7.0 Batch processing for pages, enhanced tools for manual translations, a new REST endpoint for locales, and fixes

Batch processing comes to pages

Batch processing has long been available for pieces, and now it’s available for pages too. Out of the box, pages can be batch published, archived, and restored. With the @apostrophecms/import-export module you can also batch export pages. Just like with pieces, you can also create your own custom batch operations tailored to your specific needs.

New translation option

Announcing our new Import Export Translations extension! We've already demonstrated how we can integrate the power of AI to automate content translation workflows. At the same time, we've heard from our community how valuable it is to optimize for other methods of content translation at scale. We're solving for this by releasing a new extension that exports all string content into a JSON file, ready for use by third party translators and translations services. The file contains metadata to provide helpful context and make it easy to import translated content back into your locales. This gives you full control over localized content without sacrificing ease of use.

Locale listing API

Adding custom locale UI elements, such as selectors, used to require creating your own API endpoint. Now, there is an endpoint for that! The /api/v1/@apostrophecms/i18n/locales endpoint will return an object with details about all the configured locales.

Polish, fixes, and accessibility

As always, in addition to new features, we have been working hard to make your work easier by making the UI and UX of ApostropheCMS even better! Items added to object and array schema fields now can be rearranged in a smoother and more predictable manner. We have made tweaks to some menus so that they don't block other content, and we have fixed an error in the rich-text-widget that broke the page link UI. We have released significant improvements to our @apostrophecms/import-export module to improve the handling of attachments and images with cropping. While inline images in rich-text are currently not exported/imported, a hotfix is on the way. Images added via widgets or relationships work seamlessly.

Community translations

As an update, we have released the first batch of extensions with AI-generated translation strings curated by our amazing community. This effort is ongoing, with a new batch of pull requests recently added into our #translations Discord channel. We're on track to have all core modules and extensions translated into our six core languages.

Check out the release notes below for additional fixes and improvements. Remember npm update gets you the latest and greatest right in your project! As always, join the Discussion on GitHub

Apostrophe 4.7.0

Adds

  • Add batch operations to pages.
  • To aid debugging, when a file extension is unacceptable as an Apostrophe attachment the rejected extension is now printed as part of the error message.
  • The new big-upload-client module can now be used to upload very large files to any route that uses the new big-upload-middleware.
  • Add option skipReplace for apos.doc.changeDocIds method to skip the replacing of the "old" document in the database.
  • The @apostrophecms/i18n module now exposes a locales HTTP GET API to aid in implementation of native apps for localized sites.
  • Context menus can be supplied a menuId so that interested components can listen to their opening/closing.
  • Allow to set mode in AposWidget component through props.
  • Add shortcuts to pages manager.
  • Add replaces (boolean, false by default) option to the context operation definition (registered via apos.doc.addContextOperation()) to allow the operation to require a replace confirmation before being executed. The user confirmation results in the Editor modal being closed and the operation being executed. The operation is not executed if the user cancels the confirmation.

Changes

  • Wait for notify before navigating to a new page.
  • Send also checkedTypes via the pages body toolbar operations (e.g. 'batch') to the modal.

Fixes

  • Fix link to pages in rich-text not showing UI to select page during edit.
  • Bumps uploadfs dependency to ensure .tar.gz, .tgz and .gz files uploaded to S3 download without double-gzipping.
    This resolves the issue for new uploads.
  • Registering duplicate icon is no longer breaking the build.
  • Fix widget focus state so that the in-context Add Content menu stays visible during animation
  • Fix UI of areas in schemas so that their context menus are layered overtop sibling schema fields UI
  • Fix unhandled promise rejections and guard against potential memory leaks, remove 3rd party debounce-async dependency
  • Adds an option to center the context menu arrow on the button icon. Sets this new option on some context menus in the admin UI.
  • Fixes the update function of AposSlatLists so that elements are properly reordered on drag