Apostrophe 2.105.2 & more: better IE11 support, multisite improvements, static i18n editing and other news

Apostrophe 2.105.1 & 2.105.2

  • Lean mode improvement: apos.utils.emit now works properly in IE11, addressing an issue that impacted apostrophe-forms submissions in IE11 in 2.105.0.

  • Lean mode improvement: IE11 now respects the prefix option properly in apos.utils.get and apos.utils.post (lean mode helpers for making API calls).

  • Lean mode improvement: lean video widgets did not support Internet Explorer 11 properly. This issue has been fixed. Non-lean mode video widgets have always supported Internet Explorer 11.

  • Best practices: if the jQuery: 3 option is not passed to apostrophe-assets a developer warning is now printed at startup. The use of jQuery 1.x is deprecated. All Apostrophe-published modules work fine with the jQuery: 3 option. You may need to review the jQuery 3 changelogs for a few changes required for your own legacy code.

  • Schemas: users may now intentionally clear a date field, whether or not it has a def setting, in which case it is stored as null (unless required: true is present). The inability to do this was a regression introduced in verion 2.102.0.

  • Static i18n: the objectNotation: true option to apostrophe-i18n, which we pass on to the i18n module, is now compatible with the namespaces: true option introduced in 2.105.0. When both are active, the namespace separator defaults to <@> to avoid a conflict with the : character used to begin the default value when using object notation.

  • Various documentation corrections and minor aesthetic improvements.

apostrophe-multisite 2.6.4

“What’s this module about?” apostrophe-multisite lets you run many Apostrophe sites in a single Apostrophe process, as long as they share the same codebase. Multiple themes are possible and the module pairs well with apostrophe-palette.

Command line tasks do not generate assets, unless the task being run is the actual apostrophe:generation task. The --without-forking option often used together with --all-sites when running tasks under apostrophe-multisite now respects this rule for much faster execution of tasks like apostrophe-migrations:migrate across all sites.

apostrophe-i18n-static 1.0.0

The new apostrophe-i18n-static module allows you to edit your static internationalization strings as pieces via Apostrophe’s admin bar, i.e. the strings you are passing to the __() helper and friends in your templates. It also has an option that can be used to hide the labels that come from the Apostrophe core module from this interface, if you are not interested in having those translated.

This module avoids the overhead that would normally be involved in page requests by writing back to the locale JSON files when edits are made.

apostrophe-forms 1.8.0

“What’s this module about?” apostrophe-forms lets your editors create forms and add them to the site via widgets. End users can submit those forms and the results are delivered by email, recorded in a collection and handled in other ways of your choosing.

  • Moves the mechanism that sends emails into the self.sendEmail method, allowing for this to be more easily overridden in a project. The initiating purpose was to add project-level subject line functionality that might not make sense for everyone. Thanks to Ricky Rodríguez Álvarez for the contribution.
  • Adds event emission on the body element for form submission ( apostrophe-forms:submission-form ) and submission failure ( apostrophe-forms:submission-failed ). Again, thanks to Ricky Álverez for the contribution.
  • Adds the option to use a custom class prefix to add classes to the form templates in addition to the .apos-form- classes. Thanks to Brett Gaynor for the contribution.
  • Adds date as an input type option to the string input widget.
  • Updates the ESLint configuration to eslint-config-apostrophe@3.10 and fixes linter errors.

sanitize-html 1.23.0

“What’s this module about?” Apostrophe uses sanitize-html to ensure content entered in rich text widgets “paints inside the lines” by not introducing unwanted elements, classes, style attributes, etc. See Configuring CKEditor for Apostrophe for information on how you can use its advanced features with Apostrophe.

  • Adds eslint configuration and adds eslint to test script.
  • Sets sideEffects: false on package.json to allow module bundlers like webpack tree-shake this module and all the dependencies from client build. Thanks to Egor Voronov for the contribution.
  • Adds the tagName (HTML element name) as a second parameter passed to textFilter . Thanks to Slava for the contribution.

Other module updates

mechanic, broadband and many other modules received minor updates related to code linting to ensure best practices are followed in future releases.