aboutsummaryrefslogtreecommitdiffstats
path: root/models/activities/action.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/activities/action.go')
-rw-r--r--models/activities/action.go51
1 files changed, 46 insertions, 5 deletions
diff --git a/models/activities/action.go b/models/activities/action.go
index 4baedbfe12..8e7492c008 100644
--- a/models/activities/action.go
+++ b/models/activities/action.go
@@ -223,6 +223,49 @@ func (a *Action) GetRepoAbsoluteLink() string {
return setting.AppURL + url.PathEscape(a.GetRepoUserName()) + "/" + url.PathEscape(a.GetRepoName())
}
+// GetCommentHTMLURL returns link to action comment.
+func (a *Action) GetCommentHTMLURL() string {
+ return a.getCommentHTMLURL(db.DefaultContext)
+}
+
+func (a *Action) loadComment(ctx context.Context) (err error) {
+ if a.CommentID == 0 || a.Comment != nil {
+ return nil
+ }
+ a.Comment, err = issues_model.GetCommentByID(ctx, a.CommentID)
+ return err
+}
+
+func (a *Action) getCommentHTMLURL(ctx context.Context) string {
+ if a == nil {
+ return "#"
+ }
+ _ = a.loadComment(ctx)
+ if a.Comment != nil {
+ return a.Comment.HTMLURL()
+ }
+ if len(a.GetIssueInfos()) == 0 {
+ return "#"
+ }
+ // Return link to issue
+ issueIDString := a.GetIssueInfos()[0]
+ issueID, err := strconv.ParseInt(issueIDString, 10, 64)
+ if err != nil {
+ return "#"
+ }
+
+ issue, err := issues_model.GetIssueByID(ctx, issueID)
+ if err != nil {
+ return "#"
+ }
+
+ if err = issue.LoadRepo(ctx); err != nil {
+ return "#"
+ }
+
+ return issue.HTMLURL()
+}
+
// GetCommentLink returns link to action comment.
func (a *Action) GetCommentLink() string {
return a.getCommentLink(db.DefaultContext)
@@ -232,11 +275,9 @@ func (a *Action) getCommentLink(ctx context.Context) string {
if a == nil {
return "#"
}
- if a.Comment == nil && a.CommentID != 0 {
- a.Comment, _ = issues_model.GetCommentByID(ctx, a.CommentID)
- }
+ _ = a.loadComment(ctx)
if a.Comment != nil {
- return a.Comment.HTMLURL()
+ return a.Comment.Link()
}
if len(a.GetIssueInfos()) == 0 {
return "#"
@@ -257,7 +298,7 @@ func (a *Action) getCommentLink(ctx context.Context) string {
return "#"
}
- return issue.HTMLURL()
+ return issue.Link()
}
// GetBranch returns the action's repository branch.