Scrivito JS SDK 1.26.0 Released – Featuring Support for Lazy Image Loading

Improved website performance through lazy image loading

Native lazy-loading is a modern web technology that has been implemented by all major browser vendors in the recent years. It defers loading images until they are scrolled into view and thus reduces the bandwidth needed for a page to be displayed in full.

The Scrivito.ImageTag component is now compatible with browser-level lazy loading by respecting the loading=“lazy” property.

Overhauled in-place text editor

Over the years, Scrivito’s in-place HTML editor has become a bit rusty and has accumulated several small issues so we modernized it!

Editors will notice the new link toolbar for opening the destination of an HTML link even while editing in-place. The second noticeable change is the paragraph format drop-down menu, which combines the mutually exclusive options for headings and pre-formatted text.

We preserved the overall look and feel of the tool so that the editing experience remains the same. Under the hood, however, the new editor rectifies the issues listed below. Note that the new in-place editing features are only available to users of edit.scrivito.com.

Improvements and adjustments

  • Better text accessibility and improved screen reader support. For the bold, italic, and strike-through styles, semantic markup is used now, i.e., “strong”, “em” and “s” tags instead of “b”, “i” and “strike”.
  • Removing the styles of a headline now always works, even after merging it with the next paragraph.
  • Pasting text no longer inserts “span” tags with “style” attributes.
  • Nested lists with advanced CSS-based item numbering schemes now produce the expected numbers and a valid tag hierarchy.
  • Underlined text can now be changed back to non-underlined text in all situations.

Estimating the volume of a working copy

As an editor, you can now instantly see how many pages (or images, etc.) have been changed in a working copy simply by opening the “Working Copies” sidebar. Each element on this sidebar is now equipped with such a counter, enabling you to estimate the effort associated with the corresponding working copy.

Duplicating pages via the page hierarchy

For more convenience, pages can now also be duplicated from within the hierarchy browser. This eliminates the need to open the page before it can be duplicated in a second step using the corresponding item from the main menu.

Further improvements

  • Faster display of properties groups

    The properties of a page or widget can be grouped by means of a propertiesGroups definition in the call to Scrivito.provideEditingConfig. The tabs representing such properties groups in properties views can now be rendered faster by following the React recommendation to make such lists individually identifiable using a unique key. For details, see the documentation.

  • Clearer user interface for workflow actions

    For improved ease of use, when collaborating using workflows, the editing interface now displays buttons only for those actions that are available to the editor or reviewer.

  • Support for programmatically enriching textual website content

    For enhancing HTML markup as it can be found in attributes of the html type (used by text widgets, for example), the Scrivito.resolveHtmlUrls API method has been provided. It returns the markup passed in from such attributes, but with all internal URLs (pointing to content managed by the same Scrivito CMS) transformed to fully qualified URLs, allowing you to customize, i.e. further process, the markup before rendering it. This way, text fragments can be replaced, special highlighting can be applied, etc., to optimize the usability of your content for editors or visitors.

  • Displaying page and widget properties dynamically for more consistency

    On properties views of pages (and other types of content) as well as widgets, the attributes to be displayed or made available for editing can now be determined dynamically. If, for example, selecting a specific option using an enum attribute causes other attributes to become irrelevant, they can now be hidden. For this, the list of properties (and also properties groups) to include on properties views can now be provided by means of a callback in the editing configuration concerned.

  • API for determining a custom component’s context

    Custom components can show up either on a sidebar panel or in properties dialogs. Both use individual themes, dark and light respectively. Using the new Scrivito.uiContext method, such components can adapt their styles to their respective environment.

  • Fixed bugs

    • In some cases, HTML attributes in properties dialogs unexpectedly appeared as read-only. Editing rich text in properties dialogs now always works as expected.

    • Scrivito.ContentTag now handles clicks on links properly even if dangerouslySetInnerHTML has been passed in.

More great blog posts from Andreas Viebke

  • Scrivito Enterprise CMS - Product Illustration

    Scrivito JS SDK 1.46.0 RC 1 Released

    Interface Builder improvements urlForDataItem also returns the URL of a page or binary If a page object is passed to urlForDataItem , i.e., an object with an object class for which a component exists, the URL of this page is now returned. For the Binary type, it now returns the URL of the binary....

  • Scrivito Enterprise CMS - Product Illustration

    Scrivito JS SDK 1.45.0 Released

    Interface Builder Supports Further Attribute Types for Filtering

    Interface Builder improvements Filtering data by enum, boolean, date, and number attributes The Interface Builder’s data editor now also lets you filter data by attributes of the enum , boolean , date , and number types. This makes it much more convenient and intuitive to select and present data...

  • Scrivito Enterprise CMS - Product Illustration

    Scrivito JS SDK 1.44.2 Released

    Bugfix Release An issue with Scrivito.useDataLocator has been fixed. It prevented filters with reference data attributes from being evaluated properly. We apologize for any inconvenience this issue may have caused! Thanks again for using Scrivito!

  • Scrivito Enterprise CMS - Product Illustration

    Scrivito JS SDK 1.44.1 Released

    Maintenance release This is a maintenance release with minor improvements. As always, we will keep you posted if there is anything interesting to report. Stay tuned! Thanks again for using Scrivito!

  • Scrivito Enterprise CMS - Product Illustration

    Scrivito JS SDK 1.44.0 Released

    Interface Builder improvements LinkTag supports data items The LinkTag component now supports data items as navigation targets. Passing a DataItem to the to prop causes the link to point to the details page of the item concerned. Accessing current data of a specific class The useDataScope and...

  • Scrivito Enterprise CMS - Product Illustration

    Scrivito JS SDK 1.43.0 Released

    Interface builder improvements Data attributes For the application to utilize the attributes selected by content editors, the Scrivito SDK now includes a (beta) API for representing data attributes, DataItemAttribute . A data item attribute can be accessed from a data item via...

  • Providing Data Classes with Custom Attributes

    Latest updates to edit.scrivito.com

    Defining custom attributes via the Interface Builder’s data editor The data editor now lets you add custom attributes to data classes. If, for example, you have a “Current user” data class that requires an attribute not specified in the editing configuration of this class, e.g., “email”, you can...

  • Scrivito Enterprise CMS - Product Illustration

    Scrivito JS SDK 1.42.1 Released

    Bugfixes Data integration issue > DataItem#get > no longer requires a loading context, i.e., > Scrivito.load > or > Scrivito.connect > . We apologize for any inconvenience the above issue may have caused! Thank you for using Scrivito!

  • Scrivito Enterprise CMS - Product Illustration

    Scrivito JS SDK 1.42.0 Released

    Interface Builder improvements DataScope#limit() API method The new DataScope#limit() method determines the maximum number of data items a DataScope may contain. It returns either a number indicating this limit, or undefined if no limit is set. Introducing Scrivito.currentLanguage()...

  • Introducing the ​New Data Editor

    Latest updates to edit.scrivito.com

    > > As you may have noticed, we have been continuously refining and expanding the Interface Builder. Now the time has come for a correspondingly enhanced data editor. > > The new data editor comes with an intuitive interface that provides a visual representation of a data locator as well as...