Fonto Editor 7.15.0 (June 24, 2021)

For the upgrade instructions, head over to Upgrade from 7.14 to 7.15.

A number of APIs will be removed in the 7.16 release. They are listed on the Upcoming removals 7.16 page.

New functionality

  1. We've extended the outline badges feature to allow tagging outline items with multiple badges. Moreover, the Outline filter form has been updated accordingly and lets you filter across several dimensions at the same time, if you've chosen to group status badges. The documentation for this can be found under registerNodeStatus and statusQuery.

  2. Fonto Editor now supports pasting list items containing multiple paragraphs when copied from Google Docs, Microsoft Word and LibreOffice.

  3. The new close-sidebar operation can be used to close the sidebar without having to keep track of which sidebar is currently open.

  4. The new scroll-selection-into-view operation can be used to scroll the current selection into view. This may be a useful step after operations that move selected nodes around.

  5. We now check the origin of messages sent and received with the postMessage API. This affects both the iframe communication feature and the iframe cms connectors add-on. This provides better security and protects Fonto Editor from a possible security vulnerability where an external page could intercept the iframe communication.

Resolved issues

  1. Fixed an error that could occur if the schema contains a simple type that is a restriction of a union. Fonto Editor now handles getting the whiteSpace value of an xs:union simple type by returning the most restrictive value present among the union's member types. Note that this behavior is not entirely according to the spec, but it should in most cases match the desired behavior.

  2. We've made some fixes to make the cmsClient.createContext method a viable alternative to the private buildContext API, and have now removed the latter. Please refer to the upgrade instructions for details on how to use createContext in cases where your application may have made use of the removed private API.

  3. Fixed a crash that could occur in rare cases when rendering inclusions.

  4. Resolved an issue where drag and dropping content in the Fonto Editor could in rare cases cause an error.

  5. We fixed an issue where the sidebar used for fontoxml-annotations and fontoxml-track-changes could crash Fonto Editor in some cases when documents containing annotations or tracked changes were added to and/or removed from the documents hierarchy.

  6. Resolved an issue where the execute-update-script operation could fail on expressions using the replace value of node operation if the replacement value was empty.

  7. Resolved an issue where attempting to call the toggle-table-overflow-mode or toggle-table-overflow-expanded operations right after Fonto Editor starts (for instance in a callback for the initialDocumentsLoadedNotifier) could cause an error.

  8. Fixed an issue where passing an element configured as inclusion (such as DITA conrefs) directly to fonto:curated-text-in-node would not work as expected. If the inclusion has one target, it will now act as if the target node replaces the inclusion, and not add newlines for the inclusion node. If the inclusion has multiple targets, it will act as if the targets are children of the inclusion node, thus creating newlines for those children where applicable.

  9. Resolved an issue where calling getResults again on the observer returned by indexManager.observeQueryResults would return invalid or outdated information if a prior call to it threw an error. As long as the expression being observed results in an error, each call to getResults will now throw that same error.

  10. We fixed a few cases in which bold text copied from Google docs to Fonto Editor would not remain bold.

  11. Fixed a bug where some of the border mode buttons for table styling were never enabled.

  12. Fixed a number of issues around highlighting table cells and switching between highlighting mode and the normal selection.

  13. Fixed a few issues where SVG images without width and height properties on the root element were not rendered correctly in Fonto Editor, particularly in Firefox.

  14. Resolved an issue where the selection was not always kept in view when using the move-sequence-item-up and move-sequence-item-down operations.

  15. Resolved an issue with the fontoxml-whitespace-visualization add-on in Chrome and Edge where it could show spaces that did not exist in the actual content.

  16. Fixed a bug where a newly added instance of a document that was already part of the hierarchy would sometimes appear invisible in the content view.

  17. Fixed an issue where broken inclusions would not correctly re-appear when their target is restored.

  18. Fixed an issue where the scope selector component in the properties sidebar would not update in some cases when the selection is changed.

  19. Fixed an issue where the document preview modal used by the open-document-preview-modal operation would not always correctly scroll the target node into view.

  20. Fixed a bug where clicking the add button in MultipleTextInput would not focus the text input afterwards and instead display an error in the browser's console.

  21. We now better handle overridden shortcuts in the shortcut modal: if an operation on the editor level overrides the keyBinding for a built-in operation, only the operation that is actually bound to the shortcut will now be displayed in the modal.

  22. Fixed a visual issue with the blue dot on the filter drop in the Find & Replace sidebar when the drop is focused.

  23. Fixed a minor styling issue in the CellHighlightModeSwitch component.

  24. Fixed an alignment issue with the icon used to indicate reused content in previews. We've also made sure that the icon continues looking as great as ever when users zoom in or out.

  25. Fixed an alignment issue with the icon in the review sidebar's tab.

  26. Fixed a visual issue where nodes configured both as read-only and as inclusion would show a double dashed border on hover. We also fixed an issue where such nodes would lose their border if they were also configured as (inline) frames.

  27. Fixed a view issues where read-only borders on inline structures would overlap other contents.

  28. Fixed an issue where reused elements with a click operation, a double click operation or a popover did not show an appropriate cursor to indicate that they can be clicked.

  29. We fixed an error that could occur when trying to apply operations designed for one table type (e.g., CALS tables) to a table of a different type (e.g., a DITA <simpletable>). These operations will now be disabled for other types of tables.

  30. We fixed a bug that was allowing you to have a table with only header rows.

  31. We've fixed a bug where the state of borders on the selected table cell was incorrectly reflected in a toolbar button.

  32. We fixed an issue where the URL logged in warnings for upcoming API removals was not working.

  33. Fixed an issue that caused FDT commands invoking Docker to fail on certain setups.

