diff options
author | Unknown <joe2010xtmf@163.com> | 2014-03-25 14:04:57 -0400 |
---|---|---|
committer | Unknown <joe2010xtmf@163.com> | 2014-03-25 14:04:57 -0400 |
commit | d3b8e9daa1a22501c03564f2739f9fa8198fbdf1 (patch) | |
tree | 2e56cf4863b883984f760256b1898dd52bd593fd /routers/repo | |
parent | c5ff58272bcec72520f59a94445cd78d3e2dbf34 (diff) | |
download | gitea-d3b8e9daa1a22501c03564f2739f9fa8198fbdf1.tar.gz gitea-d3b8e9daa1a22501c03564f2739f9fa8198fbdf1.zip |
Add notify watcher action
Diffstat (limited to 'routers/repo')
-rw-r--r-- | routers/repo/issue.go | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/routers/repo/issue.go b/routers/repo/issue.go index 4e8324605c..fc5bb98643 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -23,13 +23,33 @@ func Issues(ctx *middleware.Context, params martini.Params) { milestoneId, _ := base.StrTo(params["milestone"]).Int() page, _ := base.StrTo(params["page"]).Int() - var err error - ctx.Data["Issues"], err = models.GetIssues(0, ctx.Repo.Repository.Id, 0, + // Get issues. + issues, err := models.GetIssues(0, ctx.Repo.Repository.Id, 0, int64(milestoneId), page, params["state"] == "closed", false, params["labels"], params["sortType"]) if err != nil { ctx.Handle(200, "issue.Issues: %v", err) return } + + var closedCount int + // Get posters. + for i := range issues { + u, err := models.GetUserById(issues[i].PosterId) + if err != nil { + ctx.Handle(200, "issue.Issues(get poster): %v", err) + return + } + + if issues[i].IsClosed { + closedCount++ + } + issues[i].Poster = u + } + + ctx.Data["Issues"] = issues + ctx.Data["IssueCount"] = len(issues) + ctx.Data["OpenCount"] = len(issues) - closedCount + ctx.Data["ClosedCount"] = closedCount ctx.HTML(200, "issue/list") } @@ -54,12 +74,20 @@ func CreateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat issue, err := models.CreateIssue(ctx.User.Id, ctx.Repo.Repository.Id, form.MilestoneId, form.AssigneeId, form.IssueName, form.Labels, form.Content, false) - if err == nil { - log.Trace("%d Issue created: %d", ctx.Repo.Repository.Id, issue.Id) - ctx.Redirect(fmt.Sprintf("/%s/%s/issues/%d", params["username"], params["reponame"], issue.Index)) + if err != nil { + ctx.Handle(200, "issue.CreateIssue", err) return } - ctx.Handle(200, "issue.CreateIssue", err) + + // Notify watchers. + if err = models.NotifyWatchers(ctx.User.Id, ctx.Repo.Repository.Id, models.OP_CREATE_ISSUE, + ctx.User.Name, ctx.Repo.Repository.Name, "", fmt.Sprintf("%d|%s", issue.Index, issue.Name)); err != nil { + ctx.Handle(200, "issue.CreateIssue", err) + return + } + + log.Trace("%d Issue created: %d", ctx.Repo.Repository.Id, issue.Id) + ctx.Redirect(fmt.Sprintf("/%s/%s/issues/%d", params["username"], params["reponame"], issue.Index)) } func ViewIssue(ctx *middleware.Context, params martini.Params) { |