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

@@ -608,7 +608,10 @@ export interface paths {
path?: never;
cookie?: never;
};
/** List admin records */
/**
* List admin records
* @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.
*/
get: {
parameters: {
query?: {
@@ -4546,6 +4549,10 @@ export interface components {
emptySearch: components["schemas"]["cabana.MessageForms"];
emptySearchHint: components["schemas"]["cabana.MessageForms"];
recordCount: components["schemas"]["cabana.MessageForms"];
/** @description The row-state badge labels (D-12). */
rowStateDeleted: components["schemas"]["cabana.MessageForms"];
rowStateDisabled: components["schemas"]["cabana.MessageForms"];
rowStateNegative: components["schemas"]["cabana.MessageForms"];
searchPrompt: components["schemas"]["cabana.MessageForms"];
selected: components["schemas"]["cabana.MessageForms"];
};
@@ -4553,6 +4560,9 @@ export interface components {
last_page: number;
page: number;
per_page: number;
row_states?: {
[key: string]: string[];
};
total: number;
};
"cabana.ListSchema": {