Fonto 7.8.0 (September 26, 2019)

New functionality

  1. We took a good look at the way tables are handled in Fonto, and made a few changes. Not only are tables handled just a bit faster, the new scrollbar, widgets and context menu should make dealing with them - and especially larger tables - a lot easier.

    • Tables that are too wide to be shown comfortably within the sheet frame now scroll sideways to create more room for the content. The column resizing popover will happily scroll along to make sure resizing columns is as easy as before.

    • Tables can now be expanded to the full width of the editor to really focus on their content. Note that, due to technical limitations, we can at this time not offer this feature for tables in read-only content or for tables inside layouts with multiple columns. If your application uses custom CSS to achieve such a layout, set the AllowExpansionInContentView CVK property to false to prevent unexpected behavior.

    • The new table widgets and all-improved table context menu allow easy insertion of columns and row, as well as access to common operations such as borders and alignment. It's also easier to select a complete table - simply click the little square in the table's top-left corner. Make sure to enable the widgets by setting showInsertionWidget and showHighlightingWidget to true in configureAsTableElements (or the table-specific version). Custom contextual operations will appear in the new context menu's "More" sub-menu.

    • Add your own custom widgets to table rows and columns using the new columnBefore and rowBefore widget areas, which can be set using configureAsTableElements (or a table-specific version thereof) as well as using configureProperties.

    • A blue outline now clearly indicates which table cell contains the cursor.

    • Use the new default table toolbar to easily add an intuitive table tab to your application's masthead.

    • Broken tables will no longer prevent your documents from loading. Fonto will show a placeholder instead. You could even write a custom mutation to allow these tables to be repaired.

  2. Not to be left behind, block-level MathML equations will now also scroll when they get too wide to fit in the sheet frame.

  3. The new configureAsInclusion and configureAsInclusionInFrame families make DITA conref-like functionality available to other schemata.

  4. We've added the new addEditorSidebarTabChangePreventCallback API to prevent your sidebar tabs from closing when that would cause important data to be lost.

  5. You can now add custom macro triggers for any list using the new macroTriggers property for configureAsListElements.

  6. We have added a configureAsInlineAnchorToFrame family, for those cases where your footnote-like elements are best shown with a border around them.

  7. The new showWhen option on createWidgetContainer can be used to make a widget only show up when hovering the mouse over an element or placing the cursor inside it.

  8. We have added cms-browser-upload-max-file-size-in-bytes and cms-browser-upload-mime-types-to-accept configuration values to make the CMS browser's upload functionality more flexible.

  9. Similar to addTransform, the "get state" callback for addAction may now return a Promise.

  10. The new AsyncSchemaLocationToSchemaExperienceResolver can be used in situations where you need to dynamically compose a schema experience at runtime.

  11. The new fonto:is-table and fonto:is-table-cell XPath functions may be used to match tables and table cells for any configured table type.

  12. The ContextualOperation API is extended to allow submenus and headings. See the Configure contextual operations guide on how to use this new API.

  13. Tables using percentage-based column widths (or similar) can now set a normalizeColumnWidthsStrategy in their TableDefinition to make sure the percentages continue to add up to 100% when adding or removing columns.

  14. We updated Fonto Development Tools to version 2.5.0, in which we fixed a number of issues to make developing and building your applications a little faster and more reliable. Upgrading is highly recommended.

  15. This release is accompanied by our very first release of Fonto Review, and it's pretty awesome. Read more about it on its official product page and its own documentation.

  16. Also make sure to check out the Fonto Content Quality 7.8.0 release notes!

  17. We’ve made our spell checker backend available for self-hosting, which means you’re no longer tied to Fonto’s server. We highly recommend to self-host it from a content security perspective. Please refer to the spell checker add-on documentation for details.

