Skip to main content

Lists

Lists are the primary way users browse and interact with records. As a developer, you control how lists look and behave through field options, cell renderers, and list configuration.

List formats

The grid engine supports 18 representation formats:

FormatDescription
TableStandard data grid with sortable columns
GanttTimeline visualization with drag-to-reschedule
BoardsKanban-style columns grouped by a lookup field
CalendarDate-based event view
Pivot tablesCross-tabulation with aggregations
Charts (Vega)Custom data visualizations
CardsCard layout for visual browsing
Word cloudText frequency visualization
Google MapsGeographic data on a map
File foldersFile and folder navigation view
FeedActivity stream layout
ResourcesResource allocation view
Quick editStreamlined inline editing
HeatmapColor-coded data density view

Cell renderers

Cell renderers control how field values appear in grid columns. Configure them using the gridview_renderer and plain_renderer field options.

Built-in renderers (20+)

RendererUse case
circle_percentProgress circles (0--100%)
indicatorStatus indicators with icons and colors
rich_text_lineSingle-line rich text preview
colorful-lookupLookup values with custom colors
avatar-imageUser avatar thumbnails
work-progress-barProgress bars
State-colored badgesLookup fields with per-entry color coding
Boolean checkboxesYes/no toggle display
CurrencyFormatted monetary values with prefix/suffix
SparklinesInline mini-charts
Priority indicatorsVisual priority levels
Linked recordsClickable cross-record references
File previewsAttachment thumbnails
Comments countComment badge
HTML contentRendered HTML snippets

Configuring renderers

Set renderers in your field definition using field options:

{
name: "progress",
type: "number",
options: {
gridview_renderer: "circle_percent",
plain_renderer: "work-progress-bar"
}
}

The gridview_renderer controls the list/grid cell appearance. The plain_renderer controls the read-only form view appearance.

Lookup entry formatting

Customize colors, icons, and text colors for individual lookup values:

{
name: "status",
type: "lookup",
options: {
lookup_entries_formatting: {
open: { color: "#4CAF50", icon: "circle", textColor: "#fff" },
closed: { color: "#9E9E9E", icon: "check", textColor: "#fff" },
blocked: { color: "#F44336", icon: "warning", textColor: "#fff" }
}
}
}

Localize lookup entry captions per language:

{
options: {
lookup_entries_localization: {
open: { en: "Open", uk: "Відкрито", ru: "Открыто" }
}
}
}

Filtering

Relational expression syntax

Grid filters use a relational expression language:

state="open" AND priority>3
creation_date>="2026-01-01" AND assignee="John Smith"
(state="open" OR state="in_progress") AND priority>=2

Faceted filtering

Facets provide sidebar checkbox filters with record counts:

  • Lookup facets - single-select checkboxes
  • Multi-select facets - multiple selections
  • Date range facets - calendar picker for date fields
  • Auto-generated facets - created automatically from lookup and user fields, collapsed by default
  • User avatar facets - show user photos next to names

Facets and the grid filter sync bidirectionally - changing one updates the other. Active filters display as chips above the grid.

Quick filter

Three search modes are available:

  1. Visible fields - search only columns currently shown
  2. Include files/comments - extend search to attachments and comments
  3. Everywhere - full-text search across all fields

Sorting and grouping

Multi-level sorting

Sort by multiple columns simultaneously. Set default sort order in list configuration.

Grouping

Group rows by any field with date-based granularity options:

  • Year, month, day, or hour for date fields
  • Lookup values for categorical fields
  • Nested grouping across multiple levels

Inline editing

Edit field values directly in grid cells without opening the record form. Supported for text, number, date, and lookup field types.

Mass editing

Bulk update fields across selected records:

  1. Select records using checkboxes or Ctrl+click
  2. Choose the target field and new value
  3. Optionally fire an action (transition) on all selected records

Real-time updates (SignalR)

Lists refresh automatically via SignalR when records change on the server. Grid rows update, appear, or disappear in real time - no manual refresh needed.

Data export

Export the current list view to XLSX (Excel) format. The export respects current filters and column selection.

Virtual joins

Display fields from linked records directly in grid columns without duplicating data. Virtual joins let you show related data inline:

Importing list configurations

Import saved list views (filters, columns, sort order) using the CLI:

npx comind importCustomViews

Keyboard shortcuts

ShortcutAction
Arrow keysNavigate between cells
EnterOpen selected record
E / F2Edit cell inline
DeleteClear cell value
Ctrl+ASelect all records
Ctrl+CCopy cell value
Page Up/DownScroll by page

Drag-and-drop

Reorder rows or restructure tree hierarchies by dragging. The platform validates drop targets to prevent invalid parent-child relationships.

Widgets

Embed grid instances in dashboard or wiki pages with configurable max rows.