feat(12.1-02): password and form-only fields, rules per operation and preset
- pact.FormVirtualFields lists form fields that are not model columns: never bound, filled or projected; their values reach the Form hooks through cabana.VirtualFieldsFromContext when the field's context allows the operation - type: password is a masked field that must be listed as virtual - pact.FormRules supplies the rule set per operation and replaces the model's Rules() for admin saves; a rule on a virtual field sees the submitted value - preset on a text field follows another text field on the create form - SPA: PasswordField, preset handling in FormView, empty password left out of an update - README, docs, OpenAPI document, TS types and dist updated
This commit is contained in:
4
admin/tests/fixtures/roster.form-schema.json
vendored
4
admin/tests/fixtures/roster.form-schema.json
vendored
@@ -5,6 +5,10 @@
|
||||
"fields": [
|
||||
{ "name": "name", "type": "text", "label": "Name", "span": "left" },
|
||||
{ "name": "email", "type": "text", "label": "Email", "span": "right" },
|
||||
{ "name": "slug", "type": "text", "label": "Slug", "preset": { "field": "name", "type": "slug" } },
|
||||
{ "name": "password", "type": "password", "label": "Password", "span": "left", "context": ["create", "update"] },
|
||||
{ "name": "password_confirmation", "type": "password", "label": "Repeat the password", "span": "right", "context": ["create", "update"] },
|
||||
{ "name": "notify", "type": "checkbox", "label": "Send a welcome message", "default": true, "context": "create" },
|
||||
{ "name": "joined_ip", "type": "text", "label": "Joined from IP address", "context": "preview" }
|
||||
],
|
||||
"preview": { "headerPartial": "status" },
|
||||
|
||||
Reference in New Issue
Block a user