Changes For Administrators

New Functionality

Time Template Calendar Month View

The Time Template Calendar now has a Month View

Automatic Email Attachments

Add the ability to have attachments on Automatic Emails by being able to reference them from the Email body.

Custom Search Page

Add support for int/long/double/string filter widgets in custom search page.

Upgrade custom search pages to support form-based custom search widgets that appear in a panel down the left rather than a single-line at the top.

Add support for custom search page search term that checks for a range of numeric values.

Text search boxes in custom search pages can now use "contains" and "matches" as well as "equals" checks

Custom search boxes can now have user-defined labels

Calpendo Lite

Apply limits to number of custom properties when using licence of type Lite.

Apply limits to Rules when licence of type Lite.

Stop Calpendo Lite from creating advanced Rules.

TemplateGroup should now stop you creating once three have been created.

Conditions

Add support for regular expression matching in conditions.

Add support for is-ancester-of, is-not-ancestor-of, is-descendant-of and is-not-descendant-of condition relations that can apply to biskits configured as a hierarchy.

Add support for non-Booking formulaic properties in rule conditions.

New User Status Lurker

Add new "lurker" user status who can't log in, but can get emails. Other users who can't log in can no longer receive emails

Dynamic Notes and Waterfalls

Add support for dynamic notes and waterfall. This lets a user easily add attach a text note to something, and see a waterfall of such notes. This is set up in the Layout Editor.

User Names

Add support for login names with more exotic characters, such as @!:/(). Previously, only alphanumeric names were allowed.

Resource Manager Group

Added a new property to Resource called Resource.managerUserGroup to allow an administrator to specify a group of users that can make bookings for any project on that resource and can approve/deny/cancel bookings on that resource once the appropriate permissions have been set up. This allows a group of people to very quickly be set up as administrators for a number of resources.

Email Address Validation

Add validation of any string property that contains an email address to ensure the email address is legal.

Set Automatic Email Reply Address

Add support for setting automatic email reply-to address in Global Preferences.

Recording of Schema Changes

Search for biskits of type DatabaseUpgrade.

This records both updates done via the bakery in the regular way with Update DB Schema, but also any SQL executed by using the custom SQL tool that you see in the bakery when logging in as root.

This should correctly record queries that work properly and queries that fail, along with the mysql error.

Services

Added support for Services.

Storing Images to be Accessed by CSS

Create an instance of PublicResource, with an attachment, and make sure user nobody has read and exists on both the PublicResource and the Attachment.

Then, the URL slug "/downloads?type=public&name=FOO" will yield the attachment, where you must replace FOO with the name given to the public resource (which must be unique)

E.g. "https://thing.calpendo.com/downloads/type=public&name=FOO"

Resource Groups

Resources can now be put into Groups in the Resource Editor in addition to the Types And Groups Editor.

Groups

Resources, Users and Projects can be added and removed from Groups en mass using the Collection Editor.

 

 

Changes in Functionality

New Banned Keywords

Added "procedure"  to the list of banned keywords for property names

Import

Add support for the import of Null values.

Add support for importing a date/time that is a number of seconds since 1970.

Add support for importing id properties.

Generate an error on importing an unrecognised BitSet value.

Add support for import page to be able to choose which lines are imported.

Property names in the heading are now matched case insensitive.

Names for a MappedInt and MappedString are now matched case insensitive.

On updating data, allow key properties to be modified by adding a second column for the same property, and defining that column to be "normal" rather than a key.

Allow the Biskit type to be narrowed on each import line. Eg, if you import a mixture of different booking subtypes or bookings with daily repeat and weekly repeats.

Add support for warnings on import as well as errors.

Provide link in each column to show the problems from that column.

Provide link to re-display import problems even after it has been dismissed.

Improve ability for server to send errors to user during import.

Boolean properties now accept custom text for true/false e.g. yes/no.

Booking import checks that the biskit type matches what the resource wants.

Make import treat empty email address as meaning null email address.

Set column to not be ignored when column path manually set.

Click in an Import error pop-up now auto-scrolls preview to that item

Import now gives an error if you have too many columns for the same path

Give better error message when you try to import a binary file instead of CSV

Add support for import to hide some rows/columns from import preview table

Import now shows spreadsheet-style column names as well as column numbers

Imported files now accept column prefixes of "KEY:" and "IGNORE:".

The import now reports the number of lines imported.

Improved error message appears when a user logs out and back in, and then tries to import a file they had uploaded before they logged out.

Optimisation

Search would sometimes do more work than necessary.

Bakery

Prevent a user from setting parent of a BiskitDef to itself.

ResourceType and ProjectType may now have custom properties.

Custom formulaic properties are now syntax checked for balanced () brackets

Set the name of the default id column in bakery to include the biskitType

Allow formulae to reference primary keys using pseudo id, eg as [foo.id]

Add support for automatic recording on a biskit of who created it and was the last to update it. Create a user biskit property on the target biskit type, mark it as automated, and set as the creator/updator property.

Add support for string properties that contain ab RGB colour

Add new UserGroup.self property

Authorisation Methods

Make external authorisation methods show before non-external on the login page.

Database Dump

Database dump file names include date, time, version,system name and server hostname (as specified in the global preferences emailed base URL)

Layout Editor

Add Layout Editor to all admin menus that don't already have it.

Total Time Booked Rule

Rule message to include time allowed as well as time used.

Add support for negative quota to mean no limit in Total Time Booked Rule

Number of Bookings Rule

Add support for negative quota to mean no limit in Number of Bookings Rule

Global Preferences

Removed the global preferences property "send old search usage home". Support for old-style searches was removed quite some time ago, so this preferences setting no longer serves any purpose.