diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2021-10-11 06:40:03 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-10 18:40:03 -0400 |
commit | c5c88f2f18d99a188357e0bcb837f94c9c41e79a (patch) | |
tree | ccdd155112a7ebedc93f0eb0310db860fd38b2d2 /services | |
parent | ff9a8a22312a653702342ce0a4073ae8fde2b1d4 (diff) | |
download | gitea-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.go | 15 |
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 |