Add option to disable emails.

This commit is contained in:
Mihai Parparita 2014-11-22 14:42:13 -08:00
parent 543552ae6b
commit 905f667a1e
3 changed files with 32 additions and 14 deletions

View file

@ -295,13 +295,17 @@ func sendDigestHandler(w http.ResponseWriter, r *http.Request) {
return
}
_, err = sendDigestForAccount(account, c)
sent, err := sendDigestForAccount(account, c)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
session.AddFlash("Digest emailed!")
if sent {
session.AddFlash("Digest emailed!")
} else {
session.AddFlash("No digest was sent, it was empty or disabled.")
}
session.Save(r, w)
indexUrl, _ := router.Get("index").URL()
http.Redirect(w, r, indexUrl.String(), http.StatusFound)
@ -355,6 +359,14 @@ func sendDigestForAccount(account *Account, c appengine.Context) (bool, error) {
oauthTransport.Token = &account.OAuthToken
githubClient := github.NewClient(oauthTransport.Client())
emailAddress, err := account.GetDigestEmailAddress(githubClient)
if err != nil {
return false, err
}
if emailAddress == "disabled" {
return false, nil
}
digest, err := newDigest(c, githubClient, account)
if err != nil {
return false, err
@ -371,11 +383,6 @@ func sendDigestForAccount(account *Account, c appengine.Context) (bool, error) {
return false, err
}
emailAddress, err := account.GetDigestEmailAddress(githubClient)
if err != nil {
return false, err
}
digestMessage := &mail.Message{
Sender: "RetroGit <digests@retrogit.com>",
To: []string{emailAddress},

View file

@ -10,24 +10,33 @@
You're signed in as
{{template "user" .User}}
(<form class="inline" method="POST" action="{{routeUrl "sign-out"}}"><input type="submit" class="inline" value="sign out"></form>).
You'll be getting a {{.SettingsSummary.Frequency}} digest of your past
GitHub activity in {{.SettingsSummary.RepositoryCount}} repositories sent to
<code>{{.SettingsSummary.EmailAddress}}</code>
{{if eq .SettingsSummary.EmailAddress "disabled"}}
You've disabled emails, but you can still view your digest for your
GitHub activity in {{.SettingsSummary.RepositoryCount}} repositories below
{{else}}
You'll be getting a {{.SettingsSummary.Frequency}} digest of your past
GitHub activity in {{.SettingsSummary.RepositoryCount}} repositories sent to
<code>{{.SettingsSummary.EmailAddress}}</code>
{{end}}
(<a href="{{routeUrl "settings"}}">change settings</a>).
</div>
{{if ne .SettingsSummary.EmailAddress "disabled"}}
<div class="blurb">
If you just can't wait, you can get your digest now:
</div>
{{end}}
<div id="primary-actions">
<form class="inline" method="GET" action="{{routeUrl "view-digest"}}">
<input type="submit" class="action-button" value="View Digest">
</form>
or
<form class="inline" method="POST" action="{{routeUrl "send-digest"}}">
<input type="submit" class="action-button" value="Email Digest">
</form>
{{if ne .SettingsSummary.EmailAddress "disabled"}}
or
<form class="inline" method="POST" action="{{routeUrl "send-digest"}}">
<input type="submit" class="action-button" value="Email Digest">
</form>
{{end}}
</div>
{{if .DetectTimezone }}

View file

@ -69,6 +69,8 @@
{{range .EmailAddresses}}
<option value="{{.}}" {{if eq . $accountEmailAddress}}selected{{end}}>{{.}}</option>
{{end}}
<option disabled></option>
<option value="disabled" {{if eq "disabled" $accountEmailAddress}}selected{{end}}>Disabled (no email)</option>
</select>
</label>
<div class="explanation">