Booker25 Release notes

Version 3.92
Released May 14, 2018

Minor bug fixes

  • Service Reservation DateTime picker Fixed a regression bug introduced in version 3.90 where the DateTime fields in Service Reservations would not display the DateTime picker, effectively making them impossible to fill
  • Service Reservation DateTime picker (2) Users can now manually type in the Service Reservation DateTime field if they do not want to use the DateTime picker.
  • Dependent lookup Fixed a bug where parent lookups of dependent lookup fields would display two input fields the first time the Reservation form was opened
  • Settings page Updated queries on the Settings page to more efficiently query on large orgs. This should make the Settings page load faster on orgs with a large number of Reservations
Version 3.91
Released May 1, 2018

Minor bug fixes

  • Reservation form Resource lookup filter The filter now no longer shows virtual resources when the setting ‘Show Only Rentable Resources’ is enabled
  • Reservation Types Reservation Types visible on the reservation form are no longer converted to lowercase characters
  • Reservation search Fixed a bug where clicking on a reservation in the reservation search results list did not navigate to that reservation on the calendar. If a reservation is clicked whose resource is not currently visible on the calendar, an error message is displayed
  • Unshared reservations Displaying unshared reservations as grey boxes on the calendar can now be enabled or disabled through a setting on the Settings page. This setting is disabled by default and it is recommended to not turn it on if not required
  • Calendar loading When loading Availabilities into the calendar and Salesforce limits are hit, the number of Availabilities being retrieved in one batch will be lowered, instead of failing to load
  • Server timeouts Server timeouts are now considered limit errors by the calendar when loading, and will trigger a batch size reduction instead of an error
  • Resource filter bug fix The checkbox next to the search box will now check/uncheck all resources in the tree when no search term is entered. Fixes regression introduced in version 3.90
  • Resource filter bug fix (2) The Resource Type filters were not applying to the calendar for users that used the resource filter before patch 3.89
Version 3.90
Released April 24, 2018

Minor usability upgrades and bug fixes

  • Advanced Resource lookup and filtering The ‘Advanced Resource lookup and filtering’ settings now default to true and will be set to true for existing orgs
  • Service reservations DateTime fields that are included in the Service Reservation field set open a DateTime picker. When opened, this DateTime picker will now default to the start date of the Reservation.
  • Default reservation type It is now possible to specify a default Reservation Type per Resource Type. You can do this on the Resource Type edit page. When this field is left empty, the ‘Default Reservation Type’ checkbox on the Reservation Type record is used
  • Reservation Type casing Reservation Types on the Reservation Form now use the casing that was specified on the record, instead of all being converted to lower case
  • Booker25 upgrade bug fix B25Local_Start_Timec and B25Local_End_Timec can now be updated more easily if the field is detected to be empty after upgrading Booker25 from a version where this field did not yet exist
  • PushTopic access and calendar updates When a user does not have PushTopic access, they now still get updates for their own changes (not for changes made by other users). This makes the calendar usable without PushTopic access (for Community users for example)
  • PushTopic access and calendar updates When a user does not have PushTopic Read permissions, a message is shown on the calendar stating that live updates are disabled because of insufficient rights
  • Resource filter & dependent filters Fixed a bug where filters would not save and update after a dependent field parent was set on the filter
  • Resource filter & dependent filters (2) Fixed a bug where, when reloading the filters from the database, the dependent filters would not display when the parent filter had a value
  • Resource filter dependent filters (3) Fixed a bug where clearing the value of a lookup filter when the page had dependent filters would cause an ‘Invalid ID’-error.
  • Resource filter & adding Resources Fixed a bug where the ‘Search for Resource’- field did not work on the Staff and Group calendars
  • Static Resources Updated and restructured Booker25’s Static Resources
Version 3.89
Released April 18, 2018

