feat(17-01): tree reorder page and singleton admin controllers
- cabana: config_reorder.yaml (title, nameFrom, modelClass, parentColumn,
sortColumn, maxDepth, partition) with fail-loud boot checks and the
built-in reorder toolbar button; list schema carries reorder
- GET/POST {controller}/reorder: scoped set (ListExtendQuery plus the
partition) locked FOR UPDATE, 409 reorder_stale on any set difference,
422 for duplicates, foreign parents, cycles and maxDepth, both columns
written without model hooks
- pact.AdminSingleton: GET {controller}/singleton (first or create, form
scope checked), form schema singleton, list/create/bulk/delete 404,
no config_list.yaml needed
- swag, inventories, token classes, CSRF walk, conformance cases, backend
lang reorder.stale and load_failed, reorder and singleton smoke tests, docs
This commit is contained in:
@@ -4,4 +4,4 @@ title: Links
|
||||
recordUrl: acme/companions/links/update/:id
|
||||
recordsPerPage: 20
|
||||
toolbar:
|
||||
buttons: [create]
|
||||
buttons: [create, reorder]
|
||||
|
||||
10
modules/cabana/testdata/companions/controllers/links/config_reorder.yaml
vendored
Normal file
10
modules/cabana/testdata/companions/controllers/links/config_reorder.yaml
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
title: Reorder links
|
||||
nameFrom: title
|
||||
modelClass: Link
|
||||
parentColumn: parent_id
|
||||
sortColumn: sort_order
|
||||
maxDepth: 3
|
||||
partition:
|
||||
column: group_id
|
||||
relation: group
|
||||
label: Group
|
||||
4
modules/cabana/testdata/companions/controllers/profiles/config_form.yaml
vendored
Normal file
4
modules/cabana/testdata/companions/controllers/profiles/config_form.yaml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
name: Site profile
|
||||
form: ~/plugins/acme/companions/models/profile/fields.yaml
|
||||
modelClass: Profile
|
||||
defaultRedirect: acme/companions/profiles
|
||||
@@ -3,6 +3,11 @@ fields:
|
||||
label: Title
|
||||
type: text
|
||||
required: true
|
||||
group:
|
||||
label: Group
|
||||
type: relation
|
||||
nameFrom: title
|
||||
emptyOption: backend::lang.form.none
|
||||
type:
|
||||
label: Type
|
||||
type: dropdown
|
||||
|
||||
4
modules/cabana/testdata/companions/models/profile/fields.yaml
vendored
Normal file
4
modules/cabana/testdata/companions/models/profile/fields.yaml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
fields:
|
||||
title:
|
||||
label: Title
|
||||
type: text
|
||||
Reference in New Issue
Block a user