aboutsummaryrefslogtreecommitdiff
path: root/internal/ui
diff options
context:
space:
mode:
Diffstat (limited to 'internal/ui')
-rw-r--r--internal/ui/form/settings.go10
-rw-r--r--internal/ui/settings_show.go1
-rw-r--r--internal/ui/settings_update.go1
-rw-r--r--internal/ui/static/css/common.css4
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 {
Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/docs/reference/api-reference.md (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2025-03-31fix: update `vite` to latest version (#13526)Gravatar Junseong Park 15-101/+118
2025-03-31[ci] formatGravatar Emanuele Stoppa 3-4/+2
2025-03-31fix(i18n): return value from `preferredLocale` (#13524)Gravatar Emanuele Stoppa 5-15/+51
2025-03-31chore(tailwind): delete integration (#13511)Gravatar Florian Lefebvre 16-1083/+1
2025-03-31fix(deps): update all non-major dependencies (#13521)Gravatar renovate[bot] 14-163/+163
2025-03-31[ci] formatGravatar Matt Kane 3-4/+3
2025-03-31feat(cloudflare): add KV session storage support (#13514)Gravatar Matt Kane 19-487/+490
2025-03-31fix(deps): update astro client runtimes (#13522)Gravatar renovate[bot] 4-6/+7
2025-03-27fix(deps): update astro dependencies (#13498)Gravatar renovate[bot] 47-412/+427
2025-03-27[ci] formatGravatar Emanuele Stoppa 3-8/+7
2025-03-27refactor(actions): use `Omit` to avoid leaking types to shared context (#13429)Gravatar Emanuele Stoppa 5-11/+41
2025-03-26[ci] release (#13504)astro@5.5.5@astrojs/vue@5.0.8@astrojs/tailwind@6.0.2@astrojs/svelte@7.0.8@astrojs/studio@0.1.5@astrojs/solid-js@5.0.6@astrojs/react@4.2.2@astrojs/preact@4.0.7@astrojs/netlify@6.2.4@astrojs/mdx@4.2.2@astrojs/markdoc@0.13.2@astrojs/db@0.14.9@astrojs/cloudflare@12.3.1@astrojs/alpinejs@0.4.4Gravatar Houston (Bot) 56-132/+197
2025-03-26[ci] formatGravatar Florian Lefebvre 2-2/+2
2025-03-26fix(astro): dynamically import actions (#13510)Gravatar Florian Lefebvre 12-51/+96
2025-03-26[ci] formatGravatar Matt Kane 2-2/+2
2025-03-26fix: cache raw cookie value and decode when getting (#13485)Gravatar Matt Kane 3-17/+37
2025-03-25fix: update vite (#13505)Gravatar Emanuele Stoppa 16-104/+123
2025-03-24[ci] formatGravatar Emanuele Stoppa 1-1/+1
2025-03-24fix(app): call renderer when routes don't match (#13483)Gravatar Emanuele Stoppa 4-1/+30
2025-03-21[ci] release (#13460)astro@5.5.4@astrojs/vercel@8.1.3@astrojs/tailwind@6.0.1@astrojs/svelte@7.0.7@astrojs/preact@4.0.6@astrojs/cloudflare@12.3.0Gravatar Houston (Bot) 45-118/+119
2025-03-21fix: better error handling on Stackblitz (#13484)Gravatar Matt Kane 2-0/+12
2025-03-21Repair server islands to work with client router (#13481)Gravatar Martin Trapp 2-6/+11
2025-03-21fix: generate correct external redirects (#13480)Gravatar Matt Kane 3-4/+21
2025-03-21fix(deps): update all non-major dependencies (#13440)Gravatar renovate[bot] 24-435/+436
2025-03-21[ci] formatGravatar Florian Lefebvre 2-2/+2
2025-03-21feat(cloudflare): global env (#13444)Gravatar Florian Lefebvre 6-47/+130
2025-03-21fix(deps): update astro client runtimes (#13474)Gravatar renovate[bot] 7-345/+348
2025-03-20Small change to linking style (#13472)Gravatar Chris Swithinbank 1-1/+1
2025-03-20Add deprecation notice to Tailwind integration README (#13471)Gravatar Chris Swithinbank 2-6/+11
2025-03-20[ci] formatGravatar Matt Kane 2-2/+1
2025-03-20fix(preact,svelte): empty target container before rendering `client:only` isl...Gravatar Matt Kane 5-5/+41
2025-03-20chore(renovate): group updates (#13466)Gravatar Emanuele Stoppa 1-11/+58
2025-03-19[ci] formatGravatar Matt Kane 1-3/+2
2025-03-19fix: don't attempt to move files after build with base (#13463)Gravatar Matt Kane 8-13/+66
2025-03-19[ci] formatGravatar Emanuele Stoppa 2-6/+18
2025-03-19fix(routing): don't add site to static redirects (#13447)Gravatar Emanuele Stoppa 7-10/+49
2025-03-18[ci] formatGravatar Matt Kane 2-2/+1
2025-03-18fix: set correct statusText for custom error pages (#13457)Gravatar Matt Kane 4-2/+19
2025-03-18chore(deps): update github-actions (#13459)Gravatar renovate[bot] 9-13/+13
2025-03-18chore(deps): update github-actions (#13458)Gravatar renovate[bot] 1-5/+5
2025-03-18[ci] formatGravatar Emanuele Stoppa 1-1/+3
2025-03-18chore: remove deprecated package (#13455)Gravatar Emanuele Stoppa 3-23/+16
2025-03-18fix(deps): update dependency miniflare to v4 (#13441)Gravatar renovate[bot] 2-31/+31