Add notify watcher action

This commit is contained in:
Unknown 2014-03-25 14:04:57 -04:00
parent c5ff58272b
commit d3b8e9daa1
8 changed files with 119 additions and 95 deletions

View file

@ -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) {