diff options
Diffstat (limited to 'handler.go')
| -rw-r--r-- | handler.go | 24 |
1 files changed, 21 insertions, 3 deletions
@@ -10,6 +10,7 @@ func IndexHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/" flash := Flash{} flash.Error = session.Flashes("error") @@ -30,6 +31,7 @@ func RegisterHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/register" flash := Flash{} flash.Error = session.Flashes("error") @@ -99,6 +101,7 @@ func AboutHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/about" flash := Flash{} flash.Error = session.Flashes("error") @@ -119,6 +122,7 @@ func ServerHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/server" flash := Flash{} flash.Error = session.Flashes("error") @@ -139,6 +143,7 @@ func HowtoHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/howto" flash := Flash{} flash.Error = session.Flashes("error") @@ -159,6 +164,7 @@ func UserHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/user" flash := Flash{} flash.Error = session.Flashes("error") @@ -179,6 +185,7 @@ func PasswordHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/password" flash := Flash{} flash.Error = session.Flashes("error") @@ -239,7 +246,11 @@ func ChangePasswordHandler(w http.ResponseWriter, r *http.Request) { } func ChangeLocaleHandler(w http.ResponseWriter, r *http.Request) { - err := r.ParseForm() + session, err := store.Get(r, "_SID") + if err != nil { + log.Println("Info: ", err) + } + err = r.ParseForm() if err != nil { log.Panic(err) http.Error(w, err.Error(), http.StatusInternalServerError) @@ -248,11 +259,18 @@ func ChangeLocaleHandler(w http.ResponseWriter, r *http.Request) { locale := r.URL.Query().Get("to") + var page string + if session.Values["page"] == "" { + page = "/" + } else { + page = session.Values["page"].(string) + } + if len(locale) == 0 { - http.Redirect(w, r, "/", 302) + http.Redirect(w, r, page, 302) return } cookie := http.Cookie{Name: "lang", Value: locale} http.SetCookie(w, &cookie) - http.Redirect(w, r, "/", 302) + http.Redirect(w, r, page, 302) } |
