All Versions
309
Latest Version
Avg Release Cycle
12 days
Latest Release
512 days ago

Changelog History
Page 21

  • v2.53.0 Changes

    April 11, 2018

    βœ… Unit tests passing.

    βœ… Regression tests passing.

    • πŸš€ Do not send X-XSRF-TOKEN headers in an OPTIONS request. This change was mistakenly left out of the 2.52.0 release.
    • The named anchor main can now be overridden via the mainAnchor nunjucks block.
    • πŸ‘€ The npmRootDir option can be used to cause Apostrophe's module loading mechanism to seek npm modules in a location other than that specified by rootDir (or the project root). The new localesDir option of apostrophe-i18n does the same for localization. This makes it possible to use rootDir to specify an alternate location for everything else, i.e. the parent of public, data, lib/modules, etc. A necessary accommodation for the evolving apostrophe-multisite module.
    • Raw HTML widgets now offer help text out of the box.
    • The express.static middleware now runs before the apostrophe-global middleware and other "standard" Apostrophe middleware.
    • πŸ“œ Your own module-level expressMiddleware object can specify { when: 'beforeRequired', middleware: function(req, res, next) { ... }) to run before the required middleware as well. Note that this means no sessions, no users and no body parser. Most of the time you'll want those things.
    • CSS adjustment to tabs in modals so they don't scroll in Firefox.
    • ⬇️ Dropzones for empty areas are easier to drop onto.
  • v2.52.0 Changes

    March 30, 2018

    βœ… Unit tests passing.

    βœ… Regression tests passing.

    • βœ… No more 404's when slugs change for pages and pieces. Apostrophe now automatically implements "soft redirects" to the new URL of a page or piece. This is a major SEO improvement, with good support for any page or piece with a ._url property. Note that this feature "learns" URLs over time as the pages and pieces are actually accessed, so if you decide to test it, remember that you must access the old URL at least once before you change it for the test. This feature can be disabled, if you really want to, by setting the enable option of the apostrophe-soft-redirects module to false.
    • 🐎 Indexed queries on the parkedId and advisoryLock._id properties. The lack of indexes for these properties could lead to full collection scans, so this is a significant performance boost on large databases.
    • πŸ‘€ Apostrophe's anti-CSRF forgery X-XSRF-TOKEN header is no longer sent as part of an OPTIONS request, or as part of a cross-domain request. In the first case, cookies cannot be set by the server anyway, and in the second, we are communicating with a server that cannot see our session to verify it. In both cases, sending the headers was causing configuration headaches for developers. Thanks to Priyansh Gupta.
    • πŸ‘― A UI bug fix: the recently added "clone" button for widgets is no longer displayed for singletons, or for areas whose limit has been reached. Also, the cloneable: false option can be used to disable this feature for a particular area.
    • 🚚 UI bug fix: no more conflicts between the "Add Content" menu and the up/down/remove/etc. buttons for widgets.
    • ⚠ Clearer warnings and error messages.
  • v2.51.1 Changes

    March 27, 2018

    βœ… Unit tests passing.

    βœ… Regression tests passing.

    • ⚑️ Do not crash when updating a doc if widgets exist but _originalWidget does not. This can happen in workflow scenarios where Apostrophe's find is bypassed.
    • ⚑️ Accommodations for the forthcoming apostrophe-optimizer module.
  • v2.51.0 Changes

    March 21, 2018

    βœ… Unit tests passing.

    βœ… Regression tests passing.

    • πŸ‘€ Widget fields may now have a permission property. If present, the user must have the named permission (such as admin), or they will not see that particular field in the editing dialog box. This is useful when a widget should be authorable by most users but has a sensitive field that should be restricted to a smaller group of users. Note that this feature already existed for schema fields of pieces and pages.
    • 🏁 Apostrophe again allows a named pipe to be specified via the PORT environment variable, for compatibility with Windows. Thanks to JΓΈrgen M. SkogΓ₯s for this fix.
    • 0️⃣ Apostrophe's default settings for the bodyParser option are now generous enough, in the case of JSON request bodies, to cover all reasonable editing scenarios in Apostrophe. This change also benefits the apostrophe-headless module.
    • πŸ›  When Apostrophe must generate a path for a new page, it will look at the provided slug before it looks at the provided title. This is useful when titles in an import are of poor quality but slugs are unique. Prevents unnecessary numbered suffixes after both slugs and paths.
    • The dropdown menu to add a widget no longer has a conflict with the hover menu offering widget controls such as "up," "down," etc. The hover menu does not appear while the dropdown menu is open.
  • v2.50.0 Changes

    March 14, 2018

    βœ… Unit tests passing.

    βœ… Regression tests passing.

    • πŸ‘― Clone button for widgets in areas, to save time when editing.
    • πŸ†• New features for displaying the titles of array items when editing fields of type array. titleField may now use dot notation. In addition, if that isn't enough, you may use listItemTemplate to point to an alternative to the standard arrayListItem.html template, which you may use as a reference. In addition, both titleField dot notation and the custom listItemTemplate have full access to joins. Be sure to use cross-module include syntax if you don't want to put the template in lib/modules/apostrophe-schemas/views. For instance, you may write listItemTemplate: 'my-module-name:listItemTemplate.html'.
    • πŸ› Bug fix: modals are the right height when jQuery 3 is in use.
    • CSS class added to the h4 that displays the title in an apostrophe-images widget, for your CSS styling convenience. Thanks to Gareth Cooper.
  • v2.49.0 Changes

    March 09, 2018

    βœ… Unit tests passing.

    βœ… Regression tests passing.

    • πŸ†• New password reset feature. You will need to configure apostrophe-email and opt into this feature. See the new Apostrophe password reset HOWTO.
    • 🐎 Significant performance boost to the "reorganize" modal in situations where numerous pages are in the trash when using the apostrophe-workflow module.
    • πŸ“¦ If widget ids are not provided when inserting new documents they are automatically generated. This makes apostrophe-headless easier to use.
  • v2.48.0 Changes

    March 01, 2018

    βœ… Unit tests passing.

    βœ… Regression tests passing.

    • πŸ†• New color and range schema field types. color provides a color picker field allowing values compatible with CSS, etc. range provides an <input type="range"> element and respects min and max options.
    • πŸ†• New apos.utils.log, apos.utils.info, apos.utils.debug, apos.utils.warn and apos.utils.error methods. These are now used consistently throughout Apostrophe core, both in the server and in the browser. On the server, these methods wrap the corresponding methods of a logger object and you can inject your own via the logger option of the apostrophe-utils module. By default a logger object that wraps the console object is created. For convenience, if your logger has no log method, apos.utils.log will call logger.info. This allows many popular loggers like winston to be used without modification "out of the box."
    • modulesSubdir option to specify subdir where local modules come from, overriding lib/modules. Useful when more than one apos object exists in a project.
    • ⚠ Major speedup to parked pages. Also eliminates spurious warnings about inefficient joins at startup.
    • πŸ”¨ Refactored autocollapse behavior of admin bar into its own method for easier overrides.
    • πŸ›  CSS fixes for improved usability.
  • v2.47.0 Changes

    February 14, 2018

    βœ… Unit tests passing.

    βœ… Regression tests passing.

    • πŸ“¦ Developers now have the option to use jQuery 3. To enable jQuery 3, set the jQuery option of the apostrophe-assets module to the number 3. We have packaged specific versions of jQuery 3 and jQuery UI which are known to be compatible with and tested with Apostrophe's UI, and we plan to use these in our own projects going forward. We will be making this change in the apostrophe boilerplate project. Of course Apostrophe's UI remains compatible with the older version of jQuery that loads by default. There is no bc break.

    • πŸ‘ When you join with pages, by using the virtual doc type apostrophe-page, the user is now invited to choose a page via a version of the reorganize dialog box, which has been made more user-friendly for this purpose. Autocomplete is still supported too.

    • The reorganize dialog box is more pleasant to use. This dialog will continue to evolve to offer more of the functionality found in the "manage" dialog boxes for piece types.

    • πŸš‘ The page parking mechanism has been overhauled and improved. From now on, it is our recommendation that you set a unique parkedId for each parked page you configure for apostrophe-pages. This ensures that even if you change the slug in the configuration of the parked page, Apostrophe will still be able to understand that the page already exists and a new one should not be inserted. This is especially critical if using apostrophe-workflow, since you might decide to add or change locale prefixes at some point.

    • The database connection keepalive mechanism now uses a query against an empty collection, rather than a server status call that the database user might not have permission to make.

    • The apos.utils.cssName helper now preserves double dashes, as they are a common feature in modern CSS frameworks.

    • There is now an apostrophe-areas:widgetBase.html file which can be extended block by block in a project-level lib/modules/apostrophe-areas/views/widget.html file. New overrideable methods have also been added to simplify adding custom classes programmatically to the wrapper and the widget itself without overriding any templates.

    • πŸ”§ It is now possible to configure select elements (we do not recommend more than one) to be displayed inline with the other widget controls, i.e. up, down, delete, etc. The back end of this is left to the developer, however you can check out the still-evolving apostrophe-personas module for an example. This feature is primarily meant for modules like apostrophe-personas that impact all widgets in a general way.

  • v2.46.1 Changes

    January 30, 2018

    βœ… Unit tests passing.

    βœ… Regression tests passing.

    • πŸ‘― Attachment fields now save properly when directly part of the schema of a widget. A bug was introduced in version 2.42.0 when the length property was added to attachments. A fix made long ago to apos.utils.clonePermanent on the server side was also needed on the browser side.
  • v2.46.0 Changes

    January 25, 2018

    βœ… Unit tests passing.

    βœ… Regression tests passing.

    • πŸ‘€ The "Copy" button of pieces now copies areas that do not explicitly appear in the schema, and works correctly when an apostrophe-pieces module is set contextual: true. Overrideable methods are provided for those who need to copy more than schema fields and top-level areas. We do not copy every property by default because this could have unforeseen consequences; we copy only what is in the schema, plus top-level areas because these have always been supported without an explicit schema in templates.

    • It is now possible to secure widget properties so that they are not visible to end users if you do not choose to output them in the markup. To do that, set the playerData option of your widget module to false, or to an array of properties that should be visible in the data JSON attribute so that they are passed to the play() method. Normally widget properties are public information, intended for display, but this technique is useful if you have a username and password for use in fetching an external feed in a server-side load method, for instance. Note that to allow widget editing to function, everything is still passed in data if the user has editing privileges for the widget. So if you seek to verify this feature, be sure to check as a logged-out user, or a user without editing permissions for that content.

    • It is now easy to override the fieldset markup for Apostrophe schemas. Just copy lib/modules/apostrophe-schemas/views/fieldset.html to your project-level version of that path and edit it. However, please note that you must continue to have an outer wrapper element with the given attributes.

    • πŸ‘• Apostrophe's codebase now passes eslint. In the process many cases of callback errors being ignored were fixed, as well as global variable leaks.

    • πŸ”’ Apostrophe's apos.locks.lock and apos.locks.unlock methods now support promises.