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 demo and added some helper functions like the
updateRecurringEvent that will somewhat simply the implementation of a custom behavior.
updateRecurringEvent expects the original recurring event along with the occurrence that you are editing, an optional
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
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
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.
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.
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.
Illustration by Icons 8 from Ouch!