2018-09-22 03:53:29 +02:00
{{ define "title"}}{{ t "page.settings.title" }}{{ end }}
2017-11-20 06:10:04 +01:00
{{ define "content"}}
< section class = "page-header" >
2018-09-22 03:53:29 +02:00
< h1 > {{ t "page.settings.title" }}< / h1 >
2019-11-18 02:26:47 +01:00
{{ template "settings_menu" dict "user" .user }}
2017-11-20 06:10:04 +01:00
< / section >
< form method = "post" autocomplete = "off" action = "{{ route " updateSettings " } } " >
< input type = "hidden" name = "csrf" value = "{{ .csrf }}" >
{{ if .errorMessage }}
2023-10-22 04:50:29 +02:00
< div class = "alert alert-error" > {{ .errorMessage }}< / div >
2017-11-20 06:10:04 +01:00
{{ end }}
2023-09-11 20:35:08 +02:00
< fieldset >
< legend > {{ t "form.prefs.fieldset.authentication_settings" }}< / legend >
< label for = "form-username" > {{ t "form.user.label.username" }}< / label >
< input type = "text" name = "username" id = "form-username" value = "{{ .form.Username }}" autocomplete = "username" required >
< label for = "form-password" > {{ t "form.user.label.password" }}< / label >
< input type = "password" name = "password" id = "form-password" value = "{{ .form.Password }}" autocomplete = "new-password" >
< label for = "form-confirmation" > {{ t "form.user.label.confirmation" }}< / label >
< input type = "password" name = "confirmation" id = "form-confirmation" value = "{{ .form.Confirmation }}" autocomplete = "new-password" >
{{ if hasOAuth2Provider "google" }}
< div class = "panel" >
{{ if .user.GoogleID }}
< a href = "{{ route " oauth2Unlink " " provider " " google " } } " > {{ t "page.settings.unlink_google_account" }}< / a >
{{ else }}
< a href = "{{ route " oauth2Redirect " " provider " " google " } } " > {{ t "page.settings.link_google_account" }}< / a >
{{ end }}
< / div >
{{ else if hasOAuth2Provider "oidc" }}
< div class = "panel" >
{{ if .user.OpenIDConnectID }}
< a href = "{{ route " oauth2Unlink " " provider " " oidc " } } " > {{ t "page.settings.unlink_oidc_account" }}< / a >
{{ else }}
< a href = "{{ route " oauth2Redirect " " provider " " oidc " } } " > {{ t "page.settings.link_oidc_account" }}< / a >
{{ end }}
< / div >
{{ end }}
< div class = "buttons" >
< button type = "submit" class = "button button-primary" data-label-loading = "{{ t " form . submit . saving " } } " > {{ t "action.update" }}< / button >
< / div >
2023-11-05 18:57:35 +01:00
< / fieldset >
{{ if .webAuthnEnabled }}
< fieldset >
< legend > {{ t "page.settings.webauthn.passkeys" }}< / legend >
< div class = "alert alert-error hidden" id = "webauthn-error" >
{{ t "page.settings.webauthn.register.error" }}
< / div >
< div class = "buttons" >
< button class = "button" id = "webauthn-register" disabled >
{{ t "page.settings.webauthn.register" }}
< / button >
{{ if gt .countWebAuthnCerts 0}}
< button class = "button" id = "webauthn-delete" >
{{ plural "page.settings.webauthn.delete" .countWebAuthnCerts .countWebAuthnCerts }}
< / button >
{{ end }}
< / div >
{{ if .webAuthnCerts}}
< div class = "details-content" >
< table >
< tr >
< th > {{ t "page.settings.webauthn.passkey_name" }}< / th >
< th > {{ t "page.settings.webauthn.added_on" }}< / th >
< th > {{ t "page.settings.webauthn.last_seen_on" }}< / th >
< th > {{ t "page.settings.webauthn.actions" }}< / th >
< / tr >
{{ range .webAuthnCerts }}
< tr >
< td > {{ .Name }}< / td >
< td > {{ elapsed $.user.Timezone .AddedOn }}< / td >
< td > {{ elapsed $.user.Timezone .LastSeenOn }}< / td >
< td >
< a href = "#"
data-confirm="true"
data-label-question="{{ t "confirm.question" }}"
data-label-yes="{{ t "confirm.yes" }}"
data-label-no="{{ t "confirm.no" }}"
data-label-loading="{{ t "confirm.loading" }}"
data-url="{{ route "webauthnDelete" "credentialHandle" .HandleEncoded }}">{{ icon "delete" }}{{ t "action.remove" }}< / a >
< a href = "{{ route " webauthnRename " " credentialHandle " . HandleEncoded } } " > {{ icon "edit" }} {{ t "action.edit" }}< / a >
< / td >
< / tr >
{{ end }}
< / table >
< / div >
{{ end }}
2023-09-11 20:35:08 +02:00
< / fieldset >
2023-11-05 18:57:35 +01:00
{{ end }}
2023-09-11 20:35:08 +02:00
< fieldset >
< legend > {{ t "form.prefs.fieldset.reader_settings" }}< / legend >
< label for = "form-cjk-reading-speed" > {{ t "form.prefs.label.cjk_reading_speed" }}< / label >
< input type = "number" name = "cjk_reading_speed" id = "form-cjk-reading-speed" value = "{{ .form.CJKReadingSpeed }}" min = "1" >
< label for = "form-default-reading-speed" > {{ t "form.prefs.label.default_reading_speed" }}< / label >
< input type = "number" name = "default_reading_speed" id = "form-default-reading-speed" value = "{{ .form.DefaultReadingSpeed }}" min = "1" >
< label > < input type = "checkbox" name = "show_reading_time" value = "1" { { if . form . ShowReadingTime } } checked { { end } } > {{ t "form.prefs.label.show_reading_time" }}< / label >
< label > < input type = "checkbox" name = "mark_read_on_view" value = "1" { { if . form . MarkReadOnView } } checked { { end } } > {{ t "form.prefs.label.mark_read_on_view" }}< / label >
< div class = "buttons" >
< button type = "submit" class = "button button-primary" data-label-loading = "{{ t " form . submit . saving " } } " > {{ t "action.update" }}< / button >
< / div >
< / fieldset >
< fieldset >
< legend > {{ t "form.prefs.fieldset.application_settings" }}< / legend >
< label for = "form-language" > {{ t "form.prefs.label.language" }}< / label >
< select id = "form-language" name = "language" >
{{ range $key, $value := .languages }}
< option value = "{{ $key }}" { { if eq $ key $ . form . Language } } selected = "selected" { { end } } > {{ $value }}< / option >
{{ end }}
< / select >
< label for = "form-timezone" > {{ t "form.prefs.label.timezone" }}< / label >
< select id = "form-timezone" name = "timezone" >
{{ range $key, $value := .timezones }}
< option value = "{{ $key }}" { { if eq $ key $ . form . Timezone } } selected = "selected" { { end } } > {{ $value }}< / option >
{{ end }}
< / select >
< label for = "form-theme" > {{ t "form.prefs.label.theme" }}< / label >
< select id = "form-theme" name = "theme" >
{{ range $key, $value := .themes }}
< option value = "{{ $key }}" { { if eq $ key $ . form . Theme } } selected = "selected" { { end } } > {{ $value }}< / option >
{{ end }}
< / select >
< div class = "form-label-row" >
< label for = "form-display-mode" > {{ t "form.prefs.label.display_mode" }}< / label >
< a href = "https://developer.mozilla.org/en-US/docs/Web/Manifest/display" target = "_blank" >
{{ icon "external-link" }}
< / a >
< / div >
< select id = "form-display-mode" name = "display_mode" >
< option value = "fullscreen" { { if eq " fullscreen " $ . form . DisplayMode } } selected = "selected" { { end } } > {{ t "form.prefs.select.fullscreen" }}< / option >
< option value = "standalone" { { if eq " standalone " $ . form . DisplayMode } } selected = "selected" { { end } } > {{ t "form.prefs.select.standalone" }}< / option >
< option value = "minimal-ui" { { if eq " minimal-ui " $ . form . DisplayMode } } selected = "selected" { { end } } > {{ t "form.prefs.select.minimal_ui" }}< / option >
< option value = "browser" { { if eq " browser " $ . form . DisplayMode } } selected = "selected" { { end } } > {{ t "form.prefs.select.browser" }}< / option >
< / select >
< label for = "form-default-home-page" > {{ t "form.prefs.label.default_home_page" }}< / label >
< select id = "form-default-home-page" name = "default_home_page" >
{{ range $key, $value := .default_home_pages }}
< option value = "{{ $key }}" { { if eq $ key $ . form . DefaultHomePage } } selected = "selected" { { end } } > {{ t $value }}< / option >
{{ end }}
< / select >
< label for = "form-entry-direction" > {{ t "form.prefs.label.entry_sorting" }}< / label >
< select id = "form-entry-direction" name = "entry_direction" >
< option value = "asc" { { if eq " asc " $ . form . EntryDirection } } selected = "selected" { { end } } > {{ t "form.prefs.select.older_first" }}< / option >
< option value = "desc" { { if eq " desc " $ . form . EntryDirection } } selected = "selected" { { end } } > {{ t "form.prefs.select.recent_first" }}< / option >
< / select >
< label for = "form-entry-order" > {{ t "form.prefs.label.entry_order" }}< / label >
< select id = "form-entry-order" name = "entry_order" >
< option value = "published_at" { { if eq " published_at " $ . form . EntryOrder } } selected = "selected" { { end } } > {{ t "form.prefs.select.publish_time" }}< / option >
< option value = "created_at" { { if eq " created_at " $ . form . EntryOrder } } selected = "selected" { { end } } > {{ t "form.prefs.select.created_time" }}< / option >
< / select >
< label for = "form-categories-sorting-order" > {{ t "form.prefs.label.categories_sorting_order" }}< / label >
< select id = "form-categories-sorting-order" name = "categories_sorting_order" >
{{ range $key, $value := .categories_sorting_options }}
< option value = "{{ $key }}" { { if eq $ key $ . form . CategoriesSortingOrder } } selected = "selected" { { end } } > {{ t $value }}< / option >
{{ end }}
< / select >
< label for = "form-gesture-nav" > {{ t "form.prefs.label.gesture_nav" }}< / label >
< select id = "form-gesture-nav" name = "gesture_nav" >
< option value = "none" { { if eq " none " $ . form . GestureNav } } selected = "selected" { { end } } > {{ t "form.prefs.select.none" }}< / option >
< option value = "tap" { { if eq " tap " $ . form . GestureNav } } selected = "selected" { { end } } > {{ t "form.prefs.select.tap" }}< / option >
< option value = "swipe" { { if eq " swipe " $ . form . GestureNav } } selected = "selected" { { end } } > {{ t "form.prefs.select.swipe" }}< / option >
< / select >
< label for = "form-entries-per-page" > {{ t "form.prefs.label.entries_per_page" }}< / label >
< input type = "number" name = "entries_per_page" id = "form-entries-per-page" value = "{{ .form.EntriesPerPage }}" min = "1" >
< label > < input type = "checkbox" name = "keyboard_shortcuts" value = "1" { { if . form . KeyboardShortcuts } } checked { { end } } > {{ t "form.prefs.label.keyboard_shortcuts" }}< / label >
< label > < input type = "checkbox" name = "entry_swipe" value = "1" { { if . form . EntrySwipe } } checked { { end } } > {{ t "form.prefs.label.entry_swipe" }}< / label >
< label > {{t "form.prefs.label.custom_css" }}< / label > < textarea name = "custom_css" cols = "40" rows = "8" spellcheck = "false" > {{ .form.CustomCSS }}< / textarea >
< div class = "buttons" >
< button type = "submit" class = "button button-primary" data-label-loading = "{{ t " form . submit . saving " } } " > {{ t "action.update" }}< / button >
< / div >
< / fieldset >
2017-11-20 06:10:04 +01:00
< / form >
{{ end }}