aboutsummaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2021-10-11 06:40:03 +0800
committerGitHub <noreply@github.com>2021-10-10 18:40:03 -0400
commitc5c88f2f18d99a188357e0bcb837f94c9c41e79a (patch)
treeccdd155112a7ebedc93f0eb0310db860fd38b2d2 /services
parentff9a8a22312a653702342ce0a4073ae8fde2b1d4 (diff)
downloadgitea-c5c88f2f18d99a188357e0bcb837f94c9c41e79a.tar.gz
gitea-c5c88f2f18d99a188357e0bcb837f94c9c41e79a.zip
Save and view issue/comment content history (#16909)
* issue content history * Use timeutil.TimeStampNow() for content history time instead of issue/comment.UpdatedUnix (which are not updated in time) * i18n for frontend * refactor * clean up * fix refactor * re-format * temp refactor * follow db refactor * rename IssueContentHistory to ContentHistory, remove empty model tags * fix html * use avatar refactor to generate avatar url * add unit test, keep at most 20 history revisions. * re-format * syntax nit * Add issue content history table * Update models/migrations/v197.go Co-authored-by: 6543 <6543@obermui.de> * fix merge Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Lauris BH <lauris@nix.lv>
Diffstat (limited to 'services')
-rw-r--r--services/comments/comments.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/services/comments/comments.go b/services/comments/comments.go
index d65c66aef2..d1e5ea4d88 100644
--- a/services/comments/comments.go
+++ b/services/comments/comments.go
@@ -7,7 +7,9 @@ package comments
import (
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/models/db"
+ "code.gitea.io/gitea/models/issues"
"code.gitea.io/gitea/modules/notification"
+ "code.gitea.io/gitea/modules/timeutil"
)
// CreateIssueComment creates a plain issue comment.
@@ -23,10 +25,16 @@ func CreateIssueComment(doer *models.User, repo *models.Repository, issue *model
if err != nil {
return nil, err
}
+ err = issues.SaveIssueContentHistory(db.GetEngine(db.DefaultContext), doer.ID, issue.ID, comment.ID, timeutil.TimeStampNow(), comment.Content, true)
+ if err != nil {
+ return nil, err
+ }
+
mentions, err := issue.FindAndUpdateIssueMentions(db.DefaultContext, doer, comment.Content)
if err != nil {
return nil, err
}
+
notification.NotifyCreateIssueComment(doer, repo, issue, comment, mentions)
return comment, nil
@@ -38,6 +46,13 @@ func UpdateComment(c *models.Comment, doer *models.User, oldContent string) erro
return err
}
+ if c.Type == models.CommentTypeComment && c.Content != oldContent {
+ err := issues.SaveIssueContentHistory(db.GetEngine(db.DefaultContext), doer.ID, c.IssueID, c.ID, timeutil.TimeStampNow(), c.Content, false)
+ if err != nil {
+ return err
+ }
+ }
+
notification.NotifyUpdateComment(doer, c, oldContent)
return nil