aboutsummaryrefslogtreecommitdiffstats
path: root/routers/repo
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-03-25 14:04:57 -0400
committerUnknown <joe2010xtmf@163.com>2014-03-25 14:04:57 -0400
commitd3b8e9daa1a22501c03564f2739f9fa8198fbdf1 (patch)
tree2e56cf4863b883984f760256b1898dd52bd593fd /routers/repo
parentc5ff58272bcec72520f59a94445cd78d3e2dbf34 (diff)
downloadgitea-d3b8e9daa1a22501c03564f2739f9fa8198fbdf1.tar.gz
gitea-d3b8e9daa1a22501c03564f2739f9fa8198fbdf1.zip
Add notify watcher action
Diffstat (limited to 'routers/repo')
-rw-r--r--routers/repo/issue.go40
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) {