Minor Patches

  • Unshared reservations Reintroduced the feature where unshared reservations are displayed as gray bars on the calendar. This guarantees that users who do not have access to specific reservations due to sharing settings (and thus would not see them on the calendar) are aware of the fact that a reservation exists. Reservations that have a Status with the ‘Allow Double Bookings’ set to true will not be shown, as these reservations don’t conflict with other existing reservations. Users will not receive live updates for these reservation placeholders
  • Reservation trigger hooks Booker25 now supports the execution of custom trigger logic before or after the Booker25 Reservation Trigger. This is done by allowing users to create a class that implements the B25.Util_PluginManager.TriggerHook interface. The name of the class that implements this interface should be put into a B25System_Settingc named ‘Reservation Trigger Hook Class’. For more detailed instructions, visit https://gen25-jira.atlassian.net/wiki/spaces/BPD/pages/240320513/Control+trigger+order+of+execution+using+hooks
  • Resource order The Resource order field has been added to the Booker25 Resource page layout on the Resource tab, allowing users to more easily set the order of resources on the calendar
Version 3.88
Released April 16, 2018

New features include: Major rework of how the filter behaves The Resource lookup on the Reservation form now takes into account closing hours, availability and capacity * Minor usability improvements and bug fixes

  • Reservation Form Resource Lookup - Available resources There is a new setting ‘Only show available resources’ (visible when ‘Advanced resource lookup filtering’ is enabled). When enabled, the Resource lookup field on the reservation form will only show resources that are open during the timespan of the reservation
  • Reservation Form Resource Lookup - Unoccupied resources There is a new setting ‘Only show unoccupied resources’ (visible when ‘Advanced resource lookup filtering’ is enabled). When enabled, the Resource lookup field on the reservation form will only show resources that are unoccupied during the timespan of the reservation, i.e. there are no blocking reservations
  • Reservation Form Resource Lookup - Resource capacity There is a new setting ‘Only show resources with enough capacity’ (visible when ‘Advanced resource lookup filtering’ is enabled). When enabled, the Resource lookup field on the reservation form will only show resources that have enough capacity to hold the current reservation’s quantity
  • Filtering rework The resource filters are now stored in Salesforce and filters are applied server side. This means that every user will have access to their filters, no matter where they are and what device they are using. It also means that defining filters reduces the load time of the calendar, because only the resources that match the filters are loaded. The new filter now has three columns:

    • The leftmost column houses the reservation types filter, the reservation status filter and the custom filters
    • The middle column has new functionality: if you want to display some resources that don’t match your custom filters, you can use this column to add specific resources. If a parent resource is added here, their children are also automatically included
    • The third column houses the resource tree. This column allows to quickly show and hide resources without having to reload them from the Salesforce server, as this filter is client side

The first two columns represent the filters that are stored on the Salesforce server. When they are changed and the Save’ button is pressed, the resources will be reloaded form the server and displayed in the third column.

  • Hide Times Without Reservations This new setting on ‘View’ trims each day’s Start and End time to the first reservation start and last reservation end time. This is a more extreme version of ‘Hide closed times without reservations’, which would only hide times that the resource is closed in
  • Hide closed times without reservations Booker25 now sets ‘Hide closed times without reservations’ to true on fresh install.
  • Reservation form fields Booker25 now includes the Account and Contact fields in the field set on reservation.
  • Title fields Booker25 now has the Account name and Contact name as default title fields on fresh install
  • Salesforce page layouts The Staff and Resource availability Salesforce page layouts have been adjusted to include all required fields
  • Clickable Reservation Contacts Reservation Contact names are now clickable, allowing users to navigate to the corresponding Reservation Contact record when the reservation form is in non-edit mode
  • Timeframes Fixed a bug where when selecting a slot on the calendar that matched a existing timeframe, the timeframe field was not correctly set
  • Timeframes (2) Fixed a bug where when opening an existing reservation that had its times edited to no longer match the selected time frame, the reservation would then update the times to match the timeframe again
Version 3.87
Released March 30, 2018

