mirror of
https://github.com/miniflux/v2.git
synced 2025-06-27 16:36:00 +00:00
fix(ui): reading preferences are reset if the form values are incorrect
This commit is contained in:
parent
6cbe8c3a9d
commit
f5fde36d45
4 changed files with 16 additions and 11 deletions
|
@ -115,14 +115,14 @@
|
||||||
|
|
||||||
<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="show_reading_time" value="1" {{ if .form.ShowReadingTime }}checked{{ end }}> {{ t "form.prefs.label.show_reading_time" }}</label>
|
||||||
|
|
||||||
<label><input type="radio" name="mark_read_behavior" value="{{ .const.NoAutoMarkAsRead }}"
|
<label><input type="radio" name="mark_read_behavior" value="{{ .readBehaviors.NoAutoMarkAsRead }}"
|
||||||
{{ if eq .form.MarkReadBehavior .const.NoAutoMarkAsRead }}checked{{end}} > {{ t "form.prefs.label.mark_read_manually" }}</label>
|
{{ if eq .form.MarkReadBehavior .readBehaviors.NoAutoMarkAsRead }}checked{{end}} > {{ t "form.prefs.label.mark_read_manually" }}</label>
|
||||||
<label><input type="radio" name="mark_read_behavior" value="{{ .const.MarkAsReadOnView }}"
|
<label><input type="radio" name="mark_read_behavior" value="{{ .readBehaviors.MarkAsReadOnView }}"
|
||||||
{{ if eq .form.MarkReadBehavior .const.MarkAsReadOnView }}checked{{end}} > {{ t "form.prefs.label.mark_read_on_view" }}</label>
|
{{ if eq .form.MarkReadBehavior .readBehaviors.MarkAsReadOnView }}checked{{end}} > {{ t "form.prefs.label.mark_read_on_view" }}</label>
|
||||||
<label><input type="radio" name="mark_read_behavior" value="{{ .const.MarkAsReadOnViewButWaitForPlayerCompletion }}"
|
<label><input type="radio" name="mark_read_behavior" value="{{ .readBehaviors.MarkAsReadOnViewButWaitForPlayerCompletion }}"
|
||||||
{{ if eq .form.MarkReadBehavior .const.MarkAsReadOnViewButWaitForPlayerCompletion }}checked{{end}}> {{ t "form.prefs.label.mark_read_on_view_or_media_completion" }}</label>
|
{{ if eq .form.MarkReadBehavior .readBehaviors.MarkAsReadOnViewButWaitForPlayerCompletion }}checked{{end}}> {{ t "form.prefs.label.mark_read_on_view_or_media_completion" }}</label>
|
||||||
<label><input type="radio" name="mark_read_behavior" value="{{ .const.MarkAsReadOnlyOnPlayerCompletion }}"
|
<label><input type="radio" name="mark_read_behavior" value="{{ .readBehaviors.MarkAsReadOnlyOnPlayerCompletion }}"
|
||||||
{{ if eq .form.MarkReadBehavior .const.MarkAsReadOnlyOnPlayerCompletion }}checked{{end}} > {{ t "form.prefs.label.mark_read_on_media_completion" }}</label>
|
{{ if eq .form.MarkReadBehavior .readBehaviors.MarkAsReadOnlyOnPlayerCompletion }}checked{{end}} > {{ t "form.prefs.label.mark_read_on_media_completion" }}</label>
|
||||||
|
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<button type="submit" class="button button-primary" data-label-loading="{{ t "form.submit.saving" }}">{{ t "action.update" }}</button>
|
<button type="submit" class="button button-primary" data-label-loading="{{ t "form.submit.saving" }}">{{ t "action.update" }}</button>
|
||||||
|
|
|
@ -16,7 +16,7 @@ import (
|
||||||
// MarkReadBehavior list all possible behaviors for automatically marking an entry as read
|
// MarkReadBehavior list all possible behaviors for automatically marking an entry as read
|
||||||
type MarkReadBehavior string
|
type MarkReadBehavior string
|
||||||
|
|
||||||
var (
|
const (
|
||||||
NoAutoMarkAsRead MarkReadBehavior = "no-auto"
|
NoAutoMarkAsRead MarkReadBehavior = "no-auto"
|
||||||
MarkAsReadOnView MarkReadBehavior = "on-view"
|
MarkAsReadOnView MarkReadBehavior = "on-view"
|
||||||
MarkAsReadOnViewButWaitForPlayerCompletion MarkReadBehavior = "on-view-but-wait-for-player-completion"
|
MarkAsReadOnViewButWaitForPlayerCompletion MarkReadBehavior = "on-view-but-wait-for-player-completion"
|
||||||
|
|
|
@ -63,8 +63,7 @@ func (h *handler) showSettingsPage(w http.ResponseWriter, r *http.Request) {
|
||||||
sess := session.New(h.store, request.SessionID(r))
|
sess := session.New(h.store, request.SessionID(r))
|
||||||
view := view.New(h.tpl, r, sess)
|
view := view.New(h.tpl, r, sess)
|
||||||
view.Set("form", settingsForm)
|
view.Set("form", settingsForm)
|
||||||
// In order to keep the continuity between form and model, I pass adhoc constants to the view
|
view.Set("readBehaviors", map[string]any{
|
||||||
view.Set("const", map[string]interface{}{
|
|
||||||
"NoAutoMarkAsRead": form.NoAutoMarkAsRead,
|
"NoAutoMarkAsRead": form.NoAutoMarkAsRead,
|
||||||
"MarkAsReadOnView": form.MarkAsReadOnView,
|
"MarkAsReadOnView": form.MarkAsReadOnView,
|
||||||
"MarkAsReadOnViewButWaitForPlayerCompletion": form.MarkAsReadOnViewButWaitForPlayerCompletion,
|
"MarkAsReadOnViewButWaitForPlayerCompletion": form.MarkAsReadOnViewButWaitForPlayerCompletion,
|
||||||
|
|
|
@ -43,6 +43,12 @@ func (h *handler) updateSettings(w http.ResponseWriter, r *http.Request) {
|
||||||
sess := session.New(h.store, request.SessionID(r))
|
sess := session.New(h.store, request.SessionID(r))
|
||||||
view := view.New(h.tpl, r, sess)
|
view := view.New(h.tpl, r, sess)
|
||||||
view.Set("form", settingsForm)
|
view.Set("form", settingsForm)
|
||||||
|
view.Set("readBehaviors", map[string]any{
|
||||||
|
"NoAutoMarkAsRead": form.NoAutoMarkAsRead,
|
||||||
|
"MarkAsReadOnView": form.MarkAsReadOnView,
|
||||||
|
"MarkAsReadOnViewButWaitForPlayerCompletion": form.MarkAsReadOnViewButWaitForPlayerCompletion,
|
||||||
|
"MarkAsReadOnlyOnPlayerCompletion": form.MarkAsReadOnlyOnPlayerCompletion,
|
||||||
|
})
|
||||||
view.Set("themes", model.Themes())
|
view.Set("themes", model.Themes())
|
||||||
view.Set("languages", locale.AvailableLanguages)
|
view.Set("languages", locale.AvailableLanguages)
|
||||||
view.Set("timezones", timezones)
|
view.Set("timezones", timezones)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue