/admin/settings edits the document llmgw ctl config edit opens: checked as a control plane would load it, refused when made from a version since replaced (the edit kept), its history viewed and rolled back as a new version, every change audited by size and never by contents, since it can hold webhook secrets. Administrators only; in English and Turkish. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
51 lines
2.5 KiB
HTML
51 lines
2.5 KiB
HTML
{{define "admin_settings"}}<!doctype html>
|
|
<html lang="{{lang}}"><head>
|
|
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>{{t "settings.title"}} · llmgw</title><link rel="stylesheet" href="{{stylesheet}}">
|
|
</head><body><div class="wrap">
|
|
<header>
|
|
<h1>{{t "settings.title"}}</h1>
|
|
<p class="sub">{{th "settings.sub"}}</p>
|
|
{{template "nav" .Nav}}
|
|
</header>
|
|
{{if .Error}}<p class="error" role="alert">{{.Error}}</p>{{end}}
|
|
{{if .Notice}}<p class="ok" role="status">{{.Notice}}</p>{{end}}
|
|
|
|
{{if .Earlier}}
|
|
<h2>{{t "settings.earlier" .Shown.Version}}</h2>
|
|
<p class="sub">{{t "settings.earlier_sub" .Current.Version}}</p>
|
|
<pre class="settings-body">{{.Body}}</pre>
|
|
<form method="post" action="/admin/settings/rollback">
|
|
<input type="hidden" name="csrf" value="{{.CSRF}}">
|
|
<input type="hidden" name="version" value="{{.Shown.Version}}">
|
|
<button type="submit">{{t "settings.rollback" .Shown.Version}}</button>
|
|
<a href="/admin/settings">{{t "settings.back_to_current"}}</a>
|
|
</form>
|
|
{{else}}
|
|
<h2>{{t "settings.current" .Current.Version}}</h2>
|
|
{{if .LocalKeys}}<p class="sub">{{t "settings.local_keys"}} {{range $i, $k := .LocalKeys}}{{if $i}}, {{end}}<code>{{$k}}</code>{{end}}.</p>{{end}}
|
|
<form method="post" action="/admin/settings" class="settings-form">
|
|
<input type="hidden" name="csrf" value="{{.CSRF}}">
|
|
<input type="hidden" name="base" value="{{.Current.Version}}">
|
|
<label for="settings-body" class="sr-only">{{t "settings.title"}}</label>
|
|
<textarea id="settings-body" name="body" rows="30" spellcheck="false" class="mono">{{.Body}}</textarea>
|
|
<label>{{t "settings.note"}} <span class="opt">{{t "settings.note_hint"}}</span>
|
|
<input type="text" name="note" value="{{.Note}}" maxlength="200"></label>
|
|
<button type="submit">{{t "settings.save"}}</button>
|
|
<p class="sub">{{t "settings.save_hint"}}</p>
|
|
</form>
|
|
{{end}}
|
|
|
|
<h2>{{t "settings.history"}}</h2>
|
|
{{if .History}}
|
|
<table class="rows">
|
|
<tr><th class="num">{{t "settings.col.version"}}</th><th>{{t "settings.col.at"}}</th><th>{{t "settings.col.by"}}</th><th>{{t "settings.col.note"}}</th><th></th></tr>
|
|
{{range .History}}<tr{{if .Selected}} aria-current="true"{{end}}>
|
|
<td class="num">{{.Version}}</td><td>{{.At}}</td><td>{{.By}}</td><td>{{.Note}}</td>
|
|
<td>{{if .InForce}}<strong>{{t "settings.in_force"}}</strong>{{else}}<a href="/admin/settings?version={{.Version}}">{{t "settings.view"}}</a>{{end}}</td>
|
|
</tr>{{end}}
|
|
</table>
|
|
{{else}}<p class="sub">{{t "settings.no_history"}}</p>{{end}}
|
|
<footer>llmgw {{.Version}}</footer>
|
|
</div></body></html>{{end}}
|