Various performance upgrades and bug fixes

  • Performance improvement Booker25 will no longer check for conflicting resource layouts (room configurations), when a reservation is created in a resource that does not have any layouts
  • Reservation time zone If a reservation has a resource without a time zone, or no resource at all, Booker25 will now assume that the reservation’s time zone is the same as the creating user’s time zone. Previously Booker25 would assume the reservation’s time zone to be GMT
  • Toast notifications All Booker25 pages now use a new Toast notifications system for displaying errors. These notifications follow the Salesforce Lightning Design System (SLDS) and result in more consistent and clear notifications on all Booker25 pages
  • Better error communication The new Toast notification system allows Booker25 pages (like the Settings and Resources pages) to give better feedback to users about performed actions and errors
  • Service quantity Booker25 will now by default prepopulate the ‘Quantity’ field in the Service Reservation section on the calendar with 1 and automatically change any blank values to 0
  • Additional service validation Service reservations will now show an error when a negative quantity is specified.
  • Styling update The Settings page styling has been changed slightly so that the ‘Save’ button is now always in view at the bottom of the page
  • Bug fix Booker25 will now correctly update the user time when a reservation is moved to a resource with a different time zone
Version 3.86
Released March 23, 2018

New filtering functionality & minor improvements

  • UI Improvement The resource filter now has a checkbox next to the search box that can be used to select/deselect all resources that match the current search
  • Reservation / Resource load fix Fixed a bug introduced in v3.85, where reservations and resources would not load correctly into the calendar when one of the title, name or icon fields were null
  • Custom picklist filters fix Fixed and issue where custom filters on the calendar (Filterable Field object), referencing picklist fields were not being applied
  • Dependent custom filters fix Fixed an issue where dependent custom filters were not working on the Group calendar
  • Custom filters reload fix When restoring custom filters after a page reload, the filter now displays all dependent filters - even if there are multiple. It used to only show one. This also fixes the issue where not all dependent filters would disappear when two filters were cleared in quick succession
  • Live calendar updates performance improvement PushTopics now only update reservations in the current viewport, spacing out requests to prevent hitting Salesforce limits (For example: creating 100 reservations in one transaction using recurring reservations)
  • Removed seconds on reservation start/end time Dragging and resizing on the calendar will no longer create reservations with seconds precision. It will now round to the nearest minute
  • Grouping without availabilities fix When grouping was enabled and a grouping without any availability was expanded, the start and end times of the calendar where set to 0 and 24 instead of not showing anything at all
  • Automated Booking Rules error message Automated Booking Rules now give an appropriate error message when a configured field is empty, instead of giving the ‘Field does not exist’-error
  • Duplicate reservations fix Fixed a front-end bug where two reservations could appear on the calendar after creating one reservation
  • Recurring reservations erroneous error message When saving a recurring reservation (recurring every weekday) that had a validation error, the form will no longer error with “Weekday should be selected” on every subsequent attempt to save the corrected recurring series
  • Hide closed times without reservations When ‘Hide closed times without reservations’ is enabled on a calendar with slots shorter than one day and a duration longer than one day, the completely closed days are now filtered out correctly
Version 3.85
Released March 19, 2018

