Upgrade from 6.6 to 6.7

The 6.7.0 platform release introduced no new features needing instructions for upgrading. However, a couple of experiments have been integrated.

Obsolete experiments

A number of experiments have been integrated. Any mentions of this in the configuration files can be removed.

Experimental features are features integrated in a way that allows it to be deactivated without needing a new platform release. After a while, they are turned on be default before being integrated.

  1. Remove any configuration setting the enable-experiment/altgr-support option.

  2. Remove any configuration setting the enable-experiment/protect-editor-focus option.

  3. Remove any configuration setting the enable-experiment/use-operation-error-modal option

Upgrading to using titleQuery

The title of an item in the structure view can now be configured using an XPath query. This introduces a behavioral change regarding using label and titleChildSelectorOrNodespecor titleContainerChildSelectorOrNodeSpec: labeltakes precedence over both. It is advised to refactor usages of label and titleChildSelectorOrNodespec or titleContainerChildSelectorOrNodeSpec to using titleQuery since it is simpler to use and more powerful.

  1. Find all occurrences oftitleChildSelectorOrNodespec andtitleContainerChildSelectorOrNodeSpec in structure view related configuration inconfigureSxModule files.

  2. Refactor them from a nodespec filter to an XPath query and rename them to titleQuery.

    The titleChildSelectorOrNodespec matched a single element defining the title to shown as a title for a structure view item. The titleContainerChildSelectorOrNodeSpecoptionally added an extra level for that child, if the element which should be used as a title was actually a grandchild.

    Therefore, the titleQuery should look like ./<titleContainerChildSelectorOrNodeSpec, if any>/<titleChildSelectorOrNodespec>.

    • The XPath version of the nodespec title is ./title

    • The XPath version of the fluent selector matchNodeName('title').requireAttribute('isReallyATitle')is ./title[@isReallyATitle]

    • The XPath querying version of the XPath filter self::title[@isReallyATitle] is ./title[@isReallyATitle]

  3. Integrate the label part into the titleQuery (if any).

    The XPath if/then/else construct can be used for this:

    if (./title) then string(./title) else "No title present"

  4. Test the new changes by loading documents with and without titles.

is used for configuring titles in a structure view.

JavaScript

// Before:
configureAsStructureViewItem(sxModule, 'section', {
	label: 'No title',
	titleChildSelectorOrNodespec: 'title',
	titleContainerChildSelectorOrNodeSpec: 'titles'
});
// After:
configureAsStructureViewItem(sxModule, 'section', {
	titleQuery: 'if (./titles/title) then ./titles/title[1] else "No title"'
});