- ListToolbar renders server-filtered actions after delete as outline buttons, busy during their POST
- ListView posts {} to toolbar/{action}, toasts, reloads the list and refetches the header partial
- Lists load controller assets too, so other controllers' stylesheet links are disabled on every open
- Vite dev server proxies {prefix}/assets to summer serve; dist rebuilt
113 lines
2.3 KiB
JSON
113 lines
2.3 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",
|
|
"recount"
|
|
],
|
|
"toolbarActions": [
|
|
{
|
|
"name": "recount",
|
|
"label": "Recount"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|