diff options
Diffstat (limited to 'internal/web/templates')
| -rw-r--r-- | internal/web/templates/index.html | 1 | ||||
| -rw-r--r-- | internal/web/templates/reader.html | 1 | ||||
| -rw-r--r-- | internal/web/templates/settings.html | 115 |
3 files changed, 117 insertions, 0 deletions
diff --git a/internal/web/templates/index.html b/internal/web/templates/index.html index 6920fcb..3058746 100644 --- a/internal/web/templates/index.html +++ b/internal/web/templates/index.html @@ -62,6 +62,7 @@ </label> <a class="nav-link" href="/reader">{{.L.NavReader}} →</a> + <a class="nav-link" href="/settings">settings</a> </form> <label class="theme-picker">{{.L.Theme}} diff --git a/internal/web/templates/reader.html b/internal/web/templates/reader.html index 921016a..af29e65 100644 --- a/internal/web/templates/reader.html +++ b/internal/web/templates/reader.html @@ -20,6 +20,7 @@ <form class="controls" action="/reader" method="get" hx-get="/reader" hx-target="#reader-root" hx-select="#reader-root" hx-swap="outerHTML" hx-trigger="change"> <a class="nav-link" href="/">← {{.L.BannerReadings}}</a> + <a class="nav-link" href="/settings">settings</a> <label>{{.L.WebBook}} <select name="book"> 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> |
