Naviga Writer 6.0.0
Compatibility
- PluginBundle
>=11.0.0
- IMSG
>=16.6.1
- MOCK-IMSG
>=0.4.1
- Editor Service
>=5.0.0
Released 2019-10-02
Release overview
Description
6.0.0
contains improved performance and the biggest change to UI/UX yet. It also adds a lot of new functionality and features like personal article template support,
special characters tool, generic properties for content objects and better NCS content integration.
This is a large release and upgrade will require careful configuration updates and testing. Some plugins where both extracted to their own repository and updated to work better with this release.
Breaking Changes
- To enable userTemplate, there are quite a few steps to take in order to get everything configured, see Enable and Configure Personal Template below.
- Old and third party plugins may look different because of the extensive work on the Writer’s UI/UX
High Impact
- IMPORTANT EditorService
5.0.0
has stricter validation concerning theitemMetaExtProperty: "imext:type"
. What this means is that all existing articles will need the value<itemMetaExtProperty type="imext:type" value="x-im/article"/>
in their XML. Any article that lacks this information will fail to open when using EditorService5.0.0
.
Data migration might be needed to ensure that ALL existing articles contain<itemMetaExtProperty type="imext:type" value="x-im/article"/>
- All text styles plugins have been removed from the PluginBundle and migrated to one single plugin called im-textstyles. See the section Migrating Text Styles below.
External Dependencies
- IMSG version
16.6.1
- EditorService version
5.0.0
enables the use of personal template and extended article publishing statuses - OpenContent version
2.4.1
- With
IMSG
version16.6.1
and properCORS
configuration for the relevant Writer environment
- With
Updated plugins with Writer 6.0.0 as dependency
- im-ximimage version
2.0.0
- im-youtubeembed version
2.0.0
- im-textstyles version
1.0.0
- im-contentpart version
2.0.0
- im-htmlembed version
2.0.0
- im-iframely version
2.0.0
- im-link version
3.0.0
- im-mapembed version
3.0.0
- im-pdf version
2.0.0
- im-socialembed version
2.0.0
- im-teaser version
2.0.0
- im-imagegallery version
2.0.0
- im-concept version
1.0.0
- im-publishflow version
2.0.0
- im-archivesearch version
2.0.0
- im-articlename version
2.1.0
Features
New UI/UX
Everything is now 232% more đź‘Ś.
Removed Proxy Cluster Dependency
Since OpenContent version 2.4.1
has Naviga ID support, the Writer no longer needs to use the proxy cluster for this communication.
To enable this direct communication, OpenContent needs to use IMSG version ^16.6.1
with proper CORS configuration. Plugins that earlier
were configured to use proxy cluster can then be re-configured to call Open Content directly. For configuration examples, see New Configuration: Content Host below.
OpenContent’s IMSG CORS Configuration
The OpenContent’s IMSG has an environment variable CORS_ALLOWED_ORIGINS
which should be set to a comma separated string of Writer urls
that are allowed to make requests directly to the OpenContent.
Example: CORS_ALLOWED_ORIGINS=http://writer.local.infomaker.io:10000,https://writer.dev.writer.infomaker.io
Important to note is the full url (including port, if ever applicable) and not just the hostname.
Extended Publishing Statuses and Access Controls
There is no longer a hard restriction on which publishing statuses can be defined in the im-publishflow
plugin configuration. It is now also possible
to add restrictions to the workflow using Naviga ID permissions. See Configuring Extended Publishing Statuses for examples.
Generic Properties
Enables the possibility to add simple metadata to content objects in the Writer content area (e.g images, pdfs, teaser, and content parts). The properties are limited to a list of predefined options, there is no free text support.
Personal Template Support
This release introduces the possibility to create and modify personalized templates to use when creating new stories. So far each user can have one personalized template, and this template can not be access by any other user than the original creator.
Special Characters Panel
Adds a new smoothly moving panel which contains a big list of special characters that can be inserted into the
content. Accessible using the content menu or pressing cmd+shift+i
.
Contentpart Supports Image
Contentpart plugin version 2.0.0
can now contain one image. See Plugin Documentation for more information.
Writer Plugin Bundle version 11.0.0
In our efforts to separate the plugins into their own repositories, we have removed the following plugins from the plugin bundle in this release. They will no longer work if used with their 11.0.0 location.
Plugins migrated from plugin bundle in version 11.0.0
- se.infomaker.ximconcept moved to im-concept version
1.0.0
- se.infomaker.textmanipulation moved to im-textmanipulation version
1.0.0
- se.infomaker.marker moved to im-marker version
1.0.0
- se.infomaker.branding moved to im-branding version
1.0.0
- se.infomaker.iframely moved to im-iframely version
1.0.0
- se.infomaker.htmlembed moved to im-htmlembed version
1.0.0
- se.infomaker.youtubeembed moved to im-youtubeembed version
1.0.0
- se.infomaker.table moved to im-table version
1.0.0
These versions are the same as the versions in Plugin Bundle 10.0.0
Text Style Plugins Removed
The following text style plugins have been removed, and configuration when used in Writer version 6.0.0
needs to be updated.
See Migrating Text Styles below.
Affected text style plugins
- se.infomaker.blockquote
- se.infomaker.dateline
- se.infomaker.drophead
- se.infomaker.factbody
- se.infomaker.headline
- se.infomaker.madmansrow
- se.infomaker.pagedateline
- se.infomaker.preamble
- se.infomaker.preleadin
- se.infomaker.subheadline
Migrating Text Styles
The following text styles have been removed and replaced by a single plugin im-textstyles
. Use this plugin and its
configuration to specify which text styles should be enabled in the Writer.
Previous Configuration Example
Configuration needed for each enabled text style.
{
"id": "se.infomaker.headline",
"name": "headline",
"url": "https://plugins.writer.infomaker.io/releases/10.0.0/im-textstyle-headline.js",
"style": "https://plugins.writer.infomaker.io/releases/10.0.0/im-textstyle-headline.css",
"enabled": true,
"mandatory": false,
"shortcut": {
"default": "ctrl+alt+1",
"mac": "cmd+alt+1"
}
},
{
"id": "se.infomaker.blockquote",
"name": "blockquote",
"url": "https://plugins.writer.infomaker.io/releases/10.0.0/im-textstyle-blockquote.js",
"style": "https://plugins.writer.infomaker.io/releases/10.0.0/im-textstyle-blockquote.css",
"enabled": true,
"mandatory": false
}
New Configuration Example
One single configuration needed.
{
"id": "io.infomaker.textstyles",
"name": "im-textstyles",
"url": "https://plugins.writer.infomaker.io/v1/infomaker/im-textstyles/1.0.0/index.js",
"style": "https://plugins.writer.infomaker.io/v1/infomaker/im-textstyles/1.0.0/style.css",
"enabled": true,
"mandatory": false,
"data": {
"styles": {
"headline": {
"shortcut": {
"default": "ctrl+alt+1",
"mac": "cmd+alt+1"
}
},
"subheadline": {},
"subheadline2": {},
"subheadline3": {},
"blockquote": {},
"dateline": {},
"drophead": {},
"fact-body": {},
"pagedateline": {},
"preamble": {},
"preleadin": {},
"madmansrow": {}
}
}
}
Enable and Configure Personal Template
- Add
"enableUserTemplate": true
to writer config file. (this requires all of the steps outlined below to be in place) - Ensure existing template and ALL EXISTING ARTICLES in Open Content has the
<itemMetaExtProperty type="imext:type" value="x-im/article"/>
set, Writer/EditorService wont load articles without this property- If this value is missing, all existing articles will need to have it added
- Open Content needs new configuration (ContentType, indexfields, extractors and properties) for the new Template type, from the configuration file: writer-article-template-configuration.yaml
- Requires import group rules for Template in Open Content
- Contact someone who has experience setting up Naviga ID group rules
- Requires Open Content IMSG version
^16.6.1
and configured to addCORS
headers for Writer domain (full URL) on response- IMSG CORS configuration example:
CORS_ALLOWED_ORIGINS=http://writer.local.infomaker.io,https://writer.dev.writer.infomaker.io
- IMSG CORS configuration example:
- Requires EditorService
5.0.0
contentHost
configuration needs to be added to Writer client configuration- Requires im-articlename version
2.1.0
- Requires a manually created global template in Open Content.
- i.e an article newsitem with
<itemMetaExtProperty type="imext:type" value="x-im/article-template"/>
value. This template needs to be shared with Organisation
- i.e an article newsitem with
New Configuration
Content Host
This release adds support for direct communication to Open Content without having to set up a proxy.
Writer client config needs a new contentHost
property in the root element with specifics on where to find the OpenContent API.
"contentHost": {
"protocol": "https://",
"credentials": "include",
"hostName": "xlibris.editorial.xx.xx.infomaker.io",
"port": "7777",
"healthPath": "/opencontent/health",
"queryPath": "/opencontent/search",
"objectPath": "/opencontent/objects",
"sortingsPath": "/opencontent/sortings"
},
Direct OpenContent Communication for Plugins
Any plugin that uses the proxy-cluster can now update its configuration to instead use direct communication with OpenContent.
Example configuration for im-archivesearch
plugin using direct communication:
"data": {
"defaultSorting": "Updated",
"archiveHosts": [
{
"name": "Editorial OC",
"host": {
"protocol": "https://",
"credentials": "include",
"hostName": "xlibris.editorial.xx.xx.infomaker.io",
"port": "7777",
"healthPath": "/opencontent/health",
"queryPath": "/opencontent/search",
"objectPath": "/opencontent/objects",
"sortingsPath": "/opencontent/sortings"
},
"standardQuery": {
"contenttype": "Image"
},
"resultsMapping": {
"name": "WriterFileName",
"thumbnail": "thumbnail",
"url": "preview",
"credit": "WriterAuthors",
"caption": "WriterImageCaption",
"description": "WriterImageCaption",
"source": "primary",
"photoDate": "updated",
"imageInstructions": "ImageInstructions"
},
"type": "editorial-opencontent"
}
]
}
Generic Properties Configuration
The Generic Properties introduced in this version uses a new propertiesConfig
property in the Writer client config.
"propertiesConfig"
example
"propertiesConfig": {
"showByDefault": ["im-contentpart"],
"properties": [
{
"name": "alignment",
"title": "Alignment",
"plugins": [
"im-contentpart",
"im-ximimage"
],
"values": [
{
"title": "Left",
"value": "left"
},
{
"title": "Right",
"value": "right"
},
{
"title": "Center",
"value": "center"
}
]
},
{
"name": "effect",
"title": "Want big text?",
"plugins": [
"im-teaser",
"im-table"
],
"values": [
{
"title": "Yes box!",
"value": "yes"
},
{
"title": "No way!",
"value": "no"
}
]
}
]
}
Configuring Extended Publishing Statuses
This is a super simple im-publishflow
plugin configuration for a draft->review->publish
workflow where only administrators are allowed to go from review
to publish
.
"data": {
"workflow": {
"draft": {
"pubStatus": "imext:draft",
"title": "Draft",
"description": "You are working on a draft for this article",
"saveActionLabel": "Save",
"icon": "fa-pencil",
"color": "#828282",
"actions": [
{
"pubStatus": "imext:draft"
}
],
"transitions": [
{
"nextState": "review",
"title": "Legal review"
}
]
},
"review": {
"pubStatus": "imext:review",
"title": "Legal review",
"description": "Article is waiting for approval",
"saveActionLabel": "Save",
"icon": "fa-hourglass-o",
"color": "#ff9900",
"actions": [
{
"pubStatus": "imext:review"
}
],
"transitions": [
{
"nextState": "draft",
"title": "Convert to draft"
},
{
"nextState": "publish",
"title": "Publish Now",
"preCondition": {
"hasPublishedVersion": false,
"permissions": [
"writer:group/admin",
"dashboard:group/admin"
]
}
}
]
},
"publish": {
"pubStatus": "stat:usable",
"title": "The article has been published",
"description": "Changes are made to published article",
"saveActionLabel": "Update",
"icon": "fa-upload",
"color": "#288dc0",
"permissions": [
"writer:group/admin",
"dashboard:group/admin"
],
"transitions": [
{
"nextState": "draft",
"title": "Save new draft"
}
],
"actions": [
{
"pubStart": "set",
"pubStop": "clear",
"pubStatus": "stat:usable",
"hasPublishedVersion": true
}
]
}
}
}
The preCondition.permissions
in this block only allows users in the admin groups to publish an article.
{
"nextState": "publish",
"title": "Publish Now",
"preCondition": {
"hasPublishedVersion": false,
"permissions": [
"writer:group/admin",
"dashboard:group/admin"
]
}
}
This is a custom publishing status which is supported with the release of EditorService 5.0.0
.
...
"review": {
"pubStatus": "imext:review"
...
Changes in this release
New Feature
- WRIT-956 - Add support for article templates
- WRIT-944 - Writer API should provide methods to verify if a user has a specific role or permission
- WRIT-941 - Automated documentation and Api reference should be built to new Gitbook documentation site
- WRIT-934 - Move ImageDisplay into Writer
- WRIT-932 - Added UI Component UIChip
- WRIT-921 - New select box as UIComponent
Improvement
- WRIT-961 - Add ability to insert special characters into text
- WRIT-960 - Add new Sliding Panel Component
- WRIT-959 - Add support for Generic Properties
- WRIT-951 - Replace font Lato with Roboto
- WRIT-950 - Upgrade dependencies and config to solve vulnerability audit issues
- WRIT-949 - Add possibility to enable/disable popover button and icon independently
- WRIT-946 - Writer should add “(copy)” information in title when article is copied
- WRIT-945 - Writer configuration tool should only be accessible by admin users
- WRIT-942 - Update Writer logo
- WRIT-939 - Implement new design to dropzones
- WRIT-938 - New UI for ContextMenu
- WRIT-933 - Update Content Menu with new design
- WRIT-931 - Update UIButton with new design
- WRIT-890 - Add base text style css to Writer
Bug
- WRIT-947 - Writer should not crash when large polygons are used (many points or high resolution)
- WRIT-940 - ContentMenu change position on scroll
- WRIT-923 - Dropdown options doesn’t have labels specified in Firefox
Upgrade notes
WRIT-956 Add support for article templates
How to enable and configure use of templates (x-im/article-template)
- Add
"enableUserTemplate": true
to writer config file. (this requires all of the steps outlined below to be in place). - Ensure existing article-template and ALL EXISTING ARTICLES in Open Content has the
<itemMetaExtProperty type="imext:type" value="x-im/article"/>
set, Writer/EditorService wont load articles without this property - Open Content needs new configuration (ContentType, indexfields, extractors and properties) for the new Template type, from the new config file.
- Requires import group rules for Template in Open Content
- Requires Open Content IMSG to be
>=16.6.1
and configured to addCORS
headers for Writer domain (full URL) on response - Requires EditorService
5.0.0
- A new property:
contentHost
with configuration needs to be added to writer-config (see readme file or Release overview) - Requires version
2.1.0
of Article name plugin - Requires manually created or imported global template(s) in Open Content
WRIT-944 Writer API should provide methods to verify if a user has a specific role or permission
Verify user role or permissions
Writer now provides a set of methods to verify the permissions or role of current authenticated user. For more details see documentation
WRIT-941 Automated documentation and Api reference should be built to new Gitbook documentation site
New documentation site
Documentation for each new release will from here on be built to Writer gitbook page
WRIT-951 Replace font Lato with Roboto
Font family Lato have been removed. Don’t implicit say what font-family that will be used.
If you have to use serif font instead of the standard sans-serif font provided you should use CSS variable –dw-font-family-serif.