Scrivito JS 1.7.0 Released – Featuring Protected Content


Authentication via identity providers & restrictable pages

For more flexibility and to facilitate collaboration even better, Scrivito now allows editors and website visitors to log in via identity providers supporting OpenID Connect, e.g. Google.

You can set up the providers you wish to use in the CMS’s site settings on the Scrivito dashboard. In the case where these configuration options are not provided in your dashboard, our support team will be happy to activate them for you.

With visitor authentication, editors can specify for each page (via its properties) whether it should be publicly visible or restricted to logged-in visitors. Additionally, there’s an API available that enables you to implement the corresponding visitor log-in functionality in your Scrivito app. For editor authentication, no implementation is required.

To get you started, we’ve added some documentation about visitor and editor authentication to our Admin’s Guide.

Editing dates in place

Some kinds of content like blogposts or event pages typically include a date which often also serves to display a chronological overview of them to the visitor of your website.

Scrivito lets you set date values on properties views, but now you can also offer editors to specify dates much more conveniently in place. See Scrivito.ContentTag for how to make date attributes editable directly on the pages.

Increased content quality through validation

The content on a website often needs to meet some requirements. Many of them can be covered by style guides or loose agreements regarding layout, image content, etc. Others call for a supportive technical instrument to ensure that they are met.

Scrivito now lets you define validations to help editors comply with authoring guidelines and policies. A working copy can only be published if all of its content is valid, i.e. no validation errors occur.

Validation can be set up for CMS objects, e.g. pages, as a whole or for individual attributes of objects and widgets. If a validation fails, Scrivito’s editing interface notifies the editor by highlighting the affected piece of content on the page or in properties dialogs. Additionally, when working on a specific page, the validation errors found on this page are listed on the sidebar. Pages with validation errors can be found via the changes list, so opening them to fix the errors is easiest.

For an overview, typical use cases and example code, see Overview of Scrivito’s Content Validation. The API documentation on Scrivito.provideEditingConfig provides further details.

Progressive image loading

Starting at version 1.6.0, Scrivito.BackgroundImageTag components already load background images progressively. Now, Scrivito.ImageTag components also load images progressively if they haven’t been transformed. This lets the visitor initially see at least a low-resolution version of the image – instead of no image at all.

Once loading and decoding the high-resolution image has finished, it replaces the smaller low-resolution version. With speedy connections, the visitor will hardly notice a difference.

Search API supports value-based boosting

When searching, users expect to find the most relevant hits at the top of the search results list. The relevance of a hit can be adjusted with Scrivito by means of boosting.

Scrivito supports attribute-based and now also value-based boosting. Attribute-based boosting allows you to adjust the relevance of hits depending on the attributes in which the search term was found (e.g. the title). Using our new value-based boosting, you can now further fine tune the ranking based on a subquery. For instance, when searching for pages tagged with “laptop”, you could boost the rank of pages whose type (object class) is Product. Another example would be to lower the rank of PDF files after a full-text search so that regular pages show up first on the results page.

For details, see the API documentation on the boost subquery.

Ordering search results supports more than one criterion

Scrivito’s search API lets you sort search results using the order method. This method now supports up to four additional sort criteria next to the primary criterion. For example, you can now sort the hits by their object class (Page or Blogpost, etc.) as the first criterion, and, within each object class, by their title as the second criterion.

Checking the presence of the UI

There’s a new API method, Scrivito.isEditorLoggedIn. It lets you check whether your Scrivito application is running in the UI in order to make it behave differently if this is the case. You could, for example prevent Google Analytics from detecting page hits if the page has not been opened by a visitor but by an editor.

Determining a widget's container

We’ve been asked several times to provide a means to determine the direct parent of a widget - here it is: Widget#container(). This instance method returns the widget or CMS object containing the widget in question.

Chief editors must be owners to edit in working copies

Chief editors are able to see all working copies to which they aren’t assigned as an owner on the sidebar in the “Other working copies” section. Previously, after selecting such a working copy, chief editors could start editing right away. This has been changed to prevent accidental edits, meaning that chief editors now first need to become an owner of a working copy before they can edit its content. They can, of course, assign themselves via the working copy settings.

If a single-page application (SPA) delivering both Scrivito-based and non-Scrivito-based content navigates from a non-Scrivito page back to a Scrivito page, the NotFoundErrorPage is not displayed anymore, not even for a short time.

More great blog posts from Andreas Viebke

  • 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

    > > 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...

  • Scrivito Enterprise CMS - Product Illustration

    Scrivito JS SDK 1.41.0 Released

    Interface Builder improvements Accessing a data scope from the current data It is now possible to access a DataScope from the current data using the new Scrivito.useData hook (which supersedes the Scrivito.useDataItem hook). The new hook always returns a DataScope . In order to check whether this...

  • Editing Interface Alignment with Dartagnan

    For an improved overall user experience, we’ve aligned the user interface design of Scrivito with that of our email builder Dartagnan. We wanted to create a consistent look and feel for our customers working with these cloud products from JustRelate. The adjustments we made are geared towards...

  • Scrivito Enterprise CMS - Product Illustration

    Scrivito JS SDK 1.40.0 Released

    Improvements Intermediately rendered components during loading time Scrivito.provideComponent now lets you give proper feedback to the visitor in cases where the actual component that is provided requires some time to load and render itself. This usually short time gap can now be bridged by...

  • Scrivito Enterprise CMS - Product Illustration

    Scrivito JS SDK 1.39.0 Released

    Improvements Enhanced data classes The Scrivito SDK now offers all attributes of a data class as placeholders for its instances, unless configured otherwise via the editing configuration. > As a developer using > Scrivito.provideDataClass > to load external data, you can now also return IDs of...

  • Bienvenue sur Scrivito !

    Latest updates to

    Bienvenue sur Scrivito ! For all you French-speaking users, the Scrivito editing interface is now also available in your language. In addition to dialogs and buttons in French, input fields for page and widget properties have support for locale-specific calendar labels and French number...

  • Scrivito Enterprise CMS - Product Illustration

    Scrivito JS SDK 1.38.0 Released

    Improvements Accessing the current user’s picture The Scrivito.currentEditor API now seamlessly integrates with IAM, allowing developers to access the picture URL associated with the current editor’s IAM profile. Easier attribute type migration There are situations in which a developer needs to...

  • Creating and Linking a Details Page

    Latest updates to

    > After introducing details pages for data items in version 1.36.0 of the Scrivito SDK, the editing interface now offers you to create such a page for a given data class directly from within a data item. If, for example, you have a card widget in your data list widget, and this card widget has a...

  • Scrivito Enterprise CMS - Product Illustration

    Scrivito JS SDK 1.37.0 Released

    Improvements Updating data items using custom logic By defining the update callback of Scrivito.provideDataItem , you can now smoothly update data items using your own logic. This gives you greater control and flexibility in managing your data within your Scrivito app. Prerendering fails early...