Vaktor v0.1

table

Tabular data with pagination.

FieldTypeDescription
columns[{id, title}]columns
rows_endpointstring/api/orders?page={page}, {page} starts at 1
rows[row]?alternative to endpoint for small static tables
page_sizeint?default 50
row_actionaction_template?action with {row.<column_id>} substitution
swipe_actions[action]?templates, like row_action
context_menu[action]?
{
  "type": "table",
  "columns": [
    {
      "id": "order",
      "title": "Order"
    },
    {
      "id": "status",
      "title": "Status"
    }
  ],
  "rows_endpoint": "/api/orders?page={page}",
  "page_size": 50,
  "row_action": {
    "type": "navigate",
    "endpoint": "/pages/orders/{row.id}"
  }
}

rows_endpoint response format

{
  "rows": [
    {
      "id": "142",
      "cells": {
        "order": "#142",
        "status": "paid"
      }
    }
  ],
  "has_more": true
}

has_more: false — end of the list. {page} starts at 1.

Platform branches

PlatformViewCapabilities
iPhonelistfirst column → title, second → subtitle/value, the rest collapse; lazy loading on scroll
iPad / Mactablereal columns, sorting, row selection, context menu

swipe_actions → native swipes on iOS/iPadOS, degrading to a context menu on Mac.

rows_endpoint is relative. An absolute URL is rejected (see URLs and addresses).