mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 01:34:27 +00:00 
			
		
		
		
	#1830 new comment with status change overwrites issue content
This commit is contained in:
		@@ -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 New Issue
	
	Block a user