added working settings page
This commit is contained in:
parent
6b3373f7d6
commit
b726530bc2
16 changed files with 549 additions and 89 deletions
|
@ -1,6 +1,9 @@
|
|||
package main
|
||||
|
||||
import "net/http"
|
||||
import (
|
||||
"html/template"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type UserSettings struct {
|
||||
Theme string
|
||||
|
@ -57,4 +60,63 @@ func saveUserSettings(w http.ResponseWriter, settings UserSettings) {
|
|||
Secure: true, // Ensure cookie is sent over HTTPS only
|
||||
SameSite: http.SameSiteNoneMode, // Set SameSite to None
|
||||
})
|
||||
|
||||
printDebug("settings saved: %v", settings)
|
||||
}
|
||||
|
||||
func handleSaveSettings(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method == "POST" {
|
||||
// Load current settings
|
||||
settings := loadUserSettings(r)
|
||||
|
||||
// Update only the settings that were submitted in the form
|
||||
if theme := r.FormValue("theme"); theme != "" {
|
||||
settings.Theme = theme
|
||||
}
|
||||
if lang := r.FormValue("lang"); lang != "" {
|
||||
settings.Language = lang
|
||||
}
|
||||
if safe := r.FormValue("safe"); safe != "" {
|
||||
settings.SafeSearch = safe
|
||||
}
|
||||
|
||||
// Save the updated settings
|
||||
saveUserSettings(w, settings)
|
||||
|
||||
// Redirect back to the previous page or settings page
|
||||
http.Redirect(w, r, r.FormValue("past"), http.StatusSeeOther)
|
||||
}
|
||||
}
|
||||
|
||||
func handleSettings(w http.ResponseWriter, r *http.Request) {
|
||||
// Load user settings
|
||||
settings = loadUserSettings(r)
|
||||
|
||||
data := struct {
|
||||
LanguageOptions []LanguageOption
|
||||
CurrentLang string
|
||||
Theme string
|
||||
Safe string
|
||||
}{
|
||||
LanguageOptions: languageOptions,
|
||||
CurrentLang: settings.Language,
|
||||
Theme: settings.Theme,
|
||||
Safe: settings.SafeSearch,
|
||||
}
|
||||
|
||||
printDebug("Rendering settings with data: %+v", data)
|
||||
|
||||
tmpl, err := template.ParseFiles("templates/settings.html")
|
||||
if err != nil {
|
||||
printErr("Error parsing template: %s", err)
|
||||
http.Error(w, "Internal Server Error", 500)
|
||||
return
|
||||
}
|
||||
|
||||
err = tmpl.Execute(w, data)
|
||||
if err != nil {
|
||||
printErr("Error executing template: %s", err)
|
||||
http.Error(w, "Internal Server Error", 500)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue