#1830 new comment with status change overwrites issue content
This commit is contained in:
parent
db7ac8bc1d
commit
e0aab4a7f6
2 changed files with 14 additions and 4 deletions
|
@ -233,7 +233,7 @@ func (i *Issue) changeStatus(e *xorm.Session, doer *User, isClosed bool) (err er
|
||||||
}
|
}
|
||||||
i.IsClosed = isClosed
|
i.IsClosed = isClosed
|
||||||
|
|
||||||
if err = updateIssue(e, i); err != nil {
|
if err = updateIssueCols(e, i, "is_closed"); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if err = updateIssueUsersByStatus(e, i.ID, isClosed); err != nil {
|
} else if err = updateIssueUsersByStatus(e, i.ID, isClosed); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -813,11 +813,18 @@ func GetRepoIssueStats(repoID, uid int64, filterMode int, isPull bool) (numOpen
|
||||||
return numOpen, numClosed
|
return numOpen, numClosed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// updateIssue updates all fields of given issue.
|
||||||
func updateIssue(e Engine, issue *Issue) error {
|
func updateIssue(e Engine, issue *Issue) error {
|
||||||
_, err := e.Id(issue.ID).AllCols().Update(issue)
|
_, err := e.Id(issue.ID).AllCols().Update(issue)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// updateIssueCols update specific fields of given issue.
|
||||||
|
func updateIssueCols(e Engine, issue *Issue, cols ...string) error {
|
||||||
|
_, err := e.Id(issue.ID).Cols(cols...).Update(issue)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// UpdateIssue updates information of issue.
|
// UpdateIssue updates information of issue.
|
||||||
func UpdateIssue(issue *Issue) error {
|
func UpdateIssue(issue *Issue) error {
|
||||||
return updateIssue(x, issue)
|
return updateIssue(x, issue)
|
||||||
|
|
|
@ -786,7 +786,7 @@ func NewComment(ctx *middleware.Context, form auth.CreateCommentForm) {
|
||||||
if err = issue.ChangeStatus(ctx.User, form.Status == "close"); err != nil {
|
if err = issue.ChangeStatus(ctx.User, form.Status == "close"); err != nil {
|
||||||
log.Error(4, "ChangeStatus: %v", err)
|
log.Error(4, "ChangeStatus: %v", err)
|
||||||
} else {
|
} else {
|
||||||
log.Trace("Issue[%d] status changed: %v", issue.ID, !issue.IsClosed)
|
log.Trace("Issue[%d] status changed to closed: %v", issue.ID, issue.IsClosed)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -829,8 +829,11 @@ func NewComment(ctx *middleware.Context, form auth.CreateCommentForm) {
|
||||||
|
|
||||||
// Mail watchers and mentions.
|
// Mail watchers and mentions.
|
||||||
if setting.Service.EnableNotifyMail {
|
if setting.Service.EnableNotifyMail {
|
||||||
issue.Content = form.Content
|
tos, err := mailer.SendIssueNotifyMail(ctx.User, ctx.Repo.Owner, ctx.Repo.Repository, &models.Issue{
|
||||||
tos, err := mailer.SendIssueNotifyMail(ctx.User, ctx.Repo.Owner, ctx.Repo.Repository, issue)
|
Index: issue.Index,
|
||||||
|
Name: issue.Name,
|
||||||
|
Content: form.Content,
|
||||||
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Handle(500, "SendIssueNotifyMail", err)
|
ctx.Handle(500, "SendIssueNotifyMail", err)
|
||||||
return
|
return
|
||||||
|
|
Reference in a new issue