Current
Maintained
release-2021-11
November 2021 Release

Attention: If you skipped one or more releases, please also check the release-notes of the skipped ones.

Newsletter

Webinar

Features

Developers

System Requirements

Suggested

Name Version
Node 16
NPM 7
Postgres 13
Elasticsearch 7
Redis 6
Livingdocs Server Docker Image livingdocs/server-base:16.1
Livingdocs Editor Docker Image livingdocs/editor-base:16.1
Browser Support Edge >= 80, Firefox >= 74, Chrome >= 80, Safari >= 13.1, iOS Safari >= 13.4, Opera >= 67

Minimal

Name Version
Node 14
NPM 7
Postgres 9.6 (Deprecated Postgres 9 and 10)
Elasticsearch 6.x
Redis 5
Livingdocs Server Docker Image livingdocs/server-base:14.3
Livingdocs Editor Docker Image livingdocs/editor-base:14.3
Browser Support Edge >= 80, Firefox >= 74, Chrome >= 80, Safari >= 13.1, iOS Safari >= 13.4, Opera >= 67

Highlights

Metadata Translations for Data Records

We introduce “Metadata Translations for Data Records”. It allows to translate data records into different languages. The behavior and look is similar like for the translation of Media Library Assets.

Multilist Editor

The multilist editor lets a user view and edit multiple document lists in one screen (before you had to jump from list to list)

  • the multilist editor is accessible from the editor toolbar while editing a page
  • lists can individually be filtered (visible/invisible)
  • optionally it shows the inbox for one specific document.

image

Document Inbox

We introduce the “Document Inbox” feature to support teams with splitted responsibilities. In bigger editorial teams there are different roles (e.g. writing an article and orchestrating pages). As an example: Editor A writes an article and put it to the inbox of the front page. Editor B then can decide into which list of the front page the article should go.

Extended Text Formatting Toolbar

We added 3 new possibilities to select data for custom attributes in the text formattting toolbar

Breaking Changes 🔥

Migrate the database

It’s a simple/fast migration with no expected data losses.

# run grunt migrate to update to the newest database scheme
# migration - 167-add-document-inbox.js
#   create new table document_inbox
# migration - 168-add-started_at-index-on-import_jobs.js
#   add index to import_jobs.started_at
# migration - 169-add-li_jsonb_find_index-and-improve-li_jsonb_patch-error-handling.js
#   add new pg function for json patching
# migration - 170-add-translations-to-document_metadata-table.js
#   add column document_metadata.translations
# migration - 170-support-postgres-14.js
#   add support for postgres 14
# migration - 171-add-project-secrets.js
#   add new table project_secrets
# migration - 172-prepare-content_type_id-migration.js
#   add new pg function for content type population
livingdocs-server migrate up

Remove Deprecated Editor Config 🔥

  • 🔥 remove deprecated editor config hugo.assetHost - use server config hugo.assetHost instead
  • 🔥 remove deprecated editor config app.imageService - use server config documents.selectedImageService instead

References: Editor PR

Remove DocumentWriteModel Getters I 🔥

Some internal methods got removed. If you use any of the following methods, please rather use documentWriteModel.metadata directly.

  • 🔥 documentWriteModel.metadata.setProperties(obj) got removed. Please use documentWriteModel.metadata.setProperty for now.
  • 🔥 documentWriteModel.metadata.serialize() got removed. Please use documentWriteModel.metadata.splittedSerialize()
  • 🔥 documentWriteModel.metadata.getEntity() got removed. Please use documentWriteModel.metadata.entity

References: Server PR

Remove DocumentWriteModel Getters II 🔥

  • 🔥 documentWriteModel.document got removed. Please use documentWriteModel.documentEntity instead
  • 🔥 documentWriteModel.metadata got removed. Please use documentWriteModel.metadataModel instead
  • 🔥 documentWriteModel.revision got removed. Please use documentWriteModel.revisionEntity instead

Instead of using higher level getters like documentWriteModel.content and documentWriteModel.metadataContent, you can use low level getters instead:

  • documentModel.id
  • documentModel.documentId
  • documentModel.revisionId
  • documentModel.projectId
  • documentModel.channelId

References: Server PR

Rename channelConfig to projectConfig 🔥

  • 🔥 removed server config property channelConfigs.enabled - it has no effect anymore
  • 🔥 removed server config channelConfigs - use projectConfigs instead

References: Server PR

Button cleanup iteration 1 🔥

If you have any custom UI in your downstream that makes use of any of the following you want to read this:

classes:

  • .ld-btn-group--link, .ld-btn-group--narrow, .ld-btn-group--no-margin
  • .ld-btn--center, .ld-btn--kill-radius, .ld-btn--text-left, .ld-btn--project-setup, .ld-btn--primary-dark, .ld-btn--white, .ld-btn--border, .ld-btn--refresh, .ld-btn--dropdown, .ld-btn--bar
  • .ld-btn__bar, .ld-btn .li-icon, .li-toolbar-action-button

