diff --git a/main.go b/main.go index 0b4fa7d..831a007 100644 --- a/main.go +++ b/main.go @@ -214,37 +214,6 @@ func aboutHandler(w http.ResponseWriter, r *http.Request) { t.Execute(w, model) } -// preferenceHandle handles request of preference page. -func preferenceHandler(w http.ResponseWriter, r *http.Request) { - httpSession, _ := session.HTTPSession.Get(r, "wide-session") - - if httpSession.IsNew { - http.Redirect(w, r, "/preference", http.StatusFound) - - return - } - - httpSession.Options.MaxAge = conf.Wide.HTTPSessionMaxAge - httpSession.Save(r, w) - - username := httpSession.Values["username"].(string) - user := conf.Wide.GetUser(username) - - model := map[string]interface{}{"conf": conf.Wide, "i18n": i18n.GetAll(user.Locale), "user": user, - "ver": conf.WideVersion, "goos": runtime.GOOS, "goarch": runtime.GOARCH, "gover": runtime.Version()} - - t, err := template.ParseFiles("views/preference.html") - - if nil != err { - glog.Error(err) - http.Error(w, err.Error(), 500) - - return - } - - t.Execute(w, model) -} - // Main. func main() { runtime.GOMAXPROCS(conf.Wide.MaxProcs) @@ -257,7 +226,6 @@ func main() { http.HandleFunc("/", handlerWrapper(indexHandler)) http.HandleFunc("/start", handlerWrapper(startHandler)) http.HandleFunc("/about", handlerWrapper(aboutHandler)) - http.HandleFunc("/preference", handlerWrapper(preferenceHandler)) http.HandleFunc("/keyboard_shortcuts", handlerWrapper(keyboardShortcutsHandler)) // static resources @@ -312,6 +280,7 @@ func main() { http.HandleFunc("/login", handlerWrapper(session.LoginHandler)) http.HandleFunc("/logout", handlerWrapper(session.LogoutHandler)) http.HandleFunc("/signup", handlerWrapper(session.SignUpUser)) + http.HandleFunc("/preference", handlerWrapper(session.PreferenceHandler)) glog.V(0).Infof("Wide is running [%s]", conf.Wide.Server) diff --git a/session/users.go b/session/users.go index 8d1e577..96d67f2 100644 --- a/session/users.go +++ b/session/users.go @@ -19,6 +19,7 @@ import ( "math/rand" "net/http" "path/filepath" + "runtime" "strconv" "text/template" @@ -34,6 +35,45 @@ const ( UserCreateError = "user create error" ) +// PreferenceHandle handles request of preference page. +func PreferenceHandler(w http.ResponseWriter, r *http.Request) { + httpSession, _ := HTTPSession.Get(r, "wide-session") + + if httpSession.IsNew { + http.Redirect(w, r, "/preference", http.StatusFound) + + return + } + + httpSession.Options.MaxAge = conf.Wide.HTTPSessionMaxAge + httpSession.Save(r, w) + + username := httpSession.Values["username"].(string) + user := conf.Wide.GetUser(username) + + if "GET" == r.Method { + model := map[string]interface{}{"conf": conf.Wide, "i18n": i18n.GetAll(user.Locale), "user": user, + "ver": conf.WideVersion, "goos": runtime.GOOS, "goarch": runtime.GOARCH, "gover": runtime.Version()} + + t, err := template.ParseFiles("views/preference.html") + + if nil != err { + glog.Error(err) + http.Error(w, err.Error(), 500) + + return + } + + t.Execute(w, model) + + return + } + + // non-GET request as save request + + +} + // LoginHandler handles request of user login. func LoginHandler(w http.ResponseWriter, r *http.Request) { if "GET" == r.Method {