Finish issue assignee

This commit is contained in:
Unknown 2014-05-11 13:46:36 -04:00
parent a196245a87
commit 68fb62347f
6 changed files with 56 additions and 23 deletions

View file

@ -239,20 +239,12 @@ func ViewIssue(ctx *middleware.Context, params martini.Params) {
return
}
// Update assignee.
if ctx.Repo.IsOwner {
aid, _ := base.StrTo(ctx.Query("assignneid")).Int64()
if aid > 0 {
// Not check for invalid assignne id and give responsibility to owners.
issue.AssigneeId = aid
if err = models.UpdateIssueUserPairByAssignee(aid, issue.Id); err != nil {
ctx.Handle(500, "issue.ViewIssue(UpdateIssueUserPairByAssignee): %v", err)
return
}
ctx.Redirect(fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, issue.Index))
return
}
us, err := models.GetCollaborators(strings.TrimPrefix(ctx.Repo.RepoLink, "/"))
if err != nil {
ctx.Handle(500, "issue.CreateIssue(GetCollaborators)", err)
return
}
ctx.Data["Collaborators"] = us
if ctx.IsSigned {
// Update issue-user.
@ -300,18 +292,18 @@ func ViewIssue(ctx *middleware.Context, params martini.Params) {
}
func UpdateIssue(ctx *middleware.Context, params martini.Params, form auth.CreateIssueForm) {
index, err := base.StrTo(params["index"]).Int()
idx, err := base.StrTo(params["index"]).Int()
if err != nil {
ctx.Handle(404, "issue.UpdateIssue", err)
ctx.Error(404)
return
}
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.Id, int64(index))
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.Id, int64(idx))
if err != nil {
if err == models.ErrIssueNotExist {
ctx.Handle(404, "issue.UpdateIssue", err)
} else {
ctx.Handle(200, "issue.UpdateIssue(get issue)", err)
ctx.Handle(500, "issue.UpdateIssue(GetIssueByIndex)", err)
}
return
}
@ -327,7 +319,7 @@ func UpdateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat
issue.Labels = form.Labels
issue.Content = form.Content
if err = models.UpdateIssue(issue); err != nil {
ctx.Handle(200, "issue.UpdateIssue(update issue)", err)
ctx.Handle(500, "issue.UpdateIssue(UpdateIssue)", err)
return
}
@ -338,6 +330,44 @@ func UpdateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat
})
}
func UpdateAssignee(ctx *middleware.Context) {
if !ctx.Repo.IsOwner {
ctx.Error(403)
return
}
idx, err := base.StrTo(ctx.Query("issue")).Int64()
if err != nil {
ctx.Error(404)
return
}
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.Id, idx)
if err != nil {
if err == models.ErrIssueNotExist {
ctx.Handle(404, "issue.UpdateAssignee", err)
} else {
ctx.Handle(500, "issue.UpdateAssignee(GetIssueByIndex)", err)
}
return
}
aid, _ := base.StrTo(ctx.Query("assigneeid")).Int64()
// Not check for invalid assignne id and give responsibility to owners.
issue.AssigneeId = aid
if err = models.UpdateIssueUserPairByAssignee(aid, issue.Id); err != nil {
ctx.Handle(500, "issue.UpdateAssignee(UpdateIssueUserPairByAssignee): %v", err)
return
} else if err = models.UpdateIssue(issue); err != nil {
ctx.Handle(500, "issue.UpdateAssignee(UpdateIssue)", err)
return
}
ctx.JSON(200, map[string]interface{}{
"ok": true,
})
}
func Comment(ctx *middleware.Context, params martini.Params) {
index, err := base.StrTo(ctx.Query("issueIndex")).Int64()
if err != nil {