SCSS variabales:

  • $ld-btn--border-color, $ld-btn--border-background, $ld-btn--border-border, $ld-btn--border-hover

You are highly encouraged to refactor your markup / custom stylesheets to not use these things anymore. In order to ease that process, there is a file you can @import in your custom SCSS to get support for the mentioned classes and variables: In the SCSS file you have configured as CUSTOM_STYLE_PATH_BEFORE or CUSTOM_STYLE_PATH_AFTER add this line at the top:

@import "~styles/backwards-compatibiliy/release-2021-11.scss";

This will define the removed classes and variables within your SCSS file tree. Your Sass files will compile again and your custom UI will most probably look just fine. From there on you can refactor your code and remove the @import "~styles/backwards-compatibiliy/release-2021-11.scss"; after you are done. We will keep this file around for some time, but it will eventually get removed. If you have any questions about this, don’t hesitate to contact us.

References: Editor PR

Button cleanup iteration 2 🔥

If you have any custom UI in your downstream that makes use of any of the following you want to read this:

classes:

  • .ld-btn, .ld-btn--full, .ld-btn--large, .ld-btn--small, .ld-btn--tiny, .ld-btn--square, .ld-btn--circle, .ld-btn--circle-small, .ld-btn--primary, .ld-btn--confirm, .ld-btn__extension, .ld-btn--tab, .ld-btn--tab-blocky-on-mobile, .ld-btn--default, .ld-btn--ghost, .ld-btn--link, .ld-btn--negative, .ld-btn--link-negative, .ld-btn--icon, .ld-btn[disabled], .ld-btn--disabled, .ld-btn--in-progress, .ld-btn--loading, .ld-btn--loading-auto, .d-btn--numberdot, .ld-btn--github, .ld-btn--google, .ld-btn--facebook, .ld-btn--pagination, .ld-btn--overlay, .ld-btn--icon-only-small, .ld-btn--icon-only-large, .ld-btn--clean, .ld-modal__footer, .ld-btn-file

SCSS variables:

  • $ld-btn-radius, $ld-btn-vertical-padding, $ld-btn-horizontal-padding, $ld-btn-padding, $ld-btn-padding--tiny, $ld-btn-padding--small, $ld-btn-padding--large, $ld-btn--primary-color, $ld-btn--primary-background, $ld-btn--primary-border, $ld-btn--primary-hover, $ld-btn--negative-color, $ld-btn--negative-background, $ld-btn--negative-border, $ld-btn--negative-hover, $ld-btn--link-color, $ld-btn--link-background, $ld-btn--link-hover, $ld-btn--default-color, $ld-btn--default-background, $ld-btn--default-border, $ld-btn--default-hover

No longer existing button types:

  • Default (li-button is the default button), Tab, Square, Confirm, Tab Blocky on Mobile, Kill Radius, Text Left, Project Setup, Primary Dark, White, Border, Dropdown

You are highly encouraged to refactor your markup / custom stylesheets to not use these things anymore. In order to ease that process, there is a file you can @import in your custom SCSS to get support for the mentioned classes and variables: In the SCSS file you have configured as CUSTOM_STYLE_PATH_BEFORE or CUSTOM_STYLE_PATH_AFTER add this line at the top:

@import "~styles/backwards-compatibiliy/release-2021-11.scss";

This will define the removed classes and variables within your SCSS file tree. Your Sass files will compile again and your custom UI will most probably look just fine. From there on you can refactor your code and remove the @import "~styles/backwards-compatibiliy/release-2021-11.scss"; after you are done. We will keep this file around for some time, but it will eventually get removed. If you have any questions about this, don’t hesitate to contact us.

References: Editor PR

Deprecations

Formatting Toolbar - Custom Elements

customElements[].placeholder are deprecated. Please replace them with with customElements[].attributes[]

// deprecated
customElements: [{
      label: 'icon',
      handle: 'customIcon',
      tagName: 'span',
      icon: 'format-color-highlight',
      attributes: [
        {name: 'class', value: 'custom-icon'}
      ],
      // deprecated: the placeholder attribute which will be filled with the inserted value
      placeholder: {name: 'data-input'}
}]

// new approach with attributes
customElements: [{
      label: 'icon',
      handle: 'customIcon',
      tagName: 'span',
      icon: 'format-color-highlight',
      attributes: [
        {name: 'class', value: 'custom-icon'},
        // add li-text attribute
        {
          handle: 'input',
          type: 'li-text',
          name: 'data-input'
        }
      ]
}]

References:

Other Changes

Features

Design

Improvements

Bugfixes

Patches

Livingdocs Server Patches

  • v157.2.9: return revision also in case metadata_id is null

Livingdocs Editor Patches

  • v74.4.32: fix error in defaultSelectService and defaultMultiSelectService


    Icon Legend

    • Breaking changes: 🔥
    • Feature: 🎁
    • Bugfix: 🪲
    • Chore: 🔧