CollectionSpace UI Rewrite: Milestone 4 Update

August 2, 2017

Ray Lee of UC Berkeley’s Research IT department is the lead for the CollectionSpace UI rewrite project, code-named “Drydock.” The following piece describes progress in improving record types, template selection, and custom validation functionality in CollectionSpace. This work is funded by a grant from the Andrew W. Mellon Foundation to LYRASIS, CollectionSpace’s institutional home.

We’ve passed Milestone 4 (the first year mark) of the effort to rewrite the CollectionSpace user interface for version 5.0. Here are some highlights of the progress we’ve made since my last update in April.

Record Types

Thanks to contributions from Yousuf Nejati, many record types have been fully implemented in the new UI, including Loan In, Loan Out, Acquisition, Conservation, Exhibition, and Storage Location records. These are accessible from the Create New page, which now allows you to create any kind of record with a single click.


Each CollectionSpace record type may be configured with multiple templates, each of which can display a subset of the fields on the record, with a different layout. This enables users to view and edit records in a way that’s optimal for the specific task they’re doing. In the current UI, a template is selectable only on the Create New page, before creating a record. Once the new record is saved, it always re-opens with the default template. In the new UI, this has changed: The template selector is now located on the record itself, so users can change the template even after opening existing records. The choice is remembered, so records will continue to open with the selected template until another selection is made.

Field Validation

The CollectionSpace UI currently validates input in two ways: Fields that are configured to be required are validated to have content, and fields that are configured with a data type are validated to have values appropriate for that type. This continues to be true in 5.0, but implementers are also able to add custom validation to each field. This is done by supplying a JavaScript function that complies with a validation API. Many real-world validation scenarios are supported, such as:

  • Validating a field against another field; for example, Latitude must have a value if Longitude has a value, or End Date must be after Start Date.
  • Validating a field based on its position; for example, the Dimension of the first Measurement must be “length”, and the Dimension of the second Measurement must be “width”.
  • Asynchronous validation; for example, checking a value by making an HTTP request to a REST API.

Coming Up

In the next three months we'll be working on the Administration screens, and we'll start to implement some of the community of practice profiles for different kinds of collections.

As usual, you can try these features out as they're implemented, by visiting on our demo site: Please send comments and questions to the CollectionSpace Talk list,

This update was originally posted to the CollectionSpace Wiki's blogstream.