diff --git a/internal/handlers/settings.go b/internal/handlers/settings.go
index 0c7f721..4e4be37 100644
--- a/internal/handlers/settings.go
+++ b/internal/handlers/settings.go
@@ -2,6 +2,7 @@ package handlers
import (
"html/template"
+ "log/slog"
"net/http"
"strings"
@@ -9,89 +10,7 @@ import (
"gitea.leeworks.dev/0xwheatyz/gitea-mobile/internal/middleware"
)
-var settingsTemplate = template.Must(template.New("settings").Parse(`
-
-
-
-
- Settings — Gitea Mobile
-
-
-
- Settings
-
- {{if .Message}}
- {{.Message}}
- {{end}}
-
- {{if .HasToken}}
-
-
Status: Connected
-
A Gitea API token is configured.
-
-
- {{end}}
-
-
-
- {{if .HasToken}}
-
- Back to Dashboard
-
- {{end}}
-
-`))
+const settingsTemplatePath = "internal/templates/settings.html"
// SettingsHandler handles GET and POST requests for the settings page.
type SettingsHandler struct {
@@ -126,8 +45,7 @@ func (h *SettingsHandler) handleGet(w http.ResponseWriter, r *http.Request) {
}
data := settingsData{HasToken: hasToken}
- w.Header().Set("Content-Type", "text/html; charset=utf-8")
- settingsTemplate.Execute(w, data)
+ h.renderSettings(w, data)
}
func (h *SettingsHandler) handlePost(w http.ResponseWriter, r *http.Request) {
@@ -172,6 +90,18 @@ func (h *SettingsHandler) renderWithMessage(w http.ResponseWriter, r *http.Reque
Message: msg,
MessageType: msgType,
}
- w.Header().Set("Content-Type", "text/html; charset=utf-8")
- settingsTemplate.Execute(w, data)
+ h.renderSettings(w, data)
+}
+
+func (h *SettingsHandler) renderSettings(w http.ResponseWriter, data settingsData) {
+ tmpl, err := template.ParseFiles(settingsTemplatePath)
+ if err != nil {
+ slog.Error("failed to parse settings template", "error", err)
+ http.Error(w, "template error", http.StatusInternalServerError)
+ return
+ }
+ w.Header().Set("Content-Type", "text/html; charset=utf-8")
+ if err := tmpl.Execute(w, data); err != nil {
+ slog.Error("failed to execute settings template", "error", err)
+ }
}
diff --git a/internal/templates/settings.html b/internal/templates/settings.html
new file mode 100644
index 0000000..411e89c
--- /dev/null
+++ b/internal/templates/settings.html
@@ -0,0 +1,83 @@
+
+
+
+
+
+ Settings — Gitea Mobile
+
+
+
+ Settings
+
+ {{if .Message}}
+ {{.Message}}
+ {{end}}
+
+ {{if .HasToken}}
+
+
Status: Connected
+
A Gitea API token is configured.
+
+
+ {{end}}
+
+
+
+ {{if .HasToken}}
+
+ Back to Dashboard
+
+ {{end}}
+
+