New features including: multi-day time frames, user specific filters, reservation form state manager, new time field labels and several bug fixes.

  • Booker25 API The Booker25 REST API now allows for the retrieval and creation of reservation contacts at the /v1/reservation-contacts/{Id} and /v1/reservation-contacts endpoints
  • Hide closed times without reservations The ‘Hide closed times without reservations’-setting on the ‘View’ object should now be respected again. It was previously always turned on for Views with less than one day of time and always turned off on views with more than one day in view. This setting thus needs to be reset on each 'View' record
  • Multi-day timeframe Timeframes now have a new field Number_of_Days that allows users to specify if the timeframe should span multiple days. 0 or blank will result in the old timeframe behaviour. Example 7:00 - 16:00 Number_of_Days = 2 will result in 16-03-2018 07:00 - 18-03-2018 16:00 on a reservation
  • User specific filter settings User setting on the calendar and resource pages (expanded Resources / Resource Types and Resource filter settings) are now specific to the user. This means that if two people use the same computer to use Booker25, they should have independent filters and expanded resources, instead of sharing these settings
  • Image in reservation (hover) Images are once again allowed in hover field values and title field values. There are however a few restrictions. Only relative urls are allowed for security reasons, for example: /servlet/servlet.ImageServer?id=XXXXXXXXXXXXXXX. Any non relative urls will result in a empty image tag. Only the ‘src’ and ‘alt’ attributes will be put in the resulting image
  • B25 Community User permission set A new permission set has been added named B25 Community. This permission set is identical to the B25 User permission set, except it does not have the Booker25 apps assigned to the user because Community users can not have assigned apps
  • Grouping filter behaviour When grouping is enabled on a calendar view, groups that are empty because of the filter will now be hidden
  • Reservation form state manager A state manager has been implemented on the reservation form. This means multiple quality of life improvements for the reservation form, making the experience of editing reservations in the calendar smoother. When the form re-renders it should now restore:
    • The expanded/collapsed state of each main section (Details, Contact List, Services, Pricing and Recurring Reservation)
    • The expanded/collapsed state of all subsections (selected contacts and selected services)
    • The scroll position of the form
    • The field that is currently in focus
    • The position of the caret in the focused input field
  • Services section (1) Existing services on a reservation are now collapsed by default.
  • Services section (2) When a new service is added to a reservation, the section for that service will be expanded by default and focus will be set to the first input field in the service section. This is the Quantity field by default.
  • Minor reservation form UI fix When a user does not have permission to edit the reservation opened in the calendar the form,will now say reservation instead of edit reservation.
  • Service / Service Type tabs Booker25 now includes tabs for Service and Service Type by default
  • Calendar loading notification The calendar will no longer show a live connection established notification, as this notification was overriding any potential error messages that happened at the same time
  • Reservation form labels Booker25 standard datetime fields have been relabeled to be more clear as to their function.
    • B25_Start_Date_c -> Local Start Date
    • B25_End_Date_c -> Local End Date
    • B25_Start_Local_DateTime_c -> Local Start Datetime
    • B25_End_Local_DateTime_c -> Local Start Datetime
    • B25_Start_c -> User Start Datetime
    • B25_End_c -> User Start Datetime
  • Service Reservation Service reservations can now have fields displayed on the row of the collapsed service reservation. To do this, add the fields to the ‘CollapsedFields’ field set on the service reservation object.
  • Small reservation size hover When reservations on the calendar are very small, resizing will be disabled on those reservations. This allows users to hover to see details on small reservations, as well as on reservations in large views.
  • Bugfix Staff availabilities are now respected when creating reservations
Version 3.84
Released March 9, 2018

Overall UX improvements

  • Hide Availabilities now works with Grouping Enabled Fixed a bug where activating both ‘Hide availabilities’ and ‘Grouping’, would cause the start and end times on the calendar to not be set to 0 and 24
  • Services Fixed a bug where it was possible to reserve any quantity of a service, if that resource did not have any availabilities defined for that service. Even though that should result in a ‘Service unavailable on this resource’ - error.
  • View in Salesforce Fixed a bug where the ‘View in Salesforce’ link on the Resources tab in Booker25 would not work after clicking ‘View in Booker25’ button on the resource record page.
  • Reservations without Resource Fixed multiple problems for reservations that were created without a resource; this should now no longer cause null pointer exceptions. Reservations without resource now also are not allowed to have a layout. The resource field is no longer required on the reservation form.
  • Inactive Staff no longer shown on calendar Fixed a bug where inactive staff were still visible on the calendar.
  • Grouping Reservation Fixed a bug where the calendar page would error because it was possible to attempt to create a reservation in a parent group node, created by the enable grouping setting.
  • Unshared Resources Fixed a regression introduced in the calendar performance update 3.79 where the calendar would no longer load resources if the user did not have sharing access to the ascendants of these resources instead of adding them to the calendar under a new subtree of the disconnected node.
