Move settings to a separate page and handler.

This commit is contained in:
Mihai Parparita 2014-08-24 20:39:32 -07:00
parent 774f4b9769
commit cdf8ee326b
3 changed files with 47 additions and 22 deletions

View file

@ -48,6 +48,7 @@ func init() {
router.HandleFunc("/digest/send", sendDigestHandler).Name("send-digest").Methods("POST")
router.HandleFunc("/digest/cron", digestCronHandler)
router.HandleFunc("/account/settings", settingsHandler).Name("settings")
router.HandleFunc("/account/set-timezone", setTimezoneHandler).Name("set-timezone").Methods("POST")
router.HandleFunc("/admin/digest", digestAdminHandler)
@ -184,11 +185,7 @@ func indexHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
var data = map[string]interface{}{
"Account": account,
"Timezones": timezones,
}
if err := templates["index"].Execute(w, data); err != nil {
if err := templates["index"].Execute(w, nil); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
@ -339,6 +336,26 @@ func githubOAuthCallbackHandler(w http.ResponseWriter, r *http.Request) {
http.Redirect(w, r, indexUrl.String(), http.StatusFound)
}
func settingsHandler(w http.ResponseWriter, r *http.Request) {
session, _ := sessionStore.Get(r, sessionConfig.CookieName)
userId := session.Values[sessionConfig.UserIdKey].(int)
c := appengine.NewContext(r)
account, err := getAccount(c, userId)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
var data = map[string]interface{}{
"Account": account,
"Timezones": timezones,
}
if err := templates["settings"].Execute(w, data); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
func setTimezoneHandler(w http.ResponseWriter, r *http.Request) {
session, _ := sessionStore.Get(r, sessionConfig.CookieName)
userId := session.Values[sessionConfig.UserIdKey].(int)

View file

@ -13,22 +13,7 @@
<form id="send-form" method="POST" action="{{routeUrl "send-digest"}}">
<input type="submit" value="Email Digest">
</form>
<p>
<form method="POST" action="{{routeUrl "set-timezone"}}">
<select name="timezone_name">
{{$accountTimezoneName := .Account.TimezoneName}}
{{range .Timezones}}
{{if .LocationName}}
<option value={{.LocationName}} {{if eq .LocationName $accountTimezoneName}}selected{{end}}>{{.LocationName}} (GMT {{.DisplayUTCOffset}})</option>
{{else}}
<option disabled></option>
{{end}}
{{end}}
</select>
<input type="submit" value="Set Timezone">
</form>
</p>
-
<a href="{{routeUrl "settings"}}">Settings</a>
{{end}}

View file

@ -0,0 +1,23 @@
{{define "title"}}GitHop - Settings{{end}}
{{define "body"}}
<p>
<form method="POST" action="{{routeUrl "set-timezone"}}">
<select name="timezone_name">
{{$accountTimezoneName := .Account.TimezoneName}}
{{range .Timezones}}
{{if .LocationName}}
<option value={{.LocationName}} {{if eq .LocationName $accountTimezoneName}}selected{{end}}>{{.LocationName}} (GMT {{.DisplayUTCOffset}})</option>
{{else}}
<option disabled></option>
{{end}}
{{end}}
</select>
<input type="submit" value="Set Timezone">
</form>
</p>
{{end}}