feat(12.1-01): declared bulk actions on admin lists
- pact.HasAdminBulkActions with AdminBulkAction, its input and result
- config_list.yaml bulkActions, compiled fail-loud, needs showCheckboxes
- POST .../{controller}/bulk/{action}: ids resolved and locked through the
list scope in one transaction; partial selection is 409
- list schema offers declared actions per principal, with confirm text
- admin SPA bulk actions menu with confirm, busy state and failure toasts
- acme.roster fixture, tracer test, OpenAPI, TS types, dist, READMEs, docs
This commit is contained in:
10
modules/cabana/testdata/roster/controllers/people/config_form.yaml
vendored
Normal file
10
modules/cabana/testdata/roster/controllers/people/config_form.yaml
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
name: acme.roster::lang.people.form
|
||||
form: ~/plugins/acme/roster/models/person/fields.yaml
|
||||
modelClass: Person
|
||||
defaultRedirect: acme/roster/people
|
||||
create:
|
||||
redirect: acme/roster/people/update/:id
|
||||
redirectClose: acme/roster/people
|
||||
update:
|
||||
redirect: acme/roster/people
|
||||
redirectClose: acme/roster/people
|
||||
13
modules/cabana/testdata/roster/controllers/people/config_list.yaml
vendored
Normal file
13
modules/cabana/testdata/roster/controllers/people/config_list.yaml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
list: ~/plugins/acme/roster/models/person/columns.yaml
|
||||
modelClass: Person
|
||||
title: acme.roster::lang.people.title
|
||||
recordUrl: acme/roster/people/update/:id
|
||||
recordsPerPage: 20
|
||||
showCheckboxes: true
|
||||
toolbar:
|
||||
buttons: [create, delete]
|
||||
search:
|
||||
prompt: backend::lang.list.search_prompt
|
||||
bulkActions: [activate, archive]
|
||||
messages:
|
||||
create: acme.roster::lang.people.create
|
||||
10
modules/cabana/testdata/roster/lang/en/lang.yaml
vendored
Normal file
10
modules/cabana/testdata/roster/lang/en/lang.yaml
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
people:
|
||||
title: People
|
||||
form: Person
|
||||
create: New person
|
||||
name: Name
|
||||
email: Email
|
||||
activate: Activate
|
||||
activate_confirm: Activate the selected people?
|
||||
archive: Archive
|
||||
archived: The selected people were archived.
|
||||
10
modules/cabana/testdata/roster/lang/pl/lang.yaml
vendored
Normal file
10
modules/cabana/testdata/roster/lang/pl/lang.yaml
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
people:
|
||||
title: Osoby
|
||||
form: Osoba
|
||||
create: Nowa osoba
|
||||
name: Imię i nazwisko
|
||||
email: E-mail
|
||||
activate: Aktywuj
|
||||
activate_confirm: Aktywować zaznaczone osoby?
|
||||
archive: Archiwizuj
|
||||
archived: Zaznaczone osoby zostały zarchiwizowane.
|
||||
7
modules/cabana/testdata/roster/models/person/columns.yaml
vendored
Normal file
7
modules/cabana/testdata/roster/models/person/columns.yaml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
columns:
|
||||
name:
|
||||
label: acme.roster::lang.people.name
|
||||
searchable: true
|
||||
email:
|
||||
label: acme.roster::lang.people.email
|
||||
searchable: true
|
||||
9
modules/cabana/testdata/roster/models/person/fields.yaml
vendored
Normal file
9
modules/cabana/testdata/roster/models/person/fields.yaml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
fields:
|
||||
name:
|
||||
label: acme.roster::lang.people.name
|
||||
type: text
|
||||
span: left
|
||||
email:
|
||||
label: acme.roster::lang.people.email
|
||||
type: text
|
||||
span: right
|
||||
Reference in New Issue
Block a user