]> source.dussan.org Git - gitea.git/commitdiff
Improve issue mail content
authorUnknown <joe2010xtmf@163.com>
Wed, 2 Apr 2014 14:38:30 +0000 (10:38 -0400)
committerUnknown <joe2010xtmf@163.com>
Wed, 2 Apr 2014 14:38:30 +0000 (10:38 -0400)
gogs.go
models/repo.go
modules/mailer/mail.go
public/css/gogs.css
routers/repo/issue.go
routers/user/user.go
web.go

diff --git a/gogs.go b/gogs.go
index a81f3ab597e41ebede3244a561176a23c995e8b6..88f53eeb8ece7273c155d3749d05c7f9fb89c7b6 100644 (file)
--- a/gogs.go
+++ b/gogs.go
@@ -19,7 +19,7 @@ import (
 // Test that go1.2 tag above is included in builds. main.go refers to this definition.
 const go12tag = true
 
-const APP_VER = "0.2.0.0401 Alpha"
+const APP_VER = "0.2.0.0402 Alpha"
 
 func init() {
        base.AppVer = APP_VER
index 0c808f18456e85d077dc5cd58a6436843101d4b4..8dd7da23f1817943f8d2f77bf9a4d888c8c50331 100644 (file)
@@ -513,6 +513,7 @@ func NotifyWatchers(act *Action) error {
                        continue
                }
 
+               act.Id = 0
                act.UserId = watches[i].UserId
                if _, err = orm.InsertOne(act); err != nil {
                        return errors.New("repo.NotifyWatchers(create action): " + err.Error())
index d0decbe0686982e1f99a2d360e0e5c992989044e..b99fc8fdfceac360350ac613a7abf85e4e312b9d 100644 (file)
@@ -92,8 +92,8 @@ func SendActiveMail(r *middleware.Render, user *models.User) {
 }
 
 // SendNotifyMail sends mail notification of all watchers.
-func SendNotifyMail(userId, repoId int64, userName, repoName, subject, content string) error {
-       watches, err := models.GetWatches(repoId)
+func SendNotifyMail(user, owner *models.User, repo *models.Repository, issue *models.Issue) error {
+       watches, err := models.GetWatches(repo.Id)
        if err != nil {
                return errors.New("mail.NotifyWatchers(get watches): " + err.Error())
        }
@@ -101,7 +101,7 @@ func SendNotifyMail(userId, repoId int64, userName, repoName, subject, content s
        tos := make([]string, 0, len(watches))
        for i := range watches {
                uid := watches[i].UserId
-               if userId == uid {
+               if user.Id == uid {
                        continue
                }
                u, err := models.GetUserById(uid)
@@ -115,7 +115,10 @@ func SendNotifyMail(userId, repoId int64, userName, repoName, subject, content s
                return nil
        }
 
-       msg := NewMailMessageFrom(tos, userName, subject, content)
+       subject := fmt.Sprintf("[%s] %s", repo.Name, issue.Name)
+       content := fmt.Sprintf("%s<br>-<br> <a href=\"%s%s/%s/issues/%d\">View it on Gogs</a>.",
+               issue.Content, base.AppUrl, owner.Name, repo.Name, issue.Index)
+       msg := NewMailMessageFrom(tos, user.Name, subject, content)
        msg.Info = fmt.Sprintf("Subject: %s, send notify emails", subject)
        SendAsync(&msg)
        return nil
index a018a9dbaec01559c3b22492a7622e738f096eb3..6bed77114042566f0f2fd912af4073cf7a482a4a 100755 (executable)
@@ -1235,9 +1235,9 @@ html, body {
 /* admin dashboard/configuration */
 
 .admin-dl-horizontal > dt {
-    width: 320px;
+    width: 220px;
 }
 
 .admin-dl-horizontal > dd {
-    margin-left: 340px;
+    margin-left: 240px;
 }
index 6cad2c25d2ccac4840f0599689314a5056d45fc2..41b2c7e9b14dd86b79161e63fa9062619c09e518 100644 (file)
@@ -31,7 +31,8 @@ func Issues(ctx *middleware.Context) {
        ctx.Data["IssueCreatedCount"] = 0
 
        var posterId int64 = 0
-       if ctx.Query("type") == "created_by" {
+       isCreatedBy := ctx.Query("type") == "created_by"
+       if isCreatedBy {
                if !ctx.IsSigned {
                        ctx.SetCookie("redirect_to", "/"+url.QueryEscape(ctx.Req.RequestURI))
                        ctx.Redirect("/user/login/", 302)
@@ -53,6 +54,7 @@ func Issues(ctx *middleware.Context) {
        }
        var createdByCount int
 
+       showIssues := make([]models.Issue, 0, len(issues))
        // Get posters.
        for i := range issues {
                u, err := models.GetUserById(issues[i].PosterId)
@@ -60,13 +62,17 @@ func Issues(ctx *middleware.Context) {
                        ctx.Handle(200, "issue.Issues(get poster): %v", err)
                        return
                }
-               issues[i].Poster = u
+               if isCreatedBy && u.Id != posterId {
+                       continue
+               }
                if u.Id == posterId {
                        createdByCount++
                }
+               issues[i].Poster = u
+               showIssues = append(showIssues, issues[i])
        }
 
-       ctx.Data["Issues"] = issues
+       ctx.Data["Issues"] = showIssues
        ctx.Data["IssueCount"] = ctx.Repo.Repository.NumIssues
        ctx.Data["OpenCount"] = ctx.Repo.Repository.NumIssues - ctx.Repo.Repository.NumClosedIssues
        ctx.Data["ClosedCount"] = ctx.Repo.Repository.NumClosedIssues
@@ -107,7 +113,7 @@ func CreateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat
 
        // Mail watchers.
        if base.Service.NotifyMail {
-               if err = mailer.SendNotifyMail(ctx.User.Id, ctx.Repo.Repository.Id, ctx.User.Name, ctx.Repo.Repository.Name, issue.Name, issue.Content); err != nil {
+               if err = mailer.SendNotifyMail(ctx.User, ctx.Repo.Owner, ctx.Repo.Repository, issue); err != nil {
                        ctx.Handle(200, "issue.CreateIssue", err)
                        return
                }
index 5890983ba11f95f625530ba8c7a805276b413977..c008a05cf900be33545920aba9b8e1601e62a8ae 100644 (file)
@@ -5,14 +5,14 @@
 package user
 
 import (
-       "encoding/json"
+       // "encoding/json"
        "fmt"
        "net/url"
        "strings"
-       "code.google.com/p/goauth2/oauth"
 
+       // "code.google.com/p/goauth2/oauth"
        "github.com/go-martini/martini"
-       "github.com/martini-contrib/oauth2"
+       // "github.com/martini-contrib/oauth2"
 
        "github.com/gogits/gogs/models"
        "github.com/gogits/gogs/modules/auth"
@@ -78,41 +78,41 @@ func Profile(ctx *middleware.Context, params martini.Params) {
 }
 
 // github && google && ...
-func SocialSignIn(tokens oauth2.Tokens) {
-       transport := &oauth.Transport{}
-       transport.Token = &oauth.Token{
-               AccessToken:  tokens.Access(),
-               RefreshToken: tokens.Refresh(),
-               Expiry:       tokens.ExpiryTime(),
-               Extra:        tokens.ExtraData(),
-       }
-
-       // Github API refer: https://developer.github.com/v3/users/
-       // FIXME: need to judge url
-       type GithubUser struct {
-               Id    int    `json:"id"`
-               Name  string `json:"login"`
-               Email string `json:"email"`
-       }
-
-       // Make the request.
-       scope := "https://api.github.com/user"
-       r, err := transport.Client().Get(scope)
-       if err != nil {
-               log.Error("connect with github error: %s", err)
-               // FIXME: handle error page
-               return
-       }
-       defer r.Body.Close()
-
-       user := &GithubUser{}
-       err = json.NewDecoder(r.Body).Decode(user)
-       if err != nil {
-               log.Error("Get: %s", err)
-       }
-       log.Info("login: %s", user.Name)
-       // FIXME: login here, user email to check auth, if not registe, then generate a uniq username
-}
+// func SocialSignIn(tokens oauth2.Tokens) {
+//     transport := &oauth.Transport{}
+//     transport.Token = &oauth.Token{
+//             AccessToken:  tokens.Access(),
+//             RefreshToken: tokens.Refresh(),
+//             Expiry:       tokens.ExpiryTime(),
+//             Extra:        tokens.ExtraData(),
+//     }
+
+//     // Github API refer: https://developer.github.com/v3/users/
+//     // FIXME: need to judge url
+//     type GithubUser struct {
+//             Id    int    `json:"id"`
+//             Name  string `json:"login"`
+//             Email string `json:"email"`
+//     }
+
+//     // Make the request.
+//     scope := "https://api.github.com/user"
+//     r, err := transport.Client().Get(scope)
+//     if err != nil {
+//             log.Error("connect with github error: %s", err)
+//             // FIXME: handle error page
+//             return
+//     }
+//     defer r.Body.Close()
+
+//     user := &GithubUser{}
+//     err = json.NewDecoder(r.Body).Decode(user)
+//     if err != nil {
+//             log.Error("Get: %s", err)
+//     }
+//     log.Info("login: %s", user.Name)
+//     // FIXME: login here, user email to check auth, if not registe, then generate a uniq username
+// }
 
 func SignIn(ctx *middleware.Context, form auth.LogInForm) {
        ctx.Data["Title"] = "Log In"
diff --git a/web.go b/web.go
index 48d80b4feda4e04022e9181932f31be99f9fa7fc..ececd6c2b38f94695e770ec6c49eb8539a0c223f 100644 (file)
--- a/web.go
+++ b/web.go
@@ -11,8 +11,8 @@ import (
 
        "github.com/codegangsta/cli"
        "github.com/go-martini/martini"
-       "github.com/martini-contrib/oauth2"
-       "github.com/martini-contrib/sessions"
+       // "github.com/martini-contrib/oauth2"
+       // "github.com/martini-contrib/sessions"
 
        "github.com/gogits/binding"
 
@@ -60,15 +60,15 @@ func runWeb(*cli.Context) {
        // Middlewares.
        m.Use(middleware.Renderer(middleware.RenderOptions{Funcs: []template.FuncMap{base.TemplateFuncs}}))
 
-       scope := "https://api.github.com/user"
-       oauth2.PathCallback = "/oauth2callback"
-       m.Use(sessions.Sessions("my_session", sessions.NewCookieStore([]byte("secret123"))))
-       m.Use(oauth2.Github(&oauth2.Options{
-               ClientId:     "09383403ff2dc16daaa1",
-               ClientSecret: "5f6e7101d30b77952aab22b75eadae17551ea6b5",
-               RedirectURL:  base.AppUrl + oauth2.PathCallback,
-               Scopes:       []string{scope},
-       }))
+       // scope := "https://api.github.com/user"
+       // oauth2.PathCallback = "/oauth2callback"
+       // m.Use(sessions.Sessions("my_session", sessions.NewCookieStore([]byte("secret123"))))
+       // m.Use(oauth2.Github(&oauth2.Options{
+       //      ClientId:     "09383403ff2dc16daaa1",
+       //      ClientSecret: "5f6e7101d30b77952aab22b75eadae17551ea6b5",
+       //      RedirectURL:  base.AppUrl + oauth2.PathCallback,
+       //      Scopes:       []string{scope},
+       // }))
 
        m.Use(middleware.InitContext())
 
@@ -92,7 +92,7 @@ func runWeb(*cli.Context) {
        m.Get("/avatar/:hash", avt.ServeHTTP)
 
        m.Group("/user", func(r martini.Router) {
-               r.Any("/login/github", user.SocialSignIn)
+               // r.Any("/login/github", user.SocialSignIn)
                r.Any("/login", binding.BindIgnErr(auth.LogInForm{}), user.SignIn)
                r.Any("/sign_up", binding.BindIgnErr(auth.RegisterForm{}), user.SignUp)
        }, reqSignOut)