Move digest viewing to its own page.

This commit is contained in:
Mihai Parparita 2014-08-16 15:24:38 -07:00
parent 0ecaeef5e3
commit c66ee02a55
4 changed files with 40 additions and 9 deletions

View file

@ -41,6 +41,7 @@ func init() {
router.HandleFunc("/session/sign-out", signOutHandler).Name("sign-out")
router.HandleFunc("/github/callback", githubOAuthCallbackHandler)
router.HandleFunc("/digest/view", viewDigestHandler).Name("view-digest")
router.HandleFunc("/digest/send", sendDigestHandler).Name("send-digest").Methods("POST")
router.HandleFunc("/digest/cron", digestCronHandler)
@ -133,6 +134,29 @@ func indexHandler(w http.ResponseWriter, r *http.Request) {
return
}
signOutUrl, _ := router.Get("sign-out").URL()
viewDigestUrl, _ := router.Get("view-digest").URL()
sendDigestUrl, _ := router.Get("send-digest").URL()
var data = map[string]interface{}{
"SignOutUrl": signOutUrl.String(),
"ViewDigestUrl": viewDigestUrl.String(),
"SendDigestUrl": sendDigestUrl.String(),
}
if err := templates["index"].Execute(w, data); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
func viewDigestHandler(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
}
oauthTransport := githubOAuthTransport(c)
oauthTransport.Token = &account.OAuthToken
githubClient := github.NewClient(oauthTransport.Client())
@ -141,14 +165,10 @@ func indexHandler(w http.ResponseWriter, r *http.Request) {
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
signOutUrl, _ := router.Get("sign-out").URL()
sendDigestUrl, _ := router.Get("send-digest").URL()
var data = map[string]interface{}{
"SignOutUrl": signOutUrl.String(),
"SendDigestUrl": sendDigestUrl.String(),
"Digest": digest,
"Digest": digest,
}
if err := templates["index"].Execute(w, data); err != nil {
if err := templates["digest-page"].Execute(w, data); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}

View file

@ -2,3 +2,7 @@ body {
font-family: Helvetica, Arial, sans-serif;
font-size: 10pt;
}
#send-form {
display: inline;
}

View file

@ -0,0 +1,7 @@
{{define "title"}}GitHop - Digest for {{.Digest.User.Login}}{{end}}
{{define "body"}}
{{template "digest" .Digest}}
{{end}}

View file

@ -8,10 +8,10 @@
</a>
</p>
<form method="POST" action="{{.SendDigestUrl}}">
<a href="{{.ViewDigestUrl}}">View Digest</a>
-
<form id="send-form" method="POST" action="{{.SendDigestUrl}}">
<input type="submit" value="Email Digest">
</form>
{{template "digest" .Digest}}
{{end}}