diff options
Diffstat (limited to 'internal/ui')
-rw-r--r-- | internal/ui/form/settings.go | 10 | ||||
-rw-r--r-- | internal/ui/settings_show.go | 1 | ||||
-rw-r--r-- | internal/ui/settings_update.go | 1 | ||||
-rw-r--r-- | internal/ui/static/css/common.css | 4 |
4 files changed, 14 insertions, 2 deletions
diff --git a/internal/ui/form/settings.go b/internal/ui/form/settings.go index cf18bd2e..1b9e48dd 100644 --- a/internal/ui/form/settings.go +++ b/internal/ui/form/settings.go @@ -10,6 +10,7 @@ import ( "miniflux.app/v2/internal/config" "miniflux.app/v2/internal/locale" "miniflux.app/v2/internal/model" + "miniflux.app/v2/internal/validator" ) // MarkReadBehavior list all possible behaviors for automatically marking an entry as read @@ -37,6 +38,7 @@ type SettingsForm struct { ShowReadingTime bool CustomCSS string CustomJS string + ExternalFontHosts string EntrySwipe bool GestureNav string DisplayMode string @@ -101,6 +103,7 @@ func (s *SettingsForm) Merge(user *model.User) *model.User { user.ShowReadingTime = s.ShowReadingTime user.Stylesheet = s.CustomCSS user.CustomJS = s.CustomJS + user.ExternalFontHosts = s.ExternalFontHosts user.EntrySwipe = s.EntrySwipe user.GestureNav = s.GestureNav user.DisplayMode = s.DisplayMode @@ -148,6 +151,12 @@ func (s *SettingsForm) Validate() *locale.LocalizedError { return locale.NewLocalizedError("error.settings_media_playback_rate_range") } + if s.ExternalFontHosts != "" { + if !validator.IsValidDomainList(s.ExternalFontHosts) { + return locale.NewLocalizedError("error.settings_invalid_domain_list") + } + } + return nil } @@ -183,6 +192,7 @@ func NewSettingsForm(r *http.Request) *SettingsForm { ShowReadingTime: r.FormValue("show_reading_time") == "1", CustomCSS: r.FormValue("custom_css"), CustomJS: r.FormValue("custom_js"), + ExternalFontHosts: r.FormValue("external_font_hosts"), EntrySwipe: r.FormValue("entry_swipe") == "1", GestureNav: r.FormValue("gesture_nav"), DisplayMode: r.FormValue("display_mode"), diff --git a/internal/ui/settings_show.go b/internal/ui/settings_show.go index 72e1f5ab..179b9802 100644 --- a/internal/ui/settings_show.go +++ b/internal/ui/settings_show.go @@ -34,6 +34,7 @@ func (h *handler) showSettingsPage(w http.ResponseWriter, r *http.Request) { ShowReadingTime: user.ShowReadingTime, CustomCSS: user.Stylesheet, CustomJS: user.CustomJS, + ExternalFontHosts: user.ExternalFontHosts, EntrySwipe: user.EntrySwipe, GestureNav: user.GestureNav, DisplayMode: user.DisplayMode, diff --git a/internal/ui/settings_update.go b/internal/ui/settings_update.go index 0e03752d..be99adb5 100644 --- a/internal/ui/settings_update.go +++ b/internal/ui/settings_update.go @@ -85,6 +85,7 @@ func (h *handler) updateSettings(w http.ResponseWriter, r *http.Request) { MediaPlaybackRate: model.OptionalNumber(settingsForm.MediaPlaybackRate), BlockFilterEntryRules: model.OptionalString(settingsForm.BlockFilterEntryRules), KeepFilterEntryRules: model.OptionalString(settingsForm.KeepFilterEntryRules), + ExternalFontHosts: model.OptionalString(settingsForm.ExternalFontHosts), } if validationErr := validator.ValidateUserModification(h.store, loggedUser.ID, userModificationRequest); validationErr != nil { diff --git a/internal/ui/static/css/common.css b/internal/ui/static/css/common.css index 6ffaa8bf..2bd3a535 100644 --- a/internal/ui/static/css/common.css +++ b/internal/ui/static/css/common.css @@ -427,7 +427,6 @@ input[type="number"] { line-height: 20px; width: 250px; font-size: 99%; - margin-bottom: 10px; margin-top: 5px; appearance: none; } @@ -448,7 +447,8 @@ input[type="number"]:focus { } input[type="checkbox"] { - margin-bottom: 15px; + margin-top: 10px; + margin-bottom: 10px; } textarea { |