diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-24 15:01:03 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-24 15:01:03 +0200 |
| commit | 2453b598def94649cc7ce9af7155bfaad40cce12 (patch) | |
| tree | 0267ac67c2e9d108bcf4b3006d55aaafc5deb8d8 /internal/web/templates/settings.html | |
| parent | 35f98e0a8a0573d51a4412ec7f60c7de068acfe6 (diff) | |
| download | lectio-2453b598def94649cc7ce9af7155bfaad40cce12.tar.gz lectio-2453b598def94649cc7ce9af7155bfaad40cce12.zip | |
web: /settings page to edit config + books.toml, persisted and applied live; v0.14.0
Diffstat (limited to 'internal/web/templates/settings.html')
| -rw-r--r-- | internal/web/templates/settings.html | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/internal/web/templates/settings.html b/internal/web/templates/settings.html new file mode 100644 index 0000000..bea6fb9 --- /dev/null +++ b/internal/web/templates/settings.html @@ -0,0 +1,115 @@ +{{/* settings.html — lectio-web /settings page: a form for every config + setting plus a raw books.toml editor. A plain POST form (no htmx) -- + saving redirects (PRG) back here with ?saved=1. On a validation error + the form re-renders with the submitted values and an inline message + instead of redirecting. Self-contained and theme-aware, like index.html. */}} +<!doctype html> +<html lang="{{.Lang}}"> +<head> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<title>lectio — settings</title> +<link rel="stylesheet" href="/static/base.css"> +<link id="theme" rel="stylesheet" href="/theme.css?name={{.Cfg.WebTheme}}"> +<script src="/static/htmx.min.js"></script> +</head> +<body{{if .Cfg.WebMono}} class="mono"{{end}}> +<div class="page"> + + <p><a class="nav-link" href="/">← {{.L.BannerReadings}}</a></p> + + {{if .Saved}}<p class="saved">Saved.</p>{{end}} + {{if .Error}}<p class="error">{{.Error}}</p>{{end}} + + <form class="settings" method="post" action="/settings"> + + <label>{{.L.Lectionary}} + <select name="lectionary"> + <option value="new" {{if eq .Cfg.Lectionary "new"}}selected{{end}}>{{.L.OptModern}}</option> + <option value="traditional" {{if eq .Cfg.Lectionary "traditional"}}selected{{end}}>{{.L.OptTraditional}}</option> + </select> + </label> + + <label>traditional language + <select name="traditional_lang"> + <option value="pl" {{if eq .Cfg.TraditionalLang "pl"}}selected{{end}}>pl</option> + <option value="en" {{if eq .Cfg.TraditionalLang "en"}}selected{{end}}>en</option> + </select> + </label> + + <label>UI language + <select name="ui_language"> + <option value="en" {{if eq .Cfg.UILanguage "en"}}selected{{end}}>en</option> + <option value="pl" {{if eq .Cfg.UILanguage "pl"}}selected{{end}}>pl</option> + </select> + </label> + + <label>sigla style + <select name="sigla_style"> + <option value="auto" {{if eq .Cfg.SiglaStyle "auto"}}selected{{end}}>auto</option> + <option value="polish" {{if eq .Cfg.SiglaStyle "polish"}}selected{{end}}>polish</option> + <option value="english" {{if eq .Cfg.SiglaStyle "english"}}selected{{end}}>english</option> + </select> + </label> + + <label>{{.L.Layout}} + <select name="web_display"> + <option value="horizontal" {{if eq .Cfg.WebDisplay "horizontal"}}selected{{end}}>{{.L.OptHorizontal}}</option> + <option value="vertical" {{if eq .Cfg.WebDisplay "vertical"}}selected{{end}}>{{.L.OptColumns}}</option> + <option value="interlinear" {{if eq .Cfg.WebDisplay "interlinear"}}selected{{end}}>{{.L.OptInterlinear}}</option> + </select> + </label> + + <label>{{.L.Theme}} + <select name="web_theme"> + {{range .ThemeOpts}}<option value="{{.Name}}" {{if .Selected}}selected{{end}}>{{.Name}}</option>{{end}} + </select> + </label> + + <label>default version + <select name="default_version"> + {{range .VersionOpts}}<option value="{{.Code}}" {{if eq .Code $.Cfg.DefaultVersion}}selected{{end}}>{{.Code}}</option>{{end}} + </select> + </label> + + <div class="row"> + versions + {{range .VersionOpts}}<label><input type="checkbox" name="versions" value="{{.Code}}" {{if .Checked}}checked{{end}}> {{.Code}}</label>{{end}} + </div> + + <div class="row"> + web versions + {{range .WebVersionOpts}}<label><input type="checkbox" name="web_versions" value="{{.Code}}" {{if .Checked}}checked{{end}}> {{.Code}}</label>{{end}} + </div> + + <div class="row"> + <label><input type="checkbox" name="all" {{if .Cfg.All}}checked{{end}}> {{.L.OptAll}}</label> + <label><input type="checkbox" name="offline" {{if .Cfg.Offline}}checked{{end}}> offline</label> + <label><input type="checkbox" name="web_mono" {{if .Cfg.WebMono}}checked{{end}}> {{.L.Mono}}</label> + </div> + + <label>width + <input type="number" name="width" value="{{.Cfg.Width}}"> + </label> + + <label>web port + <input type="number" name="web_port" value="{{.Cfg.WebPort}}"> + </label> + + <label>pager + <input type="text" name="pager" value="{{.Cfg.Pager}}"> + </label> + + <label>books.toml + <textarea name="books" rows="20">{{.Books}}</textarea> + </label> + + <div class="row"> + <button type="submit">Save</button> + </div> + + </form> + +</div> +</body> +</html> |