Resolved issues

  1. Custom processing instructions are no longer lost when copying and pasting content within Fonto.

  2. Reloading the document that contains the cursor now places the cursor back at the start of that document. Previously, the cursor simply disappeared.

  3. We resolved an issue where clicking in another sheet frame would in some cases not move the cursor. This issue tended to occur more often in very large documents or on slower machines.

  4. Resolved an issue where adjacent inline formatting elements were not merged if there are processing instructions or comments between them.

  5. Resolved an issue where deleting certain selections containing a single required element would not delete all content within the element.

  6. Resolved an issue where deleting rows or columns from a table would not normalize the table and forget to remove unnecessary merged cells.

  7. Resolved an issue where it was sometimes possible to apply formatting to parts of the document configured as read-only if the node configured as such was itself configured as inline formatting.

  8. Resolved an issue where certain operations could sometimes remain disabled after moving the cursor to a location where they should have been enabled.

  9. Resolved an issue where certain XPath descendant queries would not be correctly observed, causing certain changes to not be detected.

  10. Resolved an issue where frames configured with a grey background would be shown using a white background instead.

  11. Deleting a selection across multiple list items and sub-lists should no longer leave as many empty list items behind as in previous releases.

  12. Resolved an issue where typing very rapidly could unexpectedly move the cursor in certain cases.

  13. It is no longer possible to open the context menu on document previews in modals. Previously, this would open the context menu behind the modal, which wasn't very useful.

  14. Squiggles are no longer drawn under or over any block widgets that happen to be in the same range.

  15. Resolved an issue where squiggles could be positioned incorrectly after images above them are loaded.

  16. Resolved an issue where scrolling was difficult in some browsers while running an operation such as find and replace or the spell checker.

  17. Resolved an issue where find & replace would repeatedly scroll back to the active result.

  18. Resolved an issue where the error detail box shown when a document fails to load would sometimes unexpectedly open upwards instead of downwards.

  19. Resolved an issue where reloading a document could expand the placeholder upwards in some cases instead of keeping its title in view.

  20. Resolved an issue where some errors triggered by loading a document, including document validation errors, would not be shown in some configurations.

  21. Fixed a bug where the configured sheet frame header would overlap an error in the sheet frame.

  22. Fixed a possible crash when attempting to scroll an element into view in a view that encounters an error while rendering.

  23. Fixed a possible crash when using drag and drop on a structure view containing a single item.

  24. Fixed a possible crash when using a reducer that depends on an attribute value.

  25. Fixed a possible error when scrolling other documents into view.

  26. Fixed a crash when unloading a document containing results for an active find & replace query.

  27. Fixed a possible crash when triple-clicking the edge of a sheet frame or widgets in its header.

  28. Resolved a few bugs that caused Fonto to slowly use more and more memory.

  29. Resolved an issue where using the toggle-inline-formatting-element operation on an inline frame element could cause the operation to fail.

  30. VirtualList is now more robust when dealing with changing items and the selectedItemId for items that become significantly larger (in height) when selected.

  31. Removing a document via a menu on the structure view sometimes triggered a fatal error, this is no longer the case.

  32. Resolved an issue where some configurations using configureAsInvalid based on the ancestry of an element could unintentionally cause some operations to prevent inserting those elements anywhere, including in valid locations not matching the selector.

  33. CalendarInput, TimeSelect and DateTimeSelect now handle (JavaScript) Date object that do not represent a valid date (e.g., new Date(NaN)) without crashing. This could happen if, for example, you populate those fields with data directly from the XML in a (custom) metadata sidebar.

  34. Resolved an issue where the project browser would not pass the expected data to the operation defined by its insertOperationName property.

Other improvements

  1. We removed a bunch of boilerplate required for creating your own connectors in order to communicate with custom endpoints on your CMS, and made it easier to switch between the standard connectors and the iframe connectors. Please refer to the upgrade from 7.7 to 7.8 instructions for more details.

  2. We're continuing the performance and robustness of IME input in Fonto.

  3. We've made left and right cursor movement more predictable in tables, especially around merged cells. We're working on similar improvements for up and down in a future release.

  4. Deleting a selection across multiple paragraphs will now attempt to merge the first and last paragraphs rather than requiring another press of backspace or delete to do so.

  5. We improved the way many parts of Fonto consider positions in text to be word boundaries to align with the Unicode definition. This should improve the behavior of things like using Ctrl + arrow keys to jump to the next word or double-clicking to select words to better handle international characters as well as element boundaries.

  6. We made a few changes to cursor placement after various table operations to make this behave more consistently.

  7. We improved Fonto's behavior when copying content to not include elements for which only the edges are in the selection. Such selections are visually indistinguishable from those that do not include these edges, but could yield unexpected results when extra empty elements were copied and pasted along with the visibly selected content. Fonto will now only copy the content that was visibly selected.

  8. If Fonto is having trouble saving your documents, the border of those documents will now be colored to more clearly indicate this.

  9. We improved the text in the confirmation modals for fontoxml-track-changes' Accept all and Reject all operations to emphasize the effect these operations may have.

  10. Find & Replace will no longer show confusing "0 of 42" messages in its results counter.

  11. The XML view now only scrolls back to the selection when the editor does, instead of scrolling back after any type of change.

  12. Operations invoked from the context menu, element menu, breadcrumbs menu and various widgets, and popovers opened from the content view are now automatically passed the hierarchyNodeId corresponding to the sheet frame that was clicked.

  13. Primary buttons used in the neutral theme now have the same colors as when they are used in the default fontoBlue theme.

  14. We fixed an issue in the FDS Playground that caused the editor to lose focus after every change when testing the Modal component.

  15. This release includes FontoXPath 3.8.0, with a number of bug fixes and new functionality. Please refer to the FontoXPath release notes for details.