All Versions
308
Latest Version
Avg Release Cycle
12 days
Latest Release
20 days ago

Changelog History
Page 17

  • v2.72.3 Changes

    December 03, 2018

    โœ… Unit tests passing.

    โœ… Regression tests passing.

    • The "apply to subpages" feature for page permissions has been greatly simplified and made easier to understand. There is now just one shared "copy these permissions to subpages now?" dropdown, which applies to ALL current permissions for the current page: "who can view this page," "these users can view," "these groups can edit," etc.

    As the help text now properly explains, if you pick "yes" and save page settings as usual, the permissions of all subpages are updated to match on a one-time basis. After that, you can edit them normally for the subpages. This is an action that takes place at "save" time, it is not a setting that is remembered.

    This is good for laying down a baseline and then making fine-tuned adjustments per page, which is typical practice.

    Previously this choice appeared in several places, including as a highly confusing and visually cluttered dropdown within the list of permissions per user and group. While theoretically this allowed for propagating fine-tuned adjustments to subpages one at a time, in practice users did not understand it, including many enterprise customers who invest significant time in Apostrophe. Therefore a simpler solution is of greater overall value.

    • โช Regression fix: support for in-context, on-page editing of areas in array fields has been restored.

    • ๐Ÿ‘€ Attempts to save a field of type object with a missing required field now behave sensibly, you no longer see a spinner forever on a grayed-out page. Note that the use of required for the object itself has no meaning because there is always an object; you should make its fields required, or not, as you see fit.

    • ๐Ÿšš "Move" and "Trash" operations on widgets now emit the Apostrophe events widgetMoved and widgetTrashed. The widget's container div is emitted as the argument to the event.

  • v2.72.2 Changes

    November 28, 2018

    โœ… Unit tests passing.

    โœ… Regression tests passing.

    • ๐Ÿ‘ท The apostrophe-jobs runNonBatch method no longer crashes if the job-runner function provided does not return an object (for instance, because it takes a callback so its return value does not matter).
    • apostrophe-attachments:list task lists the URLs of all valid attachments, including all crops in all sizes.
    • array fields may be used in the relationship of a join. Thanks to Anthony Tarlao.
    • โž• Added missing callback to asset bundle cleanup for cloud deployments, ensuring that the lock is eventually released and the old bundles are eventually removed.
    • ๐Ÿ›  Fixed documentation for apos.jobs methods re: the labels option.
  • v2.72.1 Changes

    November 07, 2018

    โœ… Unit tests passing.

    โœ… Regression tests passing.

    • ๐Ÿšš Moving a page beneath a parent that happens to be considered "not trash" should not automatically cause the child to be considered "not trash" when workflow is in effect, or when the trashInSchema flag has been opted into for apostrophe-docs. In these cases the trash flag is just another schema property. This bug led to pages inadvertently becoming live across all locales when moved in the page tree.
    • The server-side video schema field converter no longer crashes the process if given a null property, and correctly flags the field as in error if it is required and not present.
    • Any missing values for join relationships relating to permissions are now handled in a proper migration in apostrophe core, rather than a hack in apostrophe-workflow that adds significant startup time in certain situations.
    • Migration completion is now logged.
    • ๐Ÿ’ป UX fix: UI/area controls no longer compete with "Add Content."

    ๐Ÿ‘ Thanks to our enterprise support customers for their support of this work.

  • v2.72.0 Changes

    October 30, 2018

    โœ… Unit tests passing.

    โœ… Regression tests passing.

    • Support for subdirectories of lib/modules. You must set the nestedModuleSubdirs option to true in app.js. You can then place your modules in nested subdirectories of lib/modules. The names of the parent folders do not matter, and the name of the actual module folder must still match the name of the module.

    ๐Ÿ”ง In addition, when using this feature you may optionally move part of your modules configuration into a modules.js file in each directory. Here is an example:

    module.exports = {
      'module-name': {},
      'other-module-name': {}
    };
    

    ๐Ÿ”ง By following through with this approach you can make app.js much shorter. Configuration of Apostrophe modules installed via npm must still be done in app.js.

    • The apostrophe-html-widgets module now properly concatenates fields to the standard HTML field when addFields is used with it.

    • ๐Ÿ›  Fixed a crashing bug when an API was used in an atypical way. Thanks to Max Schlueter.

  • v2.71.1 Changes

    October 24, 2018

    โœ… Unit tests passing.

    โœ… Regression tests passing.

    ๐Ÿ›  Recent changes to the markup for buttons broke drag and drop for widgets. This has been fixed.

  • v2.71.0 Changes

    October 23, 2018

    โœ… Unit tests passing.

    โœ… Regression tests passing.

    • โšก๏ธ When two pieces or pages would have the same slug as the result of an insert or update, Apostrophe automatically appends a unique string. This makes sense for data integrity but as a user experience it leaves something to be desired.

    Beginning with this release, if you are editing the title in the piece or page settings editor and apostrophe is making automatic slug suggestions, these suggestions will now include the suffix needed to avoid a conflict. This gives you a chance to see what will happen, and decide to change the title or the slug in a better way. However, you can disable this by setting the deconflictSlugs option of the apostrophe-docs module explicitly to false. If you do, then from now on you will receive a straightforward error message if the suggested slug is in conflict with another slug on the site.

    • If you edit the slug directly and try to save it with a conflict, Apostrophe will always report a straightforward error in the editor, requiring you to fix it manually. This makes sense when you are editing the slug yourself, because it means you care about the exact value.

    For backwards compatibility and to resolve race conditions, the server will still automatically modify the slug to be unique in the rare event that a conflict arises during the save operation itself.

    • ๐Ÿ‘ A simpler yet even better slug prevention feature, in many ways: all apostrophe-pieces modules now accept a slugPrefix option. For instance, if you set this option to people- for your people module and to image- for the apostrophe-images module, the slugs for your people and the photos of them you are uploading will never be in conflict.

    ๐Ÿ‘ We appreciate our enterprise customers and their support of this work.

  • v2.70.1 Changes

    October 18, 2018

    โœ… Unit tests passing.

    โœ… Regression tests passing.

    • Bug fix: when you attempt to edit a piece that someone else has open in the edit dialog box, you should receive a warning, and the option to take over or leave it alone. This worked, however the "advisory lock" was not released when closing the dialog box. So users saw superfluous warnings. The bug was related to calling $.jsonCall with the wrong order of arguments.
    • ๐Ÿ› Bug fix: a user without permissions to lock a particular document could cause a process restart by attempting to lock it. No inappropriate access was granted.
    • ๐Ÿ”ง When configuring the csrf option of apostrophe-express, you may now pass the cookie subproperty in order to pass configuration options to res.cookie, such as secure: true.
    • ๐Ÿ”Œ The jQuery onSafe plugin now respects the return value of the event handler, allowing the use of return false; in such handlers. Thanks to Fredrik Ekelund.
    • The Apostrophe button macro now renders a button rather than an anchor tag, except when the url option is present. Thanks to Fredrik Ekelund.
  • v2.70.0 Changes

    October 08, 2018

    โœ… Unit tests passing.

    โœ… Regression tests passing.

    ๐Ÿ“œ Apostrophe now allows direct import of unparsed CSS files via import flags of LESS. The best use of this option is to push a CSS file created by a SASS compiler or other LESS alternative.

    To push a CSS asset without compiling it as LESS, you may write:

    self.pushAsset('stylesheet', {
      name: 'bundle',
      import: {
        inline: true
      }
    });
    

    ๐Ÿ’… Or, if you are pushing assets via the stylesheets option of the apostrophe-assets module, you may write:

    'apostrophe-assets': {
      stylesheets: [
        {
          name: 'bundle',
          import: {
            inline: true
          }
        }
      ]
    }
    

    The extension of the file may be either .css or .less; either way it is imported with no LESS compilation. Apostrophe will still modify URLs to accommodate the global prefix option, if present.

  • v2.69.1 Changes

    October 04, 2018

    โœ… Unit tests passing.

    โœ… Regression tests passing.

    • In-context editing of areas nested in arrays now works correctly when the widget containing the array has just been added to the page for the first time.
  • v2.69.0 Changes

    October 03, 2018

    โœ… Unit tests passing.

    โœ… Regression tests passing.

    • Promisified all of the apis for migrations, including the option of iterators that return promises, and implemented migrations for old piece and page slugs that have not been deduplicated and thus can block new pages or pieces from taking a slug even though we have logic for this for new pages and pieces.
    • ๐Ÿ‘ In-context editing support for areas and singletons that are schema fields of arrays. Leaves other, noncontextual data alone. Creating and editing entire array items contextually is outside the scope of this change; use an area rather than an array for that. Directly nested arrays are not supported, but you may use an area in an array in a widget in an array, etc.
    • .jpeg files were slipping through with that extension. All new uploads will be correctly converted to .jpg and go through the proper sizing process.
    • The enableShowFields option was missing some of its logic for fields of type checkboxes. Thanks to Anthony Tarlao.
    • A _title property is now included in attachments returned by apos.images.all and apos.images.first.
    • ๐Ÿ‘€ When apostrophe cannot fix a unique key error, it is helpful to be able to see the last error, as well as the original one. This helps you figure it out if both a unique slug error and an unrelated unique key error are part of the puzzle. We still throw the original error, but we also attach the last error as a property of it, so you can see both.
    • The apos.areas.fromPlaintext method now takes an options parameter. You may set the el property to an element name, in which case the markup is wrapped in that HTML element. options may be omitted.