Scheduler
The Scheduler widget is a very powerful and performant UI component that displays an arbitrary number of "locked" columns with a schedule occupying the remaining space. The schedule has a time axis at the top, one row per resource and any number of events per resource.
Intro
The Scheduler widget has a wide range of features and a large API to allow users to work with it efficiently in the browser.
The timeaxis displayed at the top of the Scheduler is configured using a startDate, endDate and a viewPreset. The dates determine the outer limits of the range shown in the timeaxis while the ViewPreset decides the appearance and which dates are actually shown. The Scheduler ships with a selection of predefined view presets, which can be found in PresetManager. If you want to specify view presets for a specific scheduler only, please see presets config.
startDate and endDateThe Scheduler uses a ResourceStore to hold resources and an EventStore to hold events. You can use inline data or load data using ajax, see the "Working with data" guides for more information.
The simplest schedule configured with inline data would look like this:
const scheduler = new Scheduler({
appendTo : targetElement,
// Set fixed height of 370px
height : 370,
startDate : new Date(2018, 4, 6),
endDate : new Date(2018, 4, 13),
viewPreset : 'dayAndWeek',
columns : [
{ field : 'name', text : 'Name', width : 90 }
],
resources : [
{ id : 1, name : 'Alice' },
{ id : 2, name : 'Bob' },
{ id : 3, name : 'Carol' },
{ id : 4, name : 'Dan' },
{ id : 5, name : 'Eve' }
],
events : [
{ id : 1, resourceId : 1, name : 'Team Meeting', startDate : '2018-05-06', endDate : '2018-05-07' },
{ id : 2, resourceId : 1, name : 'Project Review', startDate : '2018-05-09', endDate : '2018-05-10' },
{ id : 3, resourceId : 2, name : 'Client Call', startDate : '2018-05-07', endDate : '2018-05-08' },
{ id : 4, resourceId : 2, name : 'Training Session', startDate : '2018-05-11', endDate : '2018-05-12' },
{ id : 5, resourceId : 3, name : 'Design Workshop', startDate : '2018-05-06', endDate : '2018-05-08' },
{ id : 6, resourceId : 4, name : 'Code Review', startDate : '2018-05-08', endDate : '2018-05-09' },
{ id : 7, resourceId : 5, name : 'Documentation', startDate : '2018-05-10', endDate : '2018-05-12' }
]
});
//<code-header> targetElement.innerHTML = '<p>The code above yields the following scheduler:</p>'; //</code-header> const scheduler = new Scheduler({ appendTo : targetElement, // Set fixed height of 370px height : 370, startDate : new Date(2018, 4, 6), endDate : new Date(2018, 4, 13), viewPreset : 'dayAndWeek', columns : [ { field : 'name', text : 'Name', width : 90 } ], resources : [ { id : 1, name : 'Alice' }, { id : 2, name : 'Bob' }, { id : 3, name : 'Carol' }, { id : 4, name : 'Dan' }, { id : 5, name : 'Eve' } ], events : [ { id : 1, resourceId : 1, name : 'Team Meeting', startDate : '2018-05-06', endDate : '2018-05-07' }, { id : 2, resourceId : 1, name : 'Project Review', startDate : '2018-05-09', endDate : '2018-05-10' }, { id : 3, resourceId : 2, name : 'Client Call', startDate : '2018-05-07', endDate : '2018-05-08' }, { id : 4, resourceId : 2, name : 'Training Session', startDate : '2018-05-11', endDate : '2018-05-12' }, { id : 5, resourceId : 3, name : 'Design Workshop', startDate : '2018-05-06', endDate : '2018-05-08' }, { id : 6, resourceId : 4, name : 'Code Review', startDate : '2018-05-08', endDate : '2018-05-09' }, { id : 7, resourceId : 5, name : 'Documentation', startDate : '2018-05-10', endDate : '2018-05-12' } ] }); Inheriting from Bryntum Grid
Bryntum Scheduler inherits from Bryntum Grid, meaning that most features available in the grid are also available for the scheduler. Common features include columns, cell editing, context menus, row grouping, sorting and more. Note: If you want to use the Grid component standalone, e.g. to use drag-from-grid functionality, you need a separate license for the Grid component.
For more information on configuring columns, filtering, search etc. please see the Grid API docs.
Loading data
const scheduler = new Scheduler({
events : myArrayOfEventData,
resources : myArrayOfResourceData
});
If you need to give additional store configuration, you can also specify store configs or instances:
let resourceStore = new ResourceStore({
// ResourceStore config object
})
const scheduler = new Scheduler({
// EventStore config object
eventStore : {
...
},
// Already existing ResourceStore instance
resourceStore
});
To use Ajax to fetch data from a server, specify readUrl:
const scheduler = new Scheduler({
eventStore : {
readUrl : 'backend/read_events.php',
autoLoad : true
}
});
// If you do not specify autoLoad, trigger loading manually:
scheduler.eventStore.load();
For more information, see the "Working with data" guides.
Lazy loading data (infinite scroll)
To activate lazy loading you will need to configure each store with lazyLoad = true. Then either you configure the stores with a readUrl and implement a backend that responds correctly to that request. Or you implement the requestData function which serves the correct data to the Store.
For the ResourceStore, you either have to set the autoLoad config to true or call load initially. The rest of the lazy loaded stores will be loaded when the resources have started rendering.
If you are using the CrudManager, you would simply set the lazyLoad config to true and implement the backend. The CrudManager will lazy load the stores which are supported and do a complete load of the unsupported stores.
For more information about lazy loading, please read our guide
Unsupported
These major features are currently not supported when lazy loading:
Event styling
- Switching themes
- Choosing event styles and colors
- Using renderer functions
Switching themes
Scheduler ships with four different themes, each available in both a light and a dark variant. Simply include the css file for the theme you would like to use on your page. The themes are located in the /build folder. For example to include the Material3 themes light variant:
<link rel="stylesheet" href="build/material3-light.css" data-bryntum-theme>
Svalbard
Visby
Stockholm
Material3
Fluent2
High Contrast
Choosing event styles and colors
The style and color of each event can be changed by assigning to the eventStyle and eventColor configs. These configs are available at 3 different levels:
- Scheduler level, affects all events (see eventStyle and eventColor).
- Resource level, affects all events assigned to that resource (see eventStyle and eventColor).
- Event level, affects that event (see eventStyle and eventColor).
targetElement.innerHTML = '<p>This demo uses a few different styles and colors:</p>'; const scheduler = new Scheduler({ appendTo : targetElement, // makes scheduler as high as it needs to be to fit rows autoHeight : true, startDate : new Date(2018, 4, 6), endDate : new Date(2018, 4, 13), viewPreset : 'dayAndWeek', // default event color eventColor : 'indigo', // default event style eventStyle : 'border', columns : [ { field : 'name', text : 'Name', width : 100 } ], resources : [ { id : 1, name : 'Bernard' }, { id : 2, name : 'Bianca' } ], events : [ { id : 1, resourceId : 1, name : 'Interview', startDate : '2018-05-06', endDate : '2018-05-07', eventStyle : 'line' }, { id : 2, resourceId : 1, name : 'Press meeting', startDate : '2018-05-08', endDate : '2018-05-09', eventColor : 'orange' }, { id : 3, resourceId : 2, name : 'Audition', startDate : '2018-05-07', endDate : '2018-05-09', eventStyle : 'traced', eventColor : 'pink' }, { id : 4, resourceId : 2, name : 'Script deadline', startDate : '2018-05-11', endDate : '2018-05-11', eventColor : 'blue' } ] }); For available styles, see eventStyle. For colors, eventColor. Also take a look at the eventstyles demo.
Sorting overlapping events
The order of overlapping events rendered in a horizontal scheduler can be customized by overriding overlappingEventSorter function on the scheduler. For example:
const scheduler = new Scheduler({
overlappingEventSorter(a, b) {
return b.startDate.getTime() - a.startDate.getTime();
},
...
});
targetElement.innerHTML = '<p>This demo shows the red events first among other overlapping events:</p>'; const scheduler = new Scheduler({ appendTo : targetElement, // makes scheduler as high as it needs to be to fit rows autoHeight : true, startDate : new Date(2018, 4, 6), endDate : new Date(2018, 4, 13), viewPreset : 'dayAndWeek', columns : [ { field : 'name', text : 'Name', width : 100 } ], resources : [ { id : 1, name : 'Mark' } ], events : [ { id : 1, resourceId : 1, name : '1. Call with a client', startDate : '2018-05-07', endDate : '2018-05-09', eventColor : 'green' }, { id : 2, resourceId : 1, name : '2. Important meeting', startDate : '2018-05-07', endDate : '2018-05-09', eventColor : 'red' }, { id : 3, resourceId : 1, name : '3. Audition', startDate : '2018-05-07', endDate : '2018-05-09', eventColor : 'green' } ], overlappingEventSorter(a, b) { const comparedNames = a.name < b.name ? -1 : a.name === b.name ? 0 : 1, comparedColors = (a.eventColor === 'red' && b.eventColor !== 'red') ? -1 : (a.eventColor !== 'red' && b.eventColor === 'red') ? 1 : comparedNames; return a.startDateMS - b.startDateMS || a.endDateMS - b.endDateMS || comparedColors; } }); Using render functions
Render function can be used to manipulate the rendering of rows (resources) and events. For information on row renderers, see renderer.
Event rendering can be manipulated by specifying an eventRenderer function. The function is called for each event before it is rendered to DOM. By using its arguments you can add CSS classes, modify styling and determine the contents of the event:
const scheduler = new Scheduler({
events : [...],
resources : [...],
...,
eventRenderer({resourceRecord, eventRecord, renderData}) {
// add css class to the event
renderData.cls.add('my-css-class');
// use an icon
renderData.iconCls = 'fa fa-some-nice-icon';
// return value is used as events text
return `${resourceRecord.name}: ${eventRecord.name}`;
}
});
Event manipulation
// change startDate of first event
scheduler.eventStore.first.startDate = new Date(2018,5,10);
// remove last event
scheduler.eventStore.last.remove();
// reassign an event
scheduler.eventStore.getById(10).resourceId = 2;
You can also allow your users to manipulate the events using the following features:
- EventDrag, drag and drop events within the schedule
- EventDragCreate, create new events by click-dragging an empty area
- EventEdit, show an event editing form
- SimpleEventEdit, edit the event name easily
- EventResize, resize events by dragging resize handles
All of the features mentioned above are enabled by default.
View presets
Here are some of the predefined view presets ("hourAndDay", "weekAndDayLetter", "monthAndYear", see PresetManager for the full list):
const scheduler = new Scheduler({ appendTo : targetElement, autoHeight : true, startDate : new Date(2018, 4, 6), endDate : new Date(2018, 4, 10), viewPreset : 'hourAndDay', columns : [ { field : 'name', text : 'Name', width : 100 } ] }); const scheduler = new Scheduler({ appendTo : targetElement, autoHeight : true, startDate : new Date(2018, 4, 6), endDate : new Date(2018, 4, 20), viewPreset : 'weekAndDayLetter', columns : [ { field : 'name', text : 'Name', width : 100 } ] }); const scheduler = new Scheduler({ appendTo : targetElement, autoHeight : true, startDate : new Date(2018, 4, 1), endDate : new Date(2018, 12, 31), viewPreset : 'monthAndYear', columns : [ { field : 'name', text : 'Name', width : 100 } ] }); You can specify which view presets a specific Scheduler should use by configuring the presets config:
new Scheduler({
presets : [
'hourAndDay',
'weekAndDayLetter',
'monthAndYear'
]
});
You can also define your own custom view presets. See the ViewPreset documentation.
Zooming
For a smoother zooming experience, we recommend enabling smoothZoom which will interpolate between presets when zooming in and out (it will be on by default from v8):
new Scheduler({
smoothZooming : true
});
This is especially noticeable when using the mouse wheel, track pad or pinch gestures to zoom in and out. But it also allows animating programmatic zooms:
scheduler.zoomIn({ animate : true });
When using smooth zooming, presets flagged with useForSmoothZooming : false will be skipped during zooming.
Useful zooming APIs:
Default configs
const scheduler = new Scheduler({
// The following features are enabled by default:
features : {
cellEdit : true, // Cell editing in the columns part
columnLines : true, // Column lines in the schedule part
columnPicker : true, // Header context menu item to toggle visible columns
columnReorder : true, // Reorder columns in grid part using drag and drop
columnResize : true, // Resize columns in grid part using the mouse
cellMenu : true, // Context menu for cells in the grid part
eventMenu : true, // Context menu for events
eventDrag : true, // Dragging events
eventDragCreate : true, // Drag creating events
eventEdit : true, // Event editor dialog
eventFilter : true, // Filtering events using header context menu
eventCopyPaste : true, // Allow using [Ctrl/CMD + C/X] and [Ctrl/CMD + V] to copy/cut and paste events
eventResize : true, // Resizing events using the mouse
eventTooltip : true, // Tooltips for events
group : true, // Row grouping
headerMenu : true, // Context menu for headers in the grid part
timeAxisHeaderMenu : true, // Header context menu for schedule part
scheduleMenu : true, // Context menu for empty parts of the schedule
scheduleTooltip : true, // Tooltip for empty parts of the schedule
sort : true // Row sorting
},
// From Grid
autoHeight : false, // Grid needs to have a height supplied through CSS (strongly recommended) or by specifying `height
columnLines : true, // Grid part, themes might override it to hide lines anyway
emptyText : 'No rows to display',
enableTextSelection : false, // Not allowed to select text in cells by default,
fillLastColumn : true, // By default the last column is stretched to fill the grid
fullRowRefresh : true, // Refreshes entire row when a cell value changes
loadMask : 'Loading...',
resizeToFitIncludesHeader : true, // Also measure header when auto resizing columns
responsiveLevels : {
small : 400,
medium : 600,
large : '*'
},
rowHeight : 60, // Scheduler specifies a default rowHeight in pixels
showDirty : false, // No indicator for changed cells
// Scheduler specific
autoAdjustTimeAxis : true, // startDate & endDate will be adjusted to display a suitable range
allowOverlap : true, // Events are allowed to overlap (overlays, stacks or packs depending on eventLayout)
barMargin : 10, // Space above + below each event
createEventOnDblClick : true, // Allow creating new events by double clicking empty space
enableDeleteKey : true, // Allow deleting events with delete / backspace keys
eventBarTextField : 'name', // Field on EventModel to display in events
eventColor : 'green', // Use green as default color for events
eventLayout : 'stack', // Stack overlapping events by default
eventStyle : 'plain', // Use plain as default style for events
managedEventSizing : true, // Calculate event sizes based on rowHeight & barMargin
milestoneCharWidth : 10,
milestoneLayoutMode : 'default',
useInitialAnimation : true, // Fade in events initially
viewPreset : 'weekAndDayLetter',
zoomOnMouseWheel : true,
zoomOnTimeAxisDoubleClick : true
});
Keyboard shortcuts
As Scheduler is a subclass of Grid, many of Grid's keyboard-shortcuts works for Scheduler as well.
For more information on how to customize keyboard shortcuts, please see our guide
Performance
To put the scheduler to the test, try our bigdataset demo.
Recurring Events
RecurringEvents Feature. There is an enableRecurringEvents boolean config on the Scheduler. Occurrences of recurring events are provided on a "just in time" basis by a new EventStore API which must now be used when interrogating an EventStore.
getEvents is a multipurpose event gathering method which can be asked to return events which match a set of criteria including a date range and a resource. By default, if the requested date range contains occurrences of a recurring event, those occurrences are returned in the result array.
myEventStore.getEvents({
resourceRecord : myResourceRecord,
startDate : myScheduler.startDate,
endDate : myScheduler.endDate
});
Occurrences are not present in the store's data collection.
To directly access occurrences of a recurring event which intersect a date range, use:
recurringEvent.getOccurrencesForDateRange(startDate, endDate);
The endDate argument is optional if the occurrence for one date is required. This method always returns an array. Note that it may be empty if no occurrences intersect the date range.
Convert an occurrence to an exception
To programmatically convert an occurrence to be a single exception to its owner's sequence use:
myOccurrence.beginBatch();
myOccurrence.startDate = DateHelper.add(myOccurrence.startDate, 1, 'day');
myOccurrence.name = 'Postponed to next day';
myOccurrence.recurrence = null; // This means it does NOT become a new recurring base event.
myOccurrence.endBatch();
That will cause that event to be inserted into the store as a concrete event definition, firing an add event as would be expected, and will add an exceptionDates to its owning recurring event.
When syncing this change back to the server, the exceptionDates array for the modified recurring event now contains the exception dates correctly serialized into string form using the dateFormat of the field. The system-supplied default value for this is 'YYYY-MM-DDTHH:mm:ssZ'
Convert an occurrence to a new recurring event sequence.
To programmatically convert an occurrence to be the start of a new recurring sequence, use:
myOccurrence.beginBatch();
myOccurrence.startDate = DateHelper.set(myOccurrence.startDate, 'hour', 14);
myOccurrence.name = 'Moved to 2pm from here on';
myOccurrence.endBatch();
That will cause that event to be inserted into the store as a concrete recurring event definition, firing an add event as would be expected, and will terminate the previous recurring owner of that occurrence on the day before the new event.
See also
- EventModel - Event data model
- ResourceModel - Resource data model
- EventStore - Event store
- ResourceStore - Resource store
- ViewPreset - View preset configuration
Configs
Configs are options you supply in a configuration object when creating an instance of this class-
Decimal precision used when displaying durations, used by tooltips and DurationColumn. Specify
falseto use raw value -
Get/set end date limit of the timeline. Actions such as timeline scrolling, all types of timeline zooms and shifts will respect this limit.
Has a corresponding runtime maxDate property.
-
Get/set start date limit of the timeline. Actions such as timeline scrolling, all types of timeline zooms and shifts will respect this limit.
Has a corresponding runtime minDate property.
-
Scheduler mode. Supported values: horizontal, vertical
Has a corresponding runtime mode property.
-
Preserve the grid's vertical scroll position when changesets are applied, as in the case of remote changes, or when stores are configured with syncDataOnLoad.
Has a corresponding runtime preserveScroll property.
-
The height in pixels of Scheduler rows.
Has a corresponding runtime rowHeight property.
-
Set
trueto add a border to this container's element. -
The CSS class added to an event when it is currently committing changes
-
The CSS class added to an event when it has unsaved modifications
-
The CSS class added to an event/assignment when it ends outside of the visible time range.
-
CSS class to add to other instances of a selected event, to highlight them.
-
CSS class to add to rendered events
-
CSS class to add to selected events.
-
The CSS class added to an event/assignment when it is not draggable.
-
A CSS class name to add to focused events.
-
The CSS class added to an event/assignment when it is newly created in the UI and unsynced with the server.
-
A CSS class to apply to each event in the view on mouseover (defaults to 'b-hover').
-
The CSS class added to an event/assignment when it starts outside of the visible time range.
-
Custom style spec to add to element
Has a corresponding runtime style property.
-
CSS class to add to cells in the timeaxis column
-
Update fields if the record changes
-
Can be set to
trueto make a focus of a focusable encapsulating element relay focus down into a focusable child. This is normallyfalseto allow mousedown to begin text selection in Popups. -
Number of columns to use in a grid layout. Applied as
grid-template-columns: repeat(n, auto). Also applies theb-columnsCSS class to the container.Has a corresponding runtime gridColumns property.
-
Specify
trueto isolate record changes to this container and its ancestors. Prevents record updates from propagating up from here and also prevents record updates from parent from propagating down to us. -
Object to apply to elements dataset (each key will be used as a data-attribute on the element)
Has a corresponding runtime dataset property.
-
A createElement config object or HTML string from which to create the Widget's element.
Has a corresponding runtime element property.
-
Widget id, if not specified one will be generated. Also used for lookups through Widget.getById
Has a corresponding runtime id property.
-
Element (or element id) to insert this widget before. If provided, appendTo config is ignored.
Has a corresponding runtime insertBefore property.
-
Element (or element id) to append this widget element to, as a first child. If provided, appendTo config is ignored.
Has a corresponding runtime insertFirst property.
-
The optional AssignmentStore, holding assignments between resources and events. Required for multi assignments.
Has a corresponding runtime assignmentStore property.
-
Inline assignments, will be loaded into an internally created AssignmentStore.
Has a corresponding runtime assignments property.
-
Supply a CrudManager instance or a config object if you want to use CrudManager for handling data.
Has a corresponding runtime crudManager property.
-
Class that should be used to instantiate a CrudManager in case it's provided as a simple object to crudManager config.
-
Inline dependencies, will be loaded into an internally created DependencyStore.
Has a corresponding runtime dependencies property.
-
The optional DependencyStore.
Has a corresponding runtime dependencyStore property.
-
Configure as
trueto destroy the Project and stores whenthisis destroyed. -
The name of the end date parameter that will be passed to in every
eventStoreload request. -
The EventStore holding the events to be rendered into the scheduler (required).
Has a corresponding runtime eventStore property.
-
Inline events, will be loaded into an internally created EventStore.
Has a corresponding runtime events property.
-
The ResourceStore holding the resources to be rendered into the scheduler (required).
Has a corresponding runtime resourceStore property.
-
Resource time ranges store instance or config object for ResourceTimeRanges feature.
Has a corresponding runtime resourceTimeRangeStore property.
-
resourceTimeRanges : ResourceTimeRangeModel[]/ResourceTimeRangeModelConfig[]NON-LAZY-LOADSchedulerStores
Inline resource time ranges, will be loaded into an internally created store if ResourceTimeRanges is enabled.
Has a corresponding runtime resourceTimeRanges property.
-
Inline resources, will be loaded into an internally created ResourceStore.
Has a corresponding runtime resources property.
-
The name of the start date parameter that will be passed to in every
eventStoreload request. -
The time ranges store instance for TimeRanges feature.
Has a corresponding runtime timeRangeStore property.
-
Inline time ranges, will be loaded into an internally created store if TimeRanges is enabled.
Has a corresponding runtime timeRanges property.
-
A string used to separate start and end dates in the descriptionFormat.
Has a corresponding runtime dateSeparator property.
-
Collection to store selection.
-
Internal listeners, that cannot be removed by the user.
-
When this widget is a child of a Container, it will by default be participating in a flexbox layout. This config allows you to set this widget's align-self style.
Has a corresponding runtime alignSelf property.
-
Automatically set grids height to fit all rows (no scrolling in the grid). In general you should avoid using
autoHeight: true, since it will bypass Grids virtual rendering and render all rows at once, which in a larger grid is really bad for performance. -
Controls whether the panel is collapsed (the body of the panel is hidden while only the header is visible). Only valid if the panel is collapsible.
Has a corresponding runtime collapsed property.
-
Set to
trueto stretch the last column in a grid with all fixed width columns to fill extra available space if the grid's width is wider than the sum of all configured column widths. -
When this widget is a child of a Container, it will by default be participating in a flexbox layout. This config allows you to set this widget's flex style. This may be configured as a single number or a
<flex-grow> <flex-shrink> <flex-basis>format string. numeric-only values are interpreted as theflex-growvalue.Has a corresponding runtime flex property.
-
Widget's height, used to set element
style.height. Either specify a valid height string or a number, which will get 'px' appended. We recommend using CSS as the primary way to control height, but in some cases this config is convenient.Has a corresponding runtime height property.
-
Widget's margin. This may be configured as a single number or a
TRBLformat string. numeric-only values are interpreted as pixels.Has a corresponding runtime margin property.
-
Set to
falseto only measure cell contents when double-clicking the edge between column headers. -
A widgets weight determines its position among siblings when added to a Container. Higher weights go further down.
-
Widget's width, used to set element
style.width. Either specify a valid width string or a number, which will get 'px' appended. We recommend using CSS as the primary way to control width, but in some cases this config is convenient.Has a corresponding runtime width property.
-
By default, when the
EventStore(and similar stores) is lazy loading, a loading indicator will be displayed just below the timeline headers. Set this tofalseto prevent this indicator being shown.Has a corresponding runtime lazyLoadingIndicator property.
-
A Mask config object, or a message to be shown when a store is performing a remote operation, or Crud Manager is loading data from the sever. Set to
nullto disable default load mask. -
How to align milestones in relation to their startDate. Only applies when using a
milestoneLayoutModeother thandefault. Valid values are:- start
- center (default)
- end
Has a corresponding runtime milestoneAlign property.
-
Factor representing the average char width in pixels used to determine milestone width when configured with
milestoneLayoutMode: 'estimate'.Has a corresponding runtime milestoneCharWidth property.
-
Position of the milestone text:
- 'inside' - for short 1-char text displayed inside the diamond, not applicable when using milestoneLayoutMode)
- 'outside' - for longer text displayed outside the diamond, but inside it when using milestoneLayoutMode
- 'always-outside' - outside even when combined with milestoneLayoutMode
Has a corresponding runtime milestoneTextPosition property.
-
Deprecated:
7.0.0 Deprecated
animateFilterRemovals. Usetransition.filterRemovalinsteadSet to
trueto animate row removals caused by filtering. -
Deprecated:
7.0.0 Deprecated
animateRemovingRows. Usetransition.removeRecordinsteadControls if removing and inserting rows should be animated. Set to
falseto prevent those animations, removing the related delays. -
Set to
falseto crop text in grid cells without ellipsis (...). When enabled, cells containing pure usedisplay : block, instead ofdisplay : flexto allow ellipsis to work. NOTE Only supported in browsers that support:has()CSS selectorHas a corresponding runtime cellEllipsis property.
-
Set to
falseto not show column lines. End result might be overruled by/differ between themes.Has a corresponding runtime columnLines property.
-
Event which is used to show context menus. Available options are: 'contextmenu', 'click', 'dblclick'.
-
When this Widget configuration is used in the Grid's RowExpander feature's
widgetconfig, provide the field on the expanded record to use for populating this widget's store (if applicable) -
Region to which columns are added when they have none specified
-
Set to
trueto destroy the store when the grid is destroyed. -
Set to
trueto not get a warning when using another base class than GridRowModel for your grid data. If you do, and would like to use the full feature set of the grid then include the fields from GridRowModel in your model definition. -
Allow using Delete and Backspace to remove events/assignments
-
Deprecated:
7.3.0 Use
features : { stickyCells : true }insteadSet to
trueto enable the StickyCells feature, which pins cell content to the top of the grid while rows scroll off the top but remain visible. -
Set to
trueto listen for CTRL-Z (CMD-Z on Mac OS) keyboard event and trigger undo (redo when SHIFT is pressed). Only applicable when using a StateTrackingManager.Has a corresponding runtime enableUndoRedoKeys property.
-
Set to
trueto hide the column header elementsHas a corresponding runtime hideHeaders property.
-
Set to
trueto hide the Grid's horizontal scrollbar(s) -
The class responsible for the packing horizontal event layout process. Override this to take control over the layout process.
-
The class name responsible for the stacking horizontal event layout process. Override this to take control over the layout process.
-
A CSS class to add to hovered row elements
-
Maximum duration (in milliseconds) for the initial animation controlled by useInitialAnimation.
Has a corresponding runtime initialAnimationDuration property.
-
Set to
falseto disable localization of this object. -
Time in ms until a longpress is triggered
Has a corresponding runtime longPressTime property.
-
Grids change the
maskDefaultsto cover only theirbodyelement. -
Set to
trueto apply the default mask to the widget. Alternatively, this can be the mask message or a Mask config object. -
Grid monitors window resize by default.
-
Specify plugins (an array of classes) in config
Has a corresponding runtime plugins property.
-
True to preserve focused cell after loading new data
-
Specify
trueto preserve vertical scroll position after store actions that trigger arefreshevent, such as loading new data and filtering. -
Prevent tooltip from being displayed on touch devices. Useful for example for buttons that display a menu on click etc, since the tooltip would be displayed at the same time.
-
If you are rendering this widget to a shadow root inside a web component, set this config to the shadowRoot. If not inside a web component, set it to
document.body -
Set to
falseto not show row lines. End result might be overruled by/differ between themes.Has a corresponding runtime rowLines property.
-
If set to
truethis will show a color field in the EventEdit editor and also a picker in the EventMenu. Both enables the user to choose a color which will be applied to the event bar's background. See EventModel's eventColor config. config. -
Animation transition duration in milliseconds.
Has a corresponding runtime transitionDuration property.
-
By default, scrolling the schedule will update the timelineContext to reflect the new currently hovered context. When displaying a large number of events on screen at the same time, this will have a slight impact on scrolling performance. In such scenarios, opt out of this behavior by setting this config to
false.Has a corresponding runtime updateTimelineContextOnScroll property.
-
This config is used with PanelCollapserOverlay to programmatically control the visibility of the panel's body. In this mode of collapse, the body of a collapsed panel is a floating overlay. Setting this config to
truewill show this element, whilefalsewill hide it. -
Generic resource image, used when provided
imageUrlorimagefields or path calculated from resource name are all invalid. If left blank, resource name initials will be shown when no image can be loaded. -
Resource image extension, used when creating image path from resource name.
-
Set to
falseif you don't want to allow events overlapping times for any one resource (defaults totrue).Note that toggling this at runtime won't affect already overlapping events.Has a corresponding runtime allowOverlap property.
-
Deprecated:
7.0.0 Deprecated
enableEventAnimations. Usetransition.changeEventinsteadSet to
falseif you don't want event bar DOM updates to animate.Has a corresponding runtime enableEventAnimations property.
-
Field from EventModel displayed as text in the bar when rendering
-
thisreference for the eventRenderer function -
Set to true for child nodes in a tree store to inherit their parent´s
eventColorHas a corresponding runtime inheritEventColor property.
-
Configure UI transitions for various actions in the grid.
- insertRecord : Boolean
Transition record insertions
- removeRecord : Boolean
Transition record removals
- toggleColumn : Boolean
Transition column visibility changes
- expandCollapseColumn : Boolean
Transition parent/group column expand/collapse
- toggleRegion : Boolean
Transition region expand/collapse
- toggleTreeNode : Boolean
Transition tree node expand/collapse
- toggleGroup : Boolean
Transition group expand/collapse
- filterRemoval : Boolean
Transition row removals caused by filtering (under specific conditions)
- removeEvent : Boolean
Transition event removals
- changeEvent : Boolean
Transition event changes
Has a corresponding runtime transition property.
- insertRecord : Boolean
-
Overridden to not auto create a store at the Scheduler level. The store is the ResourceStore of the backing project
Has a corresponding runtime store property.
-
Configuration values for the ScrollManager class on initialization. Returns the ScrollManager at runtime.
Has a corresponding runtime scrollManager property.
-
The class to instantiate to use as the scrollable. Defaults to Scroller.
-
Configure as
falseto preserve selection when clicking the empty schedule area. -
Configure as
trueto deselect a selected event upon click. -
Set to
trueto allow text selection in the grid cells. Note, this cannot be used simultaneously with theRowReorderfeature. -
Configure as
true, or set property totrueto disable event selection. -
Configure as
true, or set property totrueto highlight dependent events as well when selecting an event. -
Configure as
true, or set property totrueto highlight dependent events as well when selecting an event. -
This flag controls whether Scheduler should preserve its selection of events when loading a new dataset (if selected event ids are included in the newly loaded dataset).
-
Set to
falseto not select the row/resource when clicking the empty area in a time axis cell.Has a corresponding runtime selectResourceOnScheduleClick property.
-
Configure as
trueto triggerselectionChangewhen removing a selected event/assignment. -
Set to
trueto not get a warning when calling getState when there is a column configured without anid. But the recommended action is to always configure columns with anidwhen using states. -
Set to
trueto force the time columns to fit to the available space (horizontal or vertical depends on mode). Note that setting suppressFit totrue, will disableforceFitfunctionality. Zooming cannot be used whenforceFitis set.Has a corresponding runtime forceFit property.
-
When set, the text in the major time axis header sticks in the scrolling viewport as long as possible.
-
Set to
trueto prevent auto calculating of a minimal tickSize to always fit the content to the screen size. Setting this property ontruewill disable forceFit behaviour.Has a corresponding runtime suppressFit property.
-
The backing view model for the visual representation of the time axis. Either a real instance or a simple config object.
Has a corresponding runtime timeAxisViewModel property.
-
A valid JS day index between 0-6 (0: Sunday, 1: Monday etc.) to be considered the start day of the week. When omitted, the week start day is retrieved from the active locale class.
-
Set to
trueto ignore reacting to DOM events (mouseover/mouseout etc) while scrolling. Useful if you want to maximize scroll performance. -
When true, some features will start a project transaction, blocking the project queue, suspending store events and preventing UI from updates. It behaves similar to instantUpdate set to
false. Setfalseto not use project queue. -
Deprecated:
7.0.0 Deprecated
animateTreeNodeToggle. Usetransition.toggleTreeNodeinsteadWhen the Tree feature is in use and the Store is a tree store, this config may be set to
trueto visually animate branch node expand and collapse operations.This is not supported in Scheduler and GanttHas a corresponding runtime animateTreeNodeToggle property.
-
The
bottomCSS absolute position for this widget. If specified, the widget is implicitly configured as positionable. -
Programmatic control over which column to start in when used in a grid layout.
Has a corresponding runtime column property.
-
The
inset-inline-startCSS absolute position for this widget. If specified, the widget is implicitly configured as positionable. -
Set this config to
falseto disable batching DOM updates on animation frames for this widget. This has the effect of synchronously updating the DOM when configs affecting the rendered DOM are modified. Depending on the situation, this could simplify code while increasing time spent updating the DOM. -
The
inset-inline-endCSS absolute position for this widget. If specified, the widget is implicitly configured as positionable. -
Programmatic control over how many columns to span when used in a grid layout.
Has a corresponding runtime span property.
-
The
topCSS absolute position for this widget. If specified, the widget is implicitly configured as positionable. -
Maximum number of interpolated zoom levels to generate between each pair of presets when using smooth zooming. This limits the total number of smooth zoom levels and prevents excessively long zooming chains when presets have a large tick size difference.
Has a corresponding runtime maxZoomSteps property.
-
Integer number indicating the size of timespan during zooming. When zooming, the timespan is adjusted to make the scrolling area
visibleZoomFactortimes wider than the timeline area itself. Used in zoomToSpan and zoomToLevel functions. -
Whether the originally rendered timespan should be preserved while zooming. By default, it is set to
false, meaning the timeline panel will adjust the currently rendered timespan to limit the amount of HTML content to render. When setting this option totrue, be careful not to allow to zoom a big timespan in seconds resolution for example. That will cause a lot of HTML content to be rendered and affect performance. You can use minZoomLevel and maxZoomLevel config options for that. -
If
true, you can zoom in and out on the time axis using CTRL + mouse wheel. -
If
true, you can zoom to a time span by double-clicking a time axis cell.
Properties
Properties are getters/setters or publicly accessible variables on this class-
Identifies an object as an instance of CrudManagerView class, or subclass thereof.
-
Identifies an object as an instance of Delayable class, or subclass thereof.
-
Identifies an object as an instance of Describable class, or subclass thereof.
-
Identifies an object as an instance of EventSelection class, or subclass thereof.
-
Identifies an object as an instance of Events class, or subclass thereof.
-
Identifies an object as an instance of GridElementEvents class, or subclass thereof.
-
Identifies an object as an instance of GridFeatures class, or subclass thereof.
-
Identifies an object as an instance of GridResponsive class, or subclass thereof.
-
Identifies an object as an instance of GridSelection class, or subclass thereof.
-
Identifies an object as an instance of GridState class, or subclass thereof.
-
Identifies an object as an instance of GridSubGrids class, or subclass thereof.
-
Identifies an object as an instance of KeyMap class, or subclass thereof.
-
Identifies an object as an instance of Localizable class, or subclass thereof.
-
Identifies an object as an instance of Pluggable class, or subclass thereof.
-
Identifies an object as an instance of ProjectConsumer class, or subclass thereof.
-
Identifies an object as an instance of RTL class, or subclass thereof.
-
Identifies an object as an instance of RecurringEvents class, or subclass thereof.
-
Identifies an object as an instance of Scheduler class, or subclass thereof.
-
Identifies an object as an instance of SchedulerDom class, or subclass thereof.
-
Identifies an object as an instance of SchedulerDomEvents class, or subclass thereof.
-
Identifies an object as an instance of SchedulerEventRendering class, or subclass thereof.
-
Identifies an object as an instance of SchedulerRegions class, or subclass thereof.
-
Identifies an object as an instance of SchedulerResourceRendering class, or subclass thereof.
-
Identifies an object as an instance of SchedulerScroll class, or subclass thereof.
-
Identifies an object as an instance of SchedulerState class, or subclass thereof.
-
Identifies an object as an instance of SchedulerStores class, or subclass thereof.
-
Identifies an object as an instance of State class, or subclass thereof.
-
Identifies an object as an instance of TimelineDateMapper class, or subclass thereof.
-
Identifies an object as an instance of TimelineDomEvents class, or subclass thereof.
-
Identifies an object as an instance of TimelineEventRendering class, or subclass thereof.
-
Identifies an object as an instance of TimelineScroll class, or subclass thereof.
-
Identifies an object as an instance of TimelineSmoothZoom class, or subclass thereof.
-
Identifies an object as an instance of TimelineState class, or subclass thereof.
-
Identifies an object as an instance of TimelineViewPresets class, or subclass thereof.
-
Identifies an object as an instance of TimelineZoomable class, or subclass thereof.
-
Identifies an object as an instance of Toolable class, or subclass thereof.
-
Identifies an object as an instance of TransactionalFeatureMixin class, or subclass thereof.
-
A class property getter for the default values of internal properties for this class.
-
Predefined event colors, useful in combos etc.
-
Predefined event styles , useful in combos etc.
-
Returns an array containing all existing Widgets. The returned array is generated by this call and is not an internal structure.
-
This property yields
trueif the currently focused element has been reached through other means than mouse click. If theactiveElementmatches:focus-visible. -
Get/set the recomposeAsync config for all widgets. Setting this value will set the config for all existing widgets and will be the default value for newly created widgets. Set this value to
nullto disable the default setting for new widgets while leaving existing widgets unaffected.Has a corresponding recomposeAsync config.
-
Checks if scheduler is in horizontal mode
-
Checks if scheduler is in vertical mode
-
Get/set end date limit of the timeline. Actions such as timeline scrolling, all types of timeline zooms and shifts will respect this limit.
Has a corresponding maxDate config.
-
Get/set start date limit of the timeline. Actions such as timeline scrolling, all types of timeline zooms and shifts will respect this limit.
Has a corresponding minDate config.
-
Get mode (horizontal/vertical)
Has a corresponding mode config.
-
Preserve the grid's vertical scroll position when changesets are applied, as in the case of remote changes, or when stores are configured with syncDataOnLoad.
Has a corresponding preserveScroll config.
-
Get the PresetStore created for the Scheduler, or set an array of ViewPreset config objects.
Has a corresponding presets config.
-
An object containing the SubGrid region instances, indexed by subGrid id ('locked', normal'...)
-
Get/set the current view preset
Has a corresponding viewPreset config.
-
An empty array that can be used as a default value.
-
An empty object that can be used as a default value.
-
Identifies an object as an instance of Container class, or subclass thereof.
-
Identifies an object as an instance of Grid class, or subclass thereof.
-
Identifies an object as an instance of GridBase class, or subclass thereof.
-
Identifies an object as an instance of LoadMaskable class, or subclass thereof.
-
Identifies an object as an instance of Panel class, or subclass thereof.
-
Identifies an object as an instance of Scheduler class, or subclass thereof.
-
Identifies an object as an instance of SchedulerBase class, or subclass thereof.
-
Identifies an object as an instance of TimelineBase class, or subclass thereof.
-
Identifies an object as an instance of Widget class, or subclass thereof.
-
Number of columns to use in a grid layout. Applied as
grid-template-columns: repeat(n, auto). Also applies theb-columnsCSS class to the container.Has a corresponding gridColumns config.
-
This property is
trueuntil the container's initialitemsconfig has been processed. This property is set tofalseby theupdateItemsmethod. -
Get widgets elements dataset or assign to it
Has a corresponding dataset config.
-
Get this widget's encapsulating HTMLElement, which is created along with the widget but added to DOM at render time.
Has a corresponding element config.
-
Get this widget's primary focus holding element if this widget is itself focusable, or contains focusable widgets.
-
Returns an object describing the focus and keyboard navigation aspects of this widget's focusElement.
-
Returns this widget's focusElement if that element can currently be given focus (e.g., this widget is not disabled, or hidden).
-
This property is set to
trueafter processing the initial paint for the widget. It remainsfalseduring the initial paint. The intended use for this flag is to avoid processing that will be handled by the first paint (similar to not firing events during the widget's initial configuration). If this field istrue, the initial paint has already taken place, otherwise, it has yet to run. This field differs fromisPaintedwhich checks that the widget's element is attached to the DOM. -
Get/set widgets id
Has a corresponding id config.
-
Element (or element id) to insert this widget before. If provided, appendTo config is ignored.
Has a corresponding insertBefore config.
-
Element (or element id) to append this widget element to, as a first child. If provided, appendTo config is ignored.
Has a corresponding insertFirst config.
-
The child element which scrolls if any. This means the element used by the scrollable.
-
Returns the
DomClassListfor this widget's class. This object should not be mutated. -
Get/set widgets elements style. The setter accepts a cssText string or a style config object, the getter always returns a CSSStyleDeclaration
Has a corresponding style config.
-
Get/set the event store instance of the backing project.
Has a corresponding assignmentStore config.
-
Get/set assignments, applies to the backing project's AssignmentStore.
Has a corresponding assignments config.
-
Get/set the CrudManager instance
Has a corresponding crudManager config.
-
Get/set dependencies, applies to the backing projects DependencyStore.
Has a corresponding dependencies config.
-
Get/set the dependencies store instance of the backing project.
Has a corresponding dependencyStore config.
-
Get/set the event store instance of the backing project.
Has a corresponding eventStore config.
-
Get/set events, applies to the backing project's EventStore.
Has a corresponding events config.
-
Get/set the resource store instance of the backing project
Has a corresponding resourceStore config.
-
Get/set the resource time ranges store instance for ResourceTimeRanges feature.
Has a corresponding resourceTimeRangeStore config.
-
resourceTimeRanges : ResourceTimeRangeModel[]/ResourceTimeRangeModelConfig[]NON-LAZY-LOADSchedulerStores
Inline resource time ranges, will be loaded into an internally created store if ResourceTimeRanges is enabled.
Has a corresponding resourceTimeRanges config.
-
Get/set resources, applies to the backing project's ResourceStore.
Has a corresponding resources config.
-
Get/set the time ranges store instance or config object for TimeRanges feature.
Has a corresponding timeRangeStore config.
-
Get/set time ranges, applies to the backing project's TimeRangeStore.
Has a corresponding timeRanges config.
-
The currently hovered timeline context. This is updated as the mouse or pointer moves over the timeline.
-
Returns the center date of the currently visible timespan of scheduler.
-
Returns the date or ranges of included dates as an array. If there is only one significant date, the array will have only one element. Otherwise, a range of dates is returned as a two-element array with
[0]being thestartDateand[1]thelastDate. -
A DateHelper format string/function to use to create date output for view descriptions.
Has a corresponding dateFormat config.
-
A string used to separate start and end dates in the descriptionFormat.
Has a corresponding dateSeparator config.
-
The textual description generated by the descriptionRenderer if present, or by the view's date (or date range if it has a range) and the descriptionFormat.
-
Returns content height calculated from row manager
-
Override to attach the keyMap keydown event listener to something else than this.element
-
Override to make keyMap resolve subcomponent actions to something else than this.features.
-
Get/set this widget's
align-selfflexbox setting. This may be set to modify how this widget is aligned within the cross axis of a flexbox layout container.Has a corresponding alignSelf config.
-
Body height
-
Controls whether the panel is collapsed (the body of the panel is hidden while only the header is visible). Only valid if the panel is collapsible.
Has a corresponding collapsed config.
-
This property is
trueif the panel is currently collapsing. -
This property is
trueif the panel is currently either collapsing or expanding. -
This property is
trueif the panel is currently expanding. -
Header height
-
Get element's
offsetHeightor sets itsstyle.height, or specified height if element no created yet.Has a corresponding height config.
-
Get element's margin property. This may be configured as a single number or a
TRBLformat string. numeric-only values are interpreted as pixels.Has a corresponding margin config.
-
Accessor to the Scroller which can be used to both set and read scroll information.
Has a corresponding scrollable config.
-
Get elements
offsetWidthor sets itsstyle.width, or specified width if element not created yet.Has a corresponding width config.
-
Returns a copy of the full configuration which was used to configure this object.
-
This property is set to
truebefore theconstructorreturns. -
This property is set to
trueon entry to the destroy method. It remains on the objects after returning fromdestroy(). If isDestroyed istrue, this property will also betrue, so there is no need to test for both (for example,comp.isDestroying || comp.isDestroyed). -
By default, when the
EventStore(and similar stores) is lazy loading, a loading indicator will be displayed just below the timeline headers. Set this tofalseto prevent this indicator being shown.Has a corresponding lazyLoadingIndicator config.
-
How to align milestones in relation to their startDate. Only applies when using a
milestoneLayoutModeother thandefault. Valid values are:- start
- center (default)
- end
Has a corresponding milestoneAlign config.
-
Factor representing the average char width in pixels used to determine milestone width when configured with
milestoneLayoutMode: 'estimate'.Has a corresponding milestoneCharWidth config.
-
Position of the milestone text:
- 'inside' - for short 1-char text displayed inside the diamond, not applicable when using milestoneLayoutMode)
- 'outside' - for longer text displayed outside the diamond, but inside it when using milestoneLayoutMode
- 'always-outside' - outside even when combined with milestoneLayoutMode
Has a corresponding milestoneTextPosition config.
-
Get id assigned by user (not generated id)
-
Set to
falseto crop text in grid cells without ellipsis (...). When enabled, cells containing pure usedisplay : block, instead ofdisplay : flexto allow ellipsis to work. NOTE Only supported in browsers that support:has()CSS selectorHas a corresponding cellEllipsis config.
-
Set to
falseto not show column lines. End result might be overruled by/differ between themes.Has a corresponding columnLines config.
-
Get/set element's disabled state. Set to
'inert'to also set theinertDOM attribute.Has a corresponding disabled config.
-
Set to
trueto listen for CTRL-Z (CMD-Z on Mac OS) keyboard event and trigger undo (redo when SHIFT is pressed). Only applicable when using a StateTrackingManager.Has a corresponding enableUndoRedoKeys config.
-
true if no id was set, will use generated id instead (widget1, ...). Toggle automatically on creation
-
Set to
trueto hide the column header elementsHas a corresponding hideHeaders config.
-
The currently hovered grid cell
-
Maximum duration (in milliseconds) for the initial animation controlled by useInitialAnimation.
Has a corresponding initialAnimationDuration config.
-
Returns
trueif engine is in a stable calculated state,falseotherwise. -
Get the global LocaleHelper
-
Get the global LocaleManager
-
Time in ms until a longpress is triggered
Has a corresponding longPressTime config.
-
Override this method to provide a custom sort function to sort any overlapping events. See overlappingEventSorter for more details.
Has a corresponding overlappingEventSorter config.
-
Map of applied plugins
Has a corresponding plugins config.
-
Get/set the scheduler's read-only state. When set to
true, any UIs for modifying data are disabled.Has a corresponding readOnly config.
-
Get currently used responsive level (as string)
-
Set to
falseto not show row lines. End result might be overruled by/differ between themes.Has a corresponding rowLines config.
-
Animation transition duration in milliseconds.
Has a corresponding transitionDuration config.
-
By default, scrolling the schedule will update the timelineContext to reflect the new currently hovered context. When displaying a large number of events on screen at the same time, this will have a slight impact on scrolling performance. In such scenarios, opt out of this behavior by setting this config to
false.Has a corresponding updateTimelineContextOnScroll config.
-
Get the Row currently displayed furthest down.
-
Get the topmost visible grid row
-
Get the last visible grid row
-
Get the Row that is currently displayed at top.
-
Set to
falseif you don't want to allow events overlapping times for any one resource (defaults totrue).Note that toggling this at runtime won't affect already overlapping events.Has a corresponding allowOverlap config.
-
Deprecated:
7.0.0 Deprecated
enableEventAnimations. Usetransition.changeEventinsteadSet to
falseif you don't want event bar DOM updates to animate.Has a corresponding enableEventAnimations config.
-
Returns
trueif any of the events/tasks or feature injected elements (such as ResourceTimeRanges) are within the timeAxis -
Gets the count of events within a date range between current
startDateandendDate. -
Set to true for child nodes in a tree store to inherit their parent´s
eventColorHas a corresponding inheritEventColor config.
-
The last day that is included in the date range. This is different than endDate since that date is not inclusive. For example, an
endDateof 2022-07-21 00:00:00 indicates that the time range ends at that time, and so 2022-07-21 is not in the range. In this example,lastDatewould be 2022-07-20 since that is the last day included in the range. -
Get resource column width. Only applies to vertical mode. To set it, assign to
scheduler.resourceColumns.columnWidth. -
Use it to manipulate resource column properties at runtime.
Has a corresponding resourceColumns config.
-
Configuration values for the ScrollManager class on initialization. Returns the ScrollManager at runtime.
Has a corresponding scrollManager config.
-
Get/set vertical scroll
-
Set to
falseto not select the row/resource when clicking the empty area in a time axis cell.Has a corresponding selectResourceOnScheduleClick config.
-
The assignments which are selected.
-
In cell selection mode, this will get the cell selector for the (last) selected cell. Set to an available cell selector to select only that cell. Or use selectCell() instead.
-
CSS selector for the currently selected cell. Format is "[data-index=index] [data-column-id=column]".
-
In cell selection mode, this will get the cell selectors for all selected cells. Set to an array of available cell selectors. Or use selectCells() instead.
-
The events which are selected.
-
The last selected record. Set to select a row or use Grid#selectRow. Set to null to deselect all
-
Returns
trueif this instance implements the State interface. -
Returns
trueif this instance is ready to participate in state activities. -
Gets or sets scheduler's state. Check out SchedulerState mixin and GridState for more details.
-
Returns an object whose truthy keys are the config properties to include in this object's state.
-
Set to
trueto force the time columns to fit to the available space (horizontal or vertical depends on mode). Note that setting suppressFit totrue, will disableforceFitfunctionality. Zooming cannot be used whenforceFitis set.Has a corresponding forceFit config.
-
Returns the partnered timelines.
- To add a new partner see addPartner method.
- To remove existing partner see removePartner method.
-
Set to
trueto prevent auto calculating of a minimal tickSize to always fit the content to the screen size. Setting this property ontruewill disable forceFit behaviour.Has a corresponding suppressFit config.
-
A backing data store of 'ticks' providing the input date data for the time axis of timeline panel.
Has a corresponding timeAxis config.
-
Returns the TimeAxisColumn instance
-
Returns the subGrid containing the time axis
-
Returns the html element for the subGrid containing the time axis
-
The internal view model, describing the visual representation of the time axis.
Has a corresponding timeAxisViewModel config.
-
Returns
trueif queue is supported and enabled -
Deprecated:
7.0.0 Deprecated
animateTreeNodeToggle. Usetransition.toggleTreeNodeinsteadWhen the Tree feature is in use and the Store is a tree store, this config may be set to
trueto visually animate branch node expand and collapse operations.This is not supported in Scheduler and GanttHas a corresponding animateTreeNodeToggle config.
-
Determines visibility by checking if the Widget is hidden, or any ancestor is hidden and that it has an element which is visible in the DOM
-
Programmatic control over which column to start in when used in a grid layout.
Has a corresponding column config.
-
Returns
trueif this class usescompose()to render itself. -
This widget's twin that is placed in an overflow menu when this widget has been hidden by its owner, typically a Toolbar due to overflow. The
overflowTwinis created lazily by ensureOverflowTwin. -
Programmatic control over how many columns to span when used in a grid layout.
Has a corresponding span config.
-
Get this Widget's next sibling in the parent Container, or, if not in a Container, the next sibling widget in the same parentElement.
-
Get this Widget's parent when used as a child in a Container,
-
Get this Widget's previous sibling in the parent Container, or, if not in a Container, the previous sibling widget in the same parentElement.
-
An object which contains a map of descendant widgets keyed by their ref. All descendant widgets will be available in the
widgetMap. -
Get/set the maxZoomLevel value
Has a corresponding maxZoomLevel config.
-
Maximum number of interpolated zoom levels to generate between each pair of presets when using smooth zooming. This limits the total number of smooth zoom levels and prevents excessively long zooming chains when presets have a large tick size difference.
Has a corresponding maxZoomSteps config.
-
Sets the minZoomLevel value
Has a corresponding minZoomLevel config.
Functions
Functions are methods available for calling on the class-
This optional class method is called when a class is mixed in using the mixin() method.
-
Interface method used by an encapsulating Calendar view to implement the "next" button.
-
Interface method used by an encapsulating Calendar view to implement the "prev" button.
-
Clear caches, forces all calls to fromCache to requery dom. Called on render/rerender.
-
Applies the start and end date to each event store request (formatted in the same way as the start date field, defined in the EventStore Model class).
-
Assignment change listener to remove events from selection which are no longer in the assignments.
-
Mouse listener to update selection.
-
Internal function used to hook destroy() calls when using thisObj
-
Internal function used restore hooked destroy() calls when using thisObj
-
Auto detaches listeners registered from start, if set as detachable
-
Init listeners for a bunch of dom events. All events are handled by handleEvent().
-
Internal function used to run a callback function after an event is triggered
-
Removes all listeners registered to this object by the application.
-
Remember scroll position when store is about to apply a changeset
-
Creates a fake subgrid with one row and measures its height. Result is used as rowHeight.
-
Handler for global theme change event (triggered by shared.js). Remeasures row height.
-
Recalculates virtual scrollbars widths and scrollWidth
-
Restore scroll position. Go to the topmost row formerly in the view that is still present in the dataset.
-
Adds extra classes to the Grid element after it's been configured. Also iterates through features, thus ensuring they have been initialized.
-
Used internally to get a range of cell selectors from a start selector to an end selector.
-
Collapse all groups. This function is exposed on Grid and can thus be called as
grid.collapseAll()Added by the Group feature, only available when that feature is enabled.
-
Expand all groups. This function is exposed on Grid and can thus be called as
grid.expandAll()Added by the Group feature, only available when that feature is enabled.
-
Called on keyMapElement keyDown
-
Called by the Base constructor after all configs have been applied.
-
Find closes bigger level, aka level we want to use.
-
Resumes CSS transitions after a row / event has been updated
-
unmaskBody( ) Grid
Hide the load mask.
-
Collapse the panel.
-
Expand the panel.
-
Template method which may be implemented in subclasses to initialize any plugins. This method is empty in the
Pluggablebase class. -
Rerenders all grid headers
-
Rerenders the grids rows, headers and footers, completely replacing all row elements with new ones
-
renderRows( ) Grid
Rerenders all grid rows, completely replacing all row elements with new ones
-
Internal function to get an array of assignment instances from:
- Single event or assignment instance
- Array of event or assignment instances
- Single event or assignment id (depending on
usesSingleAssignment) - Array of event or assignment ids (depending on
usesSingleAssignment)
-
Relays keydown events as eventkeydown if we have a selected task.
-
Relays keyup events as eventkeyup if we have a selected task.
-
Refreshes committed events, to remove dirty/committing flag. CSS is added
-
Adds the committing flag to changed events before commit.
-
Listener to the batchedUpdate event which fires when a field is changed on a record which is batch updating. Occasionally UIs must keep in sync with batched changes. For example, the EventResize feature performs batched updating of the startDate/endDate and it tells its client to listen to batchedUpdate.
-
Calls appropriate functions for current event layout when the event store is modified.
-
Scrolls an unrendered event into view. Internal function used from #scrollResourceEventIntoView.
-
Deselects all events and assignments.
-
Triggered from Grid view when the store changes. This might happen if store events are batched and then resumed. Deselects all records which have been removed.
-
Triggered from Grid view when the id of a record has changed. Update the collection indices.
-
Triggered from Grid view when records get removed from the store. Deselects all records which have been removed.
-
Triggered from Grid view when all records get removed from the store. Deselects all records.
-
This selects all rows. If store is filtered, this will merge the selection of all visible rows with any selection made prior to filtering.
-
Hooks up crud manager listeners
-
Hooks up data store listeners
-
Refreshes rows when data is added to the store
-
Hides load mask after a load request ends either in success or failure
-
Shows a load mask while the connected store is loading
-
Responds to exceptions signalled by the store
-
Rerenders a cell if a record is updated in the store
-
Overrides initScroll from Grid, listens for horizontal scroll to do virtual event rendering
-
Refreshes the grid with transitions enabled.
-
Adds listeners for DOM events for the scheduler and its events. Which events is specified in Scheduler#schedulerEvents.
-
Relays mouseout events as eventmouseleave if out from rendered event. Also removes Scheduler#overScheduledEventClass from the hovered element.
-
Relays mouseover events as eventmouseenter if over rendered event. Also adds Scheduler#overScheduledEventClass to the hovered element.
-
This handles the scheduler being scrolled below the mouse by trackpad or keyboard events. The context, if present needs to be recalculated.
-
Builds the smooth zoom index - a flat array of zoom levels between presets.
-
Cancels any in-progress smooth zoom animation.
-
Refreshes the store tree grouping by re-applying the current transformation.
// Refresh groups grid.refreshGroups();Added by the TreeGroup feature, only available when that feature is enabled.
-
This method is called following an update to the widget's rendered DOM.
-
Disable the widget
-
Enable the widget
-
Unmask the widget
-
Sets widths and heights for headers, rows and other parts of the grid as needed
Events
Events are triggered for certain actions in this class and can be listened for to react to those actions in your code-
Fired when dependencies are rendered
Added by the Dependencies feature, only available when that feature is enabled.
-
Fired when a FillHandle drag operation is aborted.
Added by the FillHandle feature, only available when that feature is enabled.
-
This event is fired after a widget's elements have been synchronized due to a direct or indirect call to recompose, if this results in some change to the widget's rendered DOM elements.
-
Fires when un-splitting the Grid.
Added by the Split feature, only available when that feature is enabled.
Event handlers
Event handlers are callbacks called as a result of certain actions in this class-
Called when dependencies are rendered
Added by the Dependencies feature, only available when that feature is enabled.
-
Called when a FillHandle drag operation is aborted.
Added by the FillHandle feature, only available when that feature is enabled.
-
This event is called after a widget's elements have been synchronized due to a direct or indirect call to recompose, if this results in some change to the widget's rendered DOM elements.
-
Called when un-splitting the Grid.
Added by the Split feature, only available when that feature is enabled.
Source path
Scheduler/view/Scheduler.js- Localizable
- Delayable
- Events
- LoadMaskable
- Pluggable
- State
- KeyMap
- RTL
- Toolable
- GridElementEvents
- GridFeatures
- GridResponsive
- GridSelection
- GridState
- GridSubGrids
- CrudManagerView
- LazyLoadView
- ProjectConsumer
- Describable
- EventNavigation
- EventSelection
- RecurringEvents
- SchedulerDom
- SchedulerDomEvents
- SchedulerEventRendering
- SchedulerRegions
- SchedulerScroll
- SchedulerState
- SchedulerStores
- TimelineDateMapper
- TimelineDomEvents
- TimelineEventRendering
- TimelineScroll
- TimelineSmoothZoom
- TimelineState
- TimelineViewPresets
- TimelineZoomable
- TransactionalFeatureMixin
- CellCopyPaste
- CellEdit
- CellMenu
- CellTooltip
- Charts
- ColumnAutoWidth
- ColumnDragToolbar
- ColumnPicker
- ColumnRename
- ColumnReorder
- ColumnResize
- FillHandle
- Filter
- FilterBar
- Group
- HeaderMenu
- MergeCells
- PinColumns
- QuickFind
- RegionResize
- RowCopyPaste
- RowEdit
- RowExpander
- Search
- Sort
- StickyCells
- Stripe
- Tree
- TreeGroup
- AIFilter
- FileDrop
- AI
- ColumnLines
- Dependencies
- DependencyEdit
- DependencyMenu
- EventCopyPaste
- EventDrag
- EventDragCreate
- EventDragSelect
- EventEdit
- EventFilter
- EventMenu
- EventNonWorkingTime
- EventResize
- EventTooltip
- GroupSummary
- HeaderZoom
- Labels
- LockRows
- NonWorkingTime
- Pan
- ResourceColumnReorder
- ResourceMenu
- ResourceTimeRanges
- RowReorder
- RowResize
- ScheduleContext
- ScheduleMenu
- ScheduleTooltip
- ScrollButtons
- SimpleEventEdit
- Split
- StickyEvents
- Summary
- TimeAxisHeaderMenu
- TimeRanges
- TimeSelection
- TreeSummary
- ExcelExporter
- PdfExport