Fold the certificate's order log away

The log of the last issuing run is only of interest when something went
wrong. It is a collapsed section now, open when the last run failed.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AeFqV9dZrK6nipHkPfyM4F
This commit is contained in:
2026-11-08 18:17:01 +01:00
co-authored by Claude Sonnet 5.5
parent 5572172904
commit bda07ae163
2 changed files with 7 additions and 4 deletions
+4 -1
View File
@@ -188,6 +188,7 @@ type certificateData struct {
Errors FormErrors
Providers []DNSProvider
Status string // the order's last result
Failed bool // the last order did not succeed: the log is shown open
Log string
}
@@ -214,7 +215,9 @@ func (a *app) certificateData(s Settings, f ACMEForm, errs FormErrors) certifica
if first := splitList(f.Domains); len(first) > 0 && s.acme().Enabled {
unit := "acme-order-renew-" + strings.ToLower(first[0]) + ".service"
if st := unitProperty(unit, "ActiveState"); st != "" {
d.Status = st + ", result " + unitProperty(unit, "Result")
res := unitProperty(unit, "Result")
d.Status = st + ", result " + res
d.Failed = res != "success" || st == "failed"
d.Log, _ = command("journalctl", "--no-pager", "-o", "cat", "-n", "15", "-u", unit)
}
}
+3 -3
View File
@@ -37,11 +37,11 @@
</fieldset>
<button>Save</button>
</form>
<section>
<h2>Ordering</h2>
<details{{if .Failed}} open{{end}}>
<summary>Issuing and renewal log{{if .Failed}} (the last run failed){{end}}</summary>
{{if .Status}}<p class="muted">{{.Status}}</p>{{if .Log}}<pre class="log">{{.Log}}</pre>{{end}}
{{else}}<p class="muted">Nothing yet. After you save and apply, the router orders the certificate (a minute or two); renewals follow 30 days before it expires and need no restart.</p>{{end}}
</section>
</details>
{{end}}
</div>
{{end}}