What’s New
Introducing advanced recurring event edit, more advanced event deletion control and steps towards timeline virtualization.
Handling recurring events
Recurring events can be edited a couple different ways. The default behavior when an occurrence is moved is that a new event is created that represents the move and an exception is added to the recurrence rule that handles the updated event. There will be other situations where someone wants to move all occurrences and update the recurrence rule eg. ‘move from every Thursday to every Friday’. In other cases someone might want to update all occurrences starting from a specific date eg. ‘apply update to this and future occurrences’. For all this we have updated our recurring rule editor demoand added some helper functions like the updateRecurringEvent
that will somewhat simply the implementation of a custom behavior.
Advanced recurring rule editor
The updateRecurringEvent
expects the original recurring event along with the occurrence that you are editing, an optional newEvent
and updatedEvent
along with an update mode that can be a single occurrence, following or all events. The function will take care of the correct calculations and return the updatedEvent
and newEvent
that can be passed back to the event calendar.
Working with recurring events is not easy, and with the helper functions and updated examples we are providing the tools and assistance you need to implement your custom logic.
Granular control over event deletion
Before 5.17 event deletion performed with the ‘delete’ or ‘backspace’ buttons was controlled by the clickToCreate
and dragToCreate
options. This really made sense… so if someone was allowed to delete events, they should also be allowed to create events. Except, delete could not be enabled if event creation was not allowed for click & drag, which means events created by external D&D or events created by submitting a new event form were not deletable from the keyboard. With the new eventDelete
option this behavior can be controlled separately.
Timeline virtualization
The timeline quickly became one of our most popular components because it provides a great way to visualize events, tasks and schedules across multiple resources for both the short and long term. When working with long ranges and a lot of data, the shortcomings of our initial design started to show so we needed to get back to the drawing board. In 5.17 we are shipping the first couple of steps towards full virtualization, which includes a rewritten horizontal scrolling and rendering logic. Rendering events across longer ranges shouldn’t come with any performance degradation whatsoever.
What’s next
With the horizontal virtualization of the timeline released we are preparing full support for the resources. Besides that, we have some new features planned that will enable bulk operations on events among other things.
MOBISCROLL 5.17
All Components
NEW
- We have added three shaking to the styles, using SASS variables.
Calendar integrations
FIXED
- We fixed the
scopes
option for the Google calendar integration, which was not taken into account after the migration to the new auth service. - We fixed an error with the Google calendar integration, when used with public calendars without
clientId
specified.
Datepicker
FIXED
- We improved the Angular component to init the date picker controls without any latency.
Eventcalendar
NEW
- We added the
eventDelete
option that can be used to enable or disable event deletion independently of theclickToCreate
ordragToCreate
options. - We added the
updateRecurringEvent
helper function for editing recurring events. The function returns the updated event and the new event based on the configuration.
FIXED
- We fixed the event width calculation which was not always correct in year or multiple month view.
Timeline
NEW
- We virtualized the horizontal scrolling of the timeline, resulting in performance boost when working with long time periods.
- We changed how scrolling works and how the timeline grid is being rendered. This serves as a prerequisite for full timeline virtualization.
FIXED
- We fixed an issue where the title of all-day invalids was not displayed.
MOBISCROLL 5.17.1
Agenda
FIXED
- We fixed an issue where the
getEvents
method did not return events without anend
date.
Datepicker
FIXED
- We fixed an issue where the selected value was returned in UTC instead of the specified
dataTimezone
, when used with themomentTimezone
plugin. - We fixed the timegrid control to take timezones into account.
- We fixed an issue where the value on the picker was not updated correctly on dynamic timezone change, in inline display mode.
Eventcalendar
FIXED
- We fixed an issue with the multiple month view, where the months were unnecessarily re-rendered on day click, causing the event popover pointing at the wrong place.
- We fixed an issue where the
getEvents
method did not return events that didn’t have andend
date.
Scheduler
FIXED
- We fixed an issue where the
getEvents
method did not return events that didn’t have andend
date.
Timeline
FIXED
- We fixed the
resource
property of theonCellClick
,onCellDoubleClick
andonCellRightClick
events in Angular. - We fixed an error that occurred for multi-level hierarchies when expanding resources.
- We fixed an issue where the events were not always properly rendered if they started outside of the view, or the start of the event was dragged outside of the view.
- We fixed an issue where the
getEvents
method did not return events that didn’t have andend
date.
For the full changelog please visit our release history.
PS. You will find an upgrade guide for moving from Mobiscroll 4 to Mobiscroll 5.