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

@@ -99,6 +99,15 @@
},
"selected": {
"other": "Selected :count"
},
"rowStateDeleted": {
"other": "Deleted"
},
"rowStateNegative": {
"other": "Blocked"
},
"rowStateDisabled": {
"other": "Inactive"
}
},
"meta": {

View File

@@ -33,7 +33,10 @@
"emptySearchHint": { "other": "No record matches “:term”. Try another search." },
"recordCount": { "one": ":count record", "other": ":count records" },
"searchPrompt": { "other": "Search…" },
"selected": { "other": ":count selected" }
"selected": { "other": ":count selected" },
"rowStateDeleted": { "other": "Deleted" },
"rowStateNegative": { "other": "Blocked" },
"rowStateDisabled": { "other": "Not active" }
},
"meta": { "locale": "en" }
},

View File

@@ -4,5 +4,14 @@
{ "id": 2, "name": "Bob Stone", "email": "bob@example.test" },
{ "id": 3, "name": "Cy Young", "email": "cy@example.test" }
],
"meta": { "page": 1, "per_page": 20, "total": 3, "last_page": 1 }
"meta": {
"page": 1,
"per_page": 20,
"total": 3,
"last_page": 1,
"row_states": {
"2": ["deleted", "negative"],
"3": ["disabled", "starred"]
}
}
}

View File

@@ -36,7 +36,10 @@
"emptySearchHint": { "other": "No widget matches “:term”." },
"recordCount": { "one": ":count widget", "other": ":count widgets" },
"searchPrompt": { "other": "Search widgets…" },
"selected": { "other": "Selected :count" }
"selected": { "other": "Selected :count" },
"rowStateDeleted": { "other": "Deleted" },
"rowStateNegative": { "other": "Blocked" },
"rowStateDisabled": { "other": "Inactive" }
},
"meta": { "locale": "en" }
},