Upgrade from 7.7 to 7.8

Required Changes

FDT

This release of Fonto Editor requires the latest version of the Fonto Development Tools (FDT). Please run npm i -g @fontoxml/fontoxml-development-tools to install it.

Recommendations

Contextual Menu for Tables

This release introduces a standard contextual menu for tables. It contains a set of predefined operations for all supported table types. You can add your own (custom) operations to this menu. These will be shown as a submenu under the "More" menu item. The "More" menu item will not be rendered when no contextual operations have been configured for the table's elements.

You can remove any contextual operation configuration for operations that already appear in the default context menu to prevent duplicate entries showing up in the "More" submenu. Alternatively, you can add hideIn: [ 'context-menu' ] to keep showing these operations in other places such as the breadcrumbs menu.

Default Toolbar for Tables

This release introduces a standard toolbar for tables. To include the default toolbar, include the TableToolbar.jsx from fontoxml-table-flow in your Masthead.jsx file as shown in the example below. Remember to delete the table toolbar that is currently configured in your editor.

JavaScript

import TableToolbar from 'fontoxml-table-flow/src/TableToolbar.jsx';

Expanded table view

This release introduces a better way of showing large, especially wide, tables. Tables can now break out of the sheetframe of its containing document. You can disable this feature setting the allowExpansionInContentView CVK option to false. This property can be set on a table or on any of its ancestors.

JavaScript

configureProperties(sxModule, 'self::table', {
    allowExpansionInContentView: false
});

Table performance

This release of Fonto Editor improves table performance, for this we have also made some changes in fontoxml-table-flow-xhtml. We advise you to update any forks you have of this.

Spell Checker

It is now possible, and highly recommended, to host your own instance of the backend for the optional spell checker add-on for Fonto Editor. Previously, integrating the add-on automatically meant sending (parts of) documents over the public internet to a Fonto-managed backend. While this is still the default, as of this release, the spell checker backend can be obtained with the latest version of the Fonto Development Tools, using the fdt spell-checker commands. Set the new usePublicSpellChecker property of the SpellCheckerConfiguration object to false to have Fonto Editor send requests relating to the spell checker through the /proxy/spell-checker endpoint. These requests can then be forwarded to a self-hosted spell checker backend instance.

Custom connectors

We have made a change in the connectors used in Fonto Editor to support the iFrame connectors across all products. Document History, Content Quality and Review did not support iFrame connectors up to now.

  • With this change we deprecated the use of the Connector class. Don't extend from that anymore.

  • That also means you cannot use the this._cmsClient anymore.

  • Importing the standardCmsClient and iframeCmsClient is not supported anymore.

  • Use the newly introduced connectorsManager to acquire the current registered cmsClient.

If you had a connector like so

JavaScript

import Connector from 'fontoxml-connector/src/Connector.js';
import RequestData from 'fontoxml-connector/src/RequestData.js';
import standardCmsClient from 'fontoxml-connectors-standard/src/standardCmsClient.js';
 
function MyCustomConnector(cmsClient) {
	Connector.call(this, cmsClient || standardCmsClient);
}

MyCustomConnector.prototype = Object.create(Connector.prototype);
MyCustomConnector.prototype.constructor = MyCustomConnector;

MyCustomConnector.prototype.myMethod= function() {
	return this._cmsClient.isAutoSaveAllowed;
};

Change it to this

JavaScript

import connectorsManager from 'fontoxml-configuration/src/connectorsManager.js';
import RequestData from 'fontoxml-connector/src/RequestData.js';
 
function MyCustomConnector() {}

MyCustomConnector.prototype.myMethod= function() {
	return connectorsManager.getCmsClient().isAutoSaveAllowed;
};

It is not necessary to extend the default connectors to support custom CMS endpoints. Use a custom connector instead.

Grey block frames

In previous releases, block frames with their background color set to grey were actually rendered as white. This is fixed: grey block frames are now grey. If you configured these frames as grey, expecting them to be white, they will need to be changed to white. They no longer have to be set to blue-grey to make them grey. Default values are unchanged.