feat: sitemap settings singleton with content types and additional addresses

- one settings tile opening the golem15.sitemap.settings singleton
- Files tab (site address, file size, S1 files partial), Additional
  addresses repeater, Content types tab built from signpost at boot
- golem15_sitemap_types; a type switched off leaves the files (reason type)
- a save validates (errors.*) and dispatches a rebuild after commit
This commit is contained in:
Jakub Zych
2026-11-04 11:06:29 +01:00
parent 3359f1a196
commit 3ba70bb69f
20 changed files with 1304 additions and 337 deletions

View File

@@ -0,0 +1,42 @@
{{- if .Data.Building -}}
<div class="summer-callout" role="status">
<p class="summer-callout__text">{{ trans "golem15.sitemap::lang.files.building" }}</p>
</div>
{{- end -}}
{{- if .Data.Empty -}}
<div class="summer-callout" role="status">
<p class="summer-callout__text">{{ trans "golem15.sitemap::lang.files.empty" }}</p>
</div>
{{- else -}}
<section>
<h4>{{ trans "golem15.sitemap::lang.files.label" }}</h4>
<div class="summer-table-wrap">
<table class="summer-table">
<thead><tr><th>{{ trans "golem15.sitemap::lang.files.file" }}</th><th class="summer-table__num">{{ trans "golem15.sitemap::lang.files.file_urls" }}</th><th>{{ trans "golem15.sitemap::lang.files.file_lastmod" }}</th></tr></thead>
<tbody>
{{- range .Data.Files -}}
<tr><td>{{ if .URL }}<a href="{{ .URL }}"><code>{{ .Name }}</code></a>{{ else }}<code>{{ .Name }}</code>{{ end }}</td><td class="summer-table__num">{{ .Count }}</td><td>{{ .LastMod }}</td></tr>
{{- end -}}
</tbody>
</table>
</div>
</section>
{{- end -}}
{{- if .Data.LeftOut -}}
<section>
<h4>{{ trans "golem15.sitemap::lang.files.left_out" }}</h4>
<div class="summer-table-wrap">
<table class="summer-table">
<thead><tr><th>{{ trans "golem15.sitemap::lang.files.left_out_reason" }}</th><th class="summer-table__num">{{ trans "golem15.sitemap::lang.files.left_out_count" }}</th></tr></thead>
<tbody>
{{- range .Data.LeftOut -}}
<tr><td>{{ .Label }}</td><td class="summer-table__num">{{ .Count }}</td></tr>
{{- end -}}
</tbody>
</table>
</div>
</section>
{{- end -}}
<div class="summer-callout" role="note">
<p class="summer-callout__text">{{ .Data.Note }}</p>
</div>

View File

@@ -0,0 +1,20 @@
# ===================================
# Form Behavior Config
# ===================================
#
# The sitemap settings singleton (UI-SPEC C26), linked from the sitemap
# settings tile. The plugin's form extension adds the Content types tab
# after Files.
name: golem15.sitemap::lang.settings.label
form: ~/plugins/golem15/sitemap/models/settings/fields.yaml
modelClass: Golem15\Sitemap\Models\Settings
defaultRedirect: system/settings
update:
redirect: golem15/sitemap/settings
redirectClose: system/settings
messages:
update: golem15.sitemap::lang.settings.label
saved: backend::lang.messages.form.saved