Files
summercms/admin/tests/fixtures/widgets.list-schema.json
Jakub Zych 61d5fc72ad feat(12.1-01): list row states from one controller call per page
- pact.ListRowStates with the fixed RowState set deleted, negative, disabled
- list response meta.row_states keyed by row id; unknown values dropped
- list messages rowStateDeleted, rowStateNegative, rowStateDisabled
- update writes through the scope the load used, so a soft-deleted record
  a controller includes stays soft-deleted
- DataTable row state badges and text styles
- roster fixture, smoke tests, OpenAPI, TS types, dist, READMEs, docs
2026-10-04 23:45:44 +02:00

48 lines
2.2 KiB
JSON

{
"data": {
"title": "Widgets",
"recordsPerPage": 20,
"perPageOptions": [],
"showSearch": true,
"showSetup": false,
"showCheckboxes": true,
"showSorting": true,
"searchTerm": "",
"recordUrl": "acme/demo/widgets/update/:id",
"toolbarButtons": ["create", "delete"],
"toolbarActions": [],
"assets": { "scripts": [], "styles": [] },
"columns": [
{ "key": "name", "label": "Name", "searchable": true, "sortable": true },
{ "key": "code", "label": "Code", "searchable": true, "sortable": true },
{ "key": "tags", "label": "Tags", "searchable": false, "sortable": false, "type": "relation", "relation": "tags", "select": "name" },
{ "key": "created_at", "label": "Created", "searchable": false, "sortable": true, "type": "datetime" },
{ "key": "active", "label": "Active", "searchable": false, "sortable": false, "type": "switch" }
],
"filters": [
{ "name": "active", "label": "Active", "type": "switch", "column": "active", "trueValue": true, "falseValue": false },
{ "name": "created", "label": "Created", "type": "daterange", "column": "created_at" },
{ "name": "maker", "label": "Maker", "type": "scope", "scope": "byMaker", "modelClass": "Acme\\Demo\\Models\\Maker", "nameFrom": "name" }
],
"rowActions": [],
"bulkActions": [],
"messages": {
"create": { "other": "New widget" },
"deleteConfirm": { "one": "Delete :count widget?", "other": "Delete :count widgets?" },
"deleteSelected": { "other": "Delete selected" },
"deleted": { "one": "Deleted :count widget", "other": "Deleted :count widgets" },
"empty": { "other": "No widgets yet." },
"emptySearch": { "other": "Nothing found" },
"emptySearchHint": { "other": "No widget matches “:term”." },
"recordCount": { "one": ":count widget", "other": ":count widgets" },
"searchPrompt": { "other": "Search widgets…" },
"selected": { "other": "Selected :count" },
"rowStateDeleted": { "other": "Deleted" },
"rowStateNegative": { "other": "Blocked" },
"rowStateDisabled": { "other": "Inactive" }
},
"meta": { "locale": "en" }
},
"meta": { "locale": "en" }
}