Scrivito JS 1.7.0 Released – Featuring Protected Content

Improvements

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

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