New Release: Mobiscroll 5.17 and 5.17.1

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.


Event deletion

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.


Timeline virtualization

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.

Read the full blog post

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 the clickToCreate or dragToCreate 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 an end date.

Datepicker

FIXED

  • We fixed an issue where the selected value was returned in UTC instead of the specified dataTimezone , when used with the momentTimezone 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 and end date.

Scheduler

FIXED

  • We fixed an issue where the getEvents method did not return events that didn’t have and end date.

Timeline

FIXED

  • We fixed the resource property of the onCellClick , onCellDoubleClick and onCellRightClick 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 and end 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.