What’s new in 5.2.0
We are thrilled to report that the new 5.2 release of our Bryntum web component suite is out. Among the highlights in this release are: task/event splitting, calendar responsiveness, task & event non-working-time visualization and much more.
Split tasks
Gantt and Scheduler Pro now support task/event splitting, turning a single task into connected segments that can be dragged and resized individually. Check it out for Gantt in the new split-tasks demo:
And in the new split-events demo in Scheduler Pro:
Calendar responsiveness
Calendar now uses the Responsive mixin (which has been refactored) introduced with TaskBoard to better fit smaller screen sizes by hiding / replacing parts of the UI. It is enabled automatically, try it out in any demo. Here are two screenshots from the basic demo, on two different screen sizes:
PDF export speedup
The PDF export feature has a new “direct rendering” mode that is now enabled by default. It no longer needs to scroll through the dataset, which improves the UX and greatly reduces the time it takes to create the content that the backend then processes to create the PDF.
Improved TypeScript typings
Our product ships with TypeScript typings that we are trying to improve with every release. The API is too big to manually create these typings, instead we generate them based on our documentation. Thus the quality of our typings is directly linked to the quality of our API documentation.
In this release we have improved both by making it possible to specify that a function or property that accepts a configuration object for a specific class now instead of a generic object
can accept a typed object.
For example the cellEditor
config of a Grid Column
, which allows you to configure the floating Editor
used to edit the cell. Previously it would accept an untyped object
, but now it instead accepts an EditorConfig
(which in typings translate to Partial<EditorConfig>
).
type ColumnConfig = {
align: 'left'|'center'|'right'|'start'|'end'
autoHeight: boolean
cellCls: string
cellEditor: Partial<EditorConfig>
...
}
Gantt fillTicks support
Gantt now supports scaling tasks to fill whole ticks (the bottommost time axis unit, “cells”), using the fillTicks
config (which was ported from Scheduler). An improvement to it is that it now also fits the non-working-time ranges, for a more cohesive look. Try it in the new “fill-ticks” demo:
Visualizing event & task non-working-time
Gantt has a new TaskNonWorkingTime
feature that visualizes non-working-time from the task’s calendar. Check it out in the new “calendars” demo:
On a similar note, Scheduler has a new EventNonWorkingTime
feature (which comes most to its right in Scheduler Pro) that renders non-working-time ranges as shaded parts of the events. Used in the “event-non-working-time-demo” in Scheduler Pro:
Time selection in Scheduler
There is a new TimeSelection
feature in Scheduler that lets users select a time span in the time axis header. The purpose of the selection is up to the application, in the accompanying “time-selection” demo it can be used to select intersecting events or filter out unavailable resources:
Collapsible grid columns
Grouped columns in grid can now be collapsed by the user, when configured with collapsible: true
. There are two modes to pick from when configuring it, either collapsing hides all but the first column in the group, or it toggles the visibility of the columns in the group so that previously hidden columns are shown and vice versa. Comes with new demos in Grid, Scheduler and Gantt, all named “collapsible-columns”. The Grid demo:
The Scheduler demo:
The Gantt demo:
Improved TreeGroup feature
The TreeGroup
feature introduced in version 5.0.0 has been refactored to make it more useful. It no longer transforms the original store, but instead creates links to the original records in a “display store” and transforms that.
For Gantt this has the major advantage that the original tree structure that is used in scheduling is left intact, and tasks in the grouped view can still be edited and will adhere to the rules of the original structure. In the previous implementation all tasks had to be flagged as manually scheduled, basically making it a read-only view.
Another advantage is that the new approach also works in Scheduler, and as a bonus it is more performant than the old approach. Scheduler ships with a new “tree-grouping” demo:
Mouse events for ResourceTimeRanges
It is now possible to enable mouse events for resource time ranges, by configuring the feature with enableMouseEvents : true
. When doing so, it will trigger events like click, mouseover etc. prefixed with “resourceTimeRange”, resourceTimeRangeClick
for example. The config is used in a new “booking” application demo in Scheduler:
Adding content to empty cells in Calendar
Calendar has a new emptyCellRenderer
that lets you inject custom content into empty days in the month view. Used in the new “show-booking” demo:
More news
- Calendar can now show all weekdays in the header in day view
- The TimeRanges and NonWorkingTime features now use virtualized rendering, only rendering ranges (& lines) in view
- There is a new ViewPresetCombo widget, that lets the user pick between a set of view presets. For example Day, Week & Month
- Baselines in Gantt can now more easily be styled, by suppling
cls
orstyle
in data - Grid columns can now be renamed using the context menu
- TaskBoard has a new
isTaskSelectable
API, to match SchedulersisEventSelectable
Release details
For full details about this release, please see the change logs, What’s New guides and upgrade guides of each product:
Product | Changelog | What’s new | Upgrade guide | |
---|---|---|---|---|
Grid | ||||
Scheduler | ||||
Scheduler Pro | ||||
Gantt | ||||
Calendar | ||||
TaskBoard |
Summing up
Version 5.2 adds many new features and demos, almost exclusively based on the feedback received from our customers and community. We hope you will enjoy this release and please keep your feedback coming. Is there a specific feature you would like us to add next?
For full details please see each product change log, links above.