Files
sm-seo-plugin/models/redirect/fields.yaml
Jakub Zych 163b0aaf98 feat: redirects screen
- golem15.seo.redirects list and form (UI-SPEC C8): chain rows marked,
  status, match, origin and chain filters, the navigation item lands here
- a field-less extension on the controller refuses a loop with
  redirects.loop on target, answers the chain notice and records history
- the status dropdown posts text, read through RedirectStatus
2026-10-27 11:30:56 +01:00

64 lines
1.8 KiB
YAML

# Redirect form (UI-SPEC C8). The loop refusal and the chain notice land on
# target; they come from the plugin's own form extension on the redirects
# controller.
fields:
source:
label: golem15.seo::lang.redirects.source
comment: golem15.seo::lang.redirects.source_comment
type: text
span: left
required: true
match:
label: golem15.seo::lang.redirects.match
type: dropdown
span: right
default: exact
options:
exact: golem15.seo::lang.redirects.match_exact
pattern: golem15.seo::lang.redirects.match_pattern
regex: golem15.seo::lang.redirects.match_regex
target:
label: golem15.seo::lang.redirects.target
comment: golem15.seo::lang.redirects.target_comment
type: text
span: full
status:
label: golem15.seo::lang.redirects.status
type: dropdown
span: left
default: "301"
options:
"301": golem15.seo::lang.redirects.status_301
"302": golem15.seo::lang.redirects.status_302
"410": golem15.seo::lang.redirects.status_410
query:
label: golem15.seo::lang.redirects.query
type: dropdown
span: right
default: ignore
options:
ignore: golem15.seo::lang.redirects.query_ignore
pass: golem15.seo::lang.redirects.query_pass
ignore_case:
label: golem15.seo::lang.redirects.ignore_case
type: checkbox
span: left
default: false
trailing_slash:
label: golem15.seo::lang.redirects.trailing_slash
type: checkbox
span: right
default: true
note:
label: golem15.seo::lang.redirects.note
type: textarea
size: tiny
span: full