Filtering, History, And Application State
Filtering and search
Section titled “Filtering and search”Core RevoGrid filters are evaluated against canonical cards and the host’s captured table columns. Kanban then composes its lightweight search and predicate:
grid.kanban = { ...config, filter: { query: searchInput.value, fields: ['title', 'owner', 'labels'], predicate: (card) => !card.archived, },};A card must pass all three layers: RevoGrid filters, query matching, and the predicate. Search defaults to the configured card title field.
Header counts expose visible and total cards when filters differ. WIP limits always count all canonical cards.
Undo and redo
Section titled “Undo and redo”Kanban coordinates with EventManagerPlugin and HistoryPlugin. Each successful move or editor CRUD action creates one ID-based operation record containing only inserted, updated, or deleted cards. Undo/redo is replayed through Kanban rather than against projected lane rows, including source-length changes.
History is not cleared merely because filtering, sorting, or board projection refreshes. Replacing grid.source with an externally authored dataset clears Kanban history so an old move cannot overwrite newer host data.
Persistence ownership
Section titled “Persistence ownership”Listen to kanbancardmove and persist event.detail.changedCards in one transaction. This atomic list includes the moved cards and any destination-bucket cards whose ranks changed during a rebalance. event.detail.cards contains only the cards explicitly moved, while rebalancedCardIds identifies the subset re-ranked as part of the commit.
Use beforekanbancardmove for asynchronous-policy caches or synchronous authorization checks. Call preventDefault() to cancel before local state changes.
Switching views
Section titled “Switching views”// Table to Kanbangrid.kanban = kanbanConfig;
// Kanban to tablegrid.kanban = false;Disabling Kanban restores the latest canonical source, latest host column definitions, and relevant table state. Sorting is not used for card order while the board is active; orderField remains authoritative. Re-enabling projects the current source again.