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