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
This commit is contained in:
Jakub Zych
2026-10-04 23:45:44 +02:00
parent e0ccced76a
commit 61d5fc72ad
35 changed files with 749 additions and 44 deletions

View File

@@ -1116,6 +1116,20 @@
"recordCount": {
"$ref": "#/components/schemas/cabana.MessageForms"
},
"rowStateDeleted": {
"allOf": [
{
"$ref": "#/components/schemas/cabana.MessageForms"
}
],
"description": "The row-state badge labels (D-12)."
},
"rowStateDisabled": {
"$ref": "#/components/schemas/cabana.MessageForms"
},
"rowStateNegative": {
"$ref": "#/components/schemas/cabana.MessageForms"
},
"searchPrompt": {
"$ref": "#/components/schemas/cabana.MessageForms"
},
@@ -1132,6 +1146,9 @@
"emptySearch",
"emptySearchHint",
"recordCount",
"rowStateDeleted",
"rowStateDisabled",
"rowStateNegative",
"searchPrompt",
"selected"
],
@@ -1148,6 +1165,15 @@
"per_page": {
"type": "integer"
},
"row_states": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"type": "object"
},
"total": {
"type": "integer"
}
@@ -2412,6 +2438,7 @@
},
"/{vendor}/{plugin}/{controller}": {
"get": {
"description": "meta.row_states carries the states of the page's rows keyed by row id, each a subset of deleted, negative and disabled; it is absent when the controller reports no state.",
"parameters": [
{
"description": "Vendor",