Kanban Limitations
Kanban manages board projection and interaction. Your application supplies authorization rules and the backend used by the persistence adapter.
| Area | Behavior |
|---|---|
| Toolbar and views | Install KanbanToolbarPlugin for card actions, search, field filters, history and board/table controls. Hosts can also set grid.kanban directly. |
| Card forms | The packaged editor is installed automatically. Configure its fields, intercept requests, or set grid.kanbanCardEditorDialog = false to supply your own UI. Use kanban.persistence to save canonical changes. |
| Remote data | kanban.remote loads one whole-board offset/limit stream. A known total plus placement placeholder enables fixed Infinity-style indexed skeleton chunks; otherwise pages append. Indexed create/delete must happen on the server followed by refreshRemote() so offsets stay stable. Filtering stays local, and the application owns persistence and server-wide validation. |
| External drag | Cross-board, cross-window, file, and third-party drag targets are not supported. |
| Swimlane order | Configuration-owned; swimlanes cannot be drag-reordered. |
| Column order | Uses RevoGrid’s core column move behavior. Pointer/touch capabilities follow that plugin; programmatic ordering remains available. |
| Sorting | Table sorting does not reorder board cards. orderField is authoritative while Kanban is active. |
| Translation packs | English is bundled; applications provide partial or complete translated labels. |
| Asynchronous validation | beforekanbancardmove cancellation is synchronous. For remote approval, configure persistence.prepareMove and call moveCardsAsync; pointer, keyboard, and context-menu moves use that path automatically. |
Card pointer interaction supports mouse, pen, and touch. Keyboard card movement uses the focusable managed card shell and does not depend on browser-native HTML drag-and-drop.
Unknown workflow values use the Unmapped column by default, while invalid or duplicate card identities remain visible but immovable. Treat diagnostics as data-quality errors rather than hiding affected records.
Kanban remote loading and InfinityScrollPlugin share the same generic loader
contract and fixed indexed chunks. Kanban additionally needs a lightweight
placement placeholder because a global total cannot identify an unloaded
card’s workflow column or swimlane. Do not enable both loaders on the same
Kanban grid: Kanban must retain ownership of the projected row provider while
its remote controller owns canonical cards. If multiple row-source owners are
configured, the first active owner remains enabled and the later plugin
disables itself with a console warning.