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:
| Format | Description |
|---|---|
| Table | Standard data grid with sortable columns |
| Gantt | Timeline visualization with drag-to-reschedule |
| Boards | Kanban-style columns grouped by a lookup field |
| Calendar | Date-based event view |
| Pivot tables | Cross-tabulation with aggregations |
| Charts (Vega) | Custom data visualizations |
| Cards | Card layout for visual browsing |
| Word cloud | Text frequency visualization |
| Google Maps | Geographic data on a map |
| File folders | File and folder navigation view |
| Feed | Activity stream layout |
| Resources | Resource allocation view |
| Quick edit | Streamlined inline editing |
| Heatmap | Color-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+)
| Renderer | Use case |
|---|---|
circle_percent | Progress circles (0--100%) |
indicator | Status indicators with icons and colors |
rich_text_line | Single-line rich text preview |
colorful-lookup | Lookup values with custom colors |
avatar-image | User avatar thumbnails |
work-progress-bar | Progress bars |
| State-colored badges | Lookup fields with per-entry color coding |
| Boolean checkboxes | Yes/no toggle display |
| Currency | Formatted monetary values with prefix/suffix |
| Sparklines | Inline mini-charts |
| Priority indicators | Visual priority levels |
| Linked records | Clickable cross-record references |
| File previews | Attachment thumbnails |
| Comments count | Comment badge |
| HTML content | Rendered 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:
- Visible fields - search only columns currently shown
- Include files/comments - extend search to attachments and comments
- 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:
- Select records using checkboxes or Ctrl+click
- Choose the target field and new value
- 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
| Shortcut | Action |
|---|---|
| Arrow keys | Navigate between cells |
| Enter | Open selected record |
| E / F2 | Edit cell inline |
| Delete | Clear cell value |
| Ctrl+A | Select all records |
| Ctrl+C | Copy cell value |
| Page Up/Down | Scroll 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.