Other improvements

  1. We are now compiling many simple XPath selectors to their JavaScript source code equivalent, which can be up to 10 times as fast. This is a performance increase for many common tasks that require XPath to be evaluated.

  2. The widget in the left-top corner of table can now select whole table for table styling.

  3. The shift+arrow-keys combination now works to change the highlight after highlighting an entire column, row or table using the highlighting widgets.

  4. Similarly, using shift + click to select multiple cells in a table now works as soon as the CellHighlightModeSwitch is set to active.

  5. Any existing (normal) selection in the table will now be converted into the blue highlight when the CellHighlightModeSwitch is switched to highlight mode.

  6. When highlighting tables by dragging the mouse and dragging back to the starting cell, that cell will now remain highlighted. Previously this would remove the highlight.

  7. Scrolling while highlighting cells in a table is a lot smoother now.

  8. We've added a focus visualization to inline links. This visualization will make it easier to see the boundaries between two consecutive links as well as decrease the ambiguity of the cursor being just inside or outside of an inline link.

  9. We've added ctrl+shift+z (cmd+shift+z on mac) as an alternative shortcut for the redo operation.

  10. Browse modals that allow selecting an element in their document preview now clearly indicate (using a message above the preview) when the selected document does not have anything to select (i.e., when there are no nodes matching the linkableElementsQuery).

  11. The keybinding modal now shows a description associated with any keybinding for which the associated operation has one.

  12. Popovers opened for nodes that are inside of an inclusion are now passed the isReadOnly flag, as these nodes are not editable in this context.

  13. We improved the clickable area between list items and their numbering or bullet widget to make it easier to place the cursor at their start.

  14. Expanding or un-expanding a table with the cursor (or a selection) in one of the cells will now horizontally scroll that table to keep the cursor visible.

  15. In cases where clicking in a sheet frame affects the height of that sheet frame, Fonto will now attempt to keep the clicked sheet frame at the same height in the viewport. This prevents unexpected scrolling, for instance when collapsing or uncollapsing tables.

  16. As XHTML tables do not support cell-level borders, we no longer display the cell border buttons in the default table toolbar and the default table context menu for such tables.

  17. If an Outline item's text and its status badges do not fit on one line, the status badges are now truncated in such a way that the user can still find them easily.

  18. The outline now shows a tooltip with the reason why a document is locked if the lock state passed by the CMS contained a reason property alongside the isLockAvailable and isLockAcquired properties.

  19. We've added a tooltip to all menu buttons with an ellipsis-h icon (…).

  20. We've added tooltips to all reused and read-only inlines to better indicate that these nodes are reused or read-only, respectively.

  21. We've improved the error message used if a CMS response uses an incorrect Content-Type MIME type.

  22. We've improved the error message for cases where, when using the additionalDocuments feature in the GET /document endpoint, the CMS response lacks required information.

  23. We've modernized the internals of Fonto Editor. This includes converting classes to ES6 class expressions. If your application contains a class that extends a platform class, such as TableDefinition, you should convert it as well or rebase your table implementation fork. Check the upgrade instructions for details.

  24. As we are working from home a lot, we sped up file serving in the Fonto Development Tools to make remote paired development faster.

  25. We improved the clipboard playground to visualize any special whitespace or other invisible characters that may reside in content that you paste. This should help when debugging issues where such content may or may not end up in Fonto Editor.

  26. Our server-side Fonto products have been updated to run on ASP.NET Core Runtime 3.1.16, which includes security-related fixes.

Deprecated APIs

A number of API's have been deprecated in the 7.14.0 release, and are scheduled to be removed in release 7.16.0. We've prepared upgrade instructions so you can switch to the recommended alternatives ahead of time. The 7.15.0 release does not include new deprecations compared to 7.14.0.

  1. As DropButton is a deprecated component, we've now removed the corresponding example from the FDS playground and added an example for ButtonWithDrop as an alternative. You can also use DropAnchor (example), depending on your use case. Please refer to these examples and the API documentation for these components for details.