feat(10.1-02): render header and form partials through an allowlisted node renderer
- partialNodes rebuilds the server node tree with h() under the server's tag, attribute and URL lists - PartialHost owns the skeleton, empty and failure states and keeps nodes visible on refetch - type: partial is a valueless group-labelled field rendered on create and update - ListView shows headerPartial above the list card and refetches it after bulk delete - summer-partial and summer-stats style kit in main.css, documented in the cabana README; dist rebuilt
This commit is contained in:
106
admin/tests/fixtures/extension.list-schema.json
vendored
Normal file
106
admin/tests/fixtures/extension.list-schema.json
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"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": [
|
||||
"/admin-test/assets/acme/demo/css/demo.css?v=abc"
|
||||
]
|
||||
},
|
||||
"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": [],
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"meta": {
|
||||
"locale": "en"
|
||||
},
|
||||
"headerPartial": "stats"
|
||||
},
|
||||
"meta": {
|
||||
"locale": "en"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user