Files
llmgw/internal/web/templates/admin_settings.html
T
Ilker ManapandClaude Opus 5.5 659f20dc9a The cluster's settings edited on the portal, by administrators
/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>
2026-10-08 17:23:13 +02:00

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}}