Version 3.83
Released March 5, 2018

Various updates

  • Define REST API exposure on reservation It is now possible to define a field on the Settings page that will determine if a reservation should be visible through the Booker25 REST API. This allows users to expose specific reservations or specific groups of reservations through the use of formula fields. The field has to be a checkbox or formula checkbox field. If no field is specified, the old behaviour is preserved.
  • Services The Service Reservation section is now correctly displayed on the reservation form on the Staff and Group calendar. It now also shows all possible services when no resource is selected.
  • Lightning lookup Screens adjust when users click on a dropdown Lightning lookup, allowing its dropdown to fully expand in order to show available options
  • Checkbox styling Checkboxes on the reservation form should now have correct lightning styling.
  • Config info link Fixed fresh installs no longer having a link to the configuration manual in the default hover fields.
  • Reservation form error message When an error occurs on the reservation form on save, the form will now scroll up to show the user the error message
  • Lookup fields It is now possible to empty lookup fields on the reservation form and use the keyboard to specify a name instead of using the popup. This does mean that in order to use the popup, the search icon needs to be clicked specifically
  • Hover fix Fixed a bug where empty lookup fields in the path specified in hover fields and related list hover fields would cause the bubble to not load correctly. Now it displays the field as empty.
  • Calendar fix Fixed a bug where empty lookup fields in the path specified in calendar title fields would cause the calendar to no load all the reservation on the calendar. It now displays the value as empty.
  • Settings page save The setting page no longer autosaves when editing settings as this caused confusion. And because settings can now have errors, feedback is given at the top of the page on clicking the save button
  • Resource ordering Fixed a bug where the sorting order of resources on the calendar was reversed when using the Order field on resource. Previous behaviour: null-null-null-6-5-4-3-2-1-0. new behaviour: 0-1-2-3-4-5-6-null-null-null.
  • Recurring reservations Fixed a bug where when updating the start time of a reservation to a later time, would cause clicking 'Update future reservations' to duplicate this reservation.
  • Advanced resource filtering Three new settings have been added to the settings page:
  • Advanced resource lookup filtering When this setting is enabled the resource lookup on the reservation form is replaced by a custom lookup this custom lookup allows us to add more advanced filters to this lookup but it does not respect salesforce lookup filters. These filters are applied using the filter icon next to the resource lookup. If changes are made to the reservation that would influence the available resources the filter can be refreshed by clicking the reload icon next to the lookup and the filter can be removed by clicking the X next to the lookup.
  • Only show reservable resources This setting will filter the resources in the lookup to only show rentable resources. This should behave in the same way as the current lookup filter on the basic lookup.
  • Only show resources that have the selected services available This will filter the resource to only those that have the selected services available at the selected time with the selected quantities. This setting is not recommended for orgs with thousands of resources because this is not a simple calculation and could run out of time or if the filter would return a very large number of resources it could fail to fetch the results.
  • Recurring reservations Fixed a bug where clicking 'Update future reservations' with a destructive change on the first reservation in the series, would cause a failure of all of the reservations to save with a 'Entity deleted' error message.
  • Pricing Removed the resource pricing related fields on the reservation form when resource have a price is set to false in settings.
  • Hover Datetime fields Fixed a bug where Datetime fields shown on the calendar as a title field or hover field showed their GMT value instead of the value in the timezone of the user.
  • Opening times Fixed a bug where the calendar would not show and hide the opening times correctly for calendars with increments smaller than 1 hour and for calendars longer that one day with increments smaller than 1 day.
  • Reservation record limit Fixed a bug where creating a reservation without a resource would cause a error on organizations with more than 200.000 reservations.
  • Bugfix Fixed a bug where the lookup for service type on the new and edit service modal on the settings page would not always initialize itself correctly, causing it to appear empty and not display results when searching.
  • Bugfix Fixed a bug where custom lookup filters on the resource filter modal would not be restored correctly on page reload.
  • Bugfix Fixed a bug introduced in v3.80 that made the Delete and Edit dropdowns hide behind the table and create a scrollbar. The dropdowns have been removed and replaced by two buttons.
Version 3.82
Released March 1, 2018

Minor performance update

  • Minor performance update
Version 3.81
Released Feb. 23, 2018

Disabled External Sharing Model

  • Disabled External Sharing Model
Version 3.80
Released Feb. 20, 2018

Collection of usability and back-end fixes

  • Resource Type tree When first opening the resource type tree page, the type tree will be fully expand
  • Settings Removed the color codes and reservation preview on the status table in setting as these no longer represented what was actually displayed on the calendar, since the switch from status colors to reservation colors
  • Recurring reservation styling Updated the styling of recurring reservations to be more in line with the rest of Booker25
  • Resource filter behaviour Changed the way Booker25 handles new resources on the calendar
  • Pricing Disabling ‘Services have a price’ will now hide the price related fields of services from the reservation form and the settings page
  • Services When adding a service to a reservation on the reservation form, the service attributes are expanded automatically
  • Lookup click in reservation form Fixed a bug where clicking on a lookup in the reservation form would not redirect to the related record page but would instead would open a blank page
  • Service availability Fixed a bug where services that were not available for that resource would be shown in the services dropdown menu. Also reintroduces the remaining service count in the service dropdown
  • Hierarchy tree Fixed a bug where the expanded and closed nodes of the typetree would be forgotten when the user closed the browser
  • Field references Fixed a bug where field names could be used instead of relationship names in various booker field references
  • ‘Create new’ on lookup redirect Fixed a bug where the create new ‘X’ button on lookup dropdowns did not redirect the user to the new record page and instead opened a blank page
  • Calendar drag behaviour Fixed a bug where moving a reservation and then moving it again after saving into an illegal position would cause the reservation to snap back to the original position
  • Reservation form lookups Fixed a bug where having both the account and contact fields on the reservation form caused the account field to display wrong
  • Resource page scrollbar Fixed a bug where no scroll bar would appear on the resource screen when the related tables did not fit on screen
  • Currency Fixed a bug where the currency icon in the services table on the settings page would not respect the organizations currency setting
  • Reservation time update Fixed a bug where a non time-based change would cause the start and end times of the reservation to be recalculated. This happened when the time zone of the last user that edited the reservation, the time zone of the reservation's resource, and the time zone of the current user were all different. This would cause the reservation to change times
  • Closed resource booking Fixed a bug where it was possible to book closed resources if the resource closed at 24:00 and was closed the start of the next day. Reservation could be created going x hours into the next day depending on the time zone of the resource
Version 3.79
Released Feb. 9, 2018

Major performance upgrade

  • New way of calendar loading Calendar loading is now more reliable and capable of loading more resources and reservations. The calendar now provides feedback to the user while loading.
  • Grouping Grouping for the staff and group calendar allows for the delayed loading of availabilities for faster navigation on the calendar.
  • Caching Caching of availabilities for time ranges and resources.
  • Intelligent availability construction Significantly improves calendar loading times.
  • Error reporting Calendar notifies user on issues
  • Filter behaviour Improved filtering functionality
  • User preference storing Updated way of storing user preferences
  • Natural resource sorting Default sorting updated to be more human-like
  • Search navigation Fixed minor issues with search
  • Bugfix Fixed an issue where the labels on the reservation form were the wrong fields on Start and End time inputs.
  • Bugfix Fixed a vulnerability in the calendar.
Version 3.78
Released Jan. 11, 2018

Introduction of Recurring Reservations

  • Daily / weekly / monthly / yearly recurrence
  • Update individual / a series of reservations
  • Overview of conflicts upon save of recurring series
  • Bugfix Fixed lookups not functioning correctly on the reservation form.
  • Bugfix Fixed reservations not being shown real-time when Create Events is enabled in Settings.