From 06a8504c784fe404bcae92028515add816383729 Mon Sep 17 00:00:00 2001 From: John Olheiser <42128690+jolheiser@users.noreply.github.com> Date: Thu, 14 Nov 2019 17:52:18 -0600 Subject: [PATCH] Update dashboard context for PR reviews (#8995) * Update dashboard context for PR reviews Signed-off-by: jolheiser * Update options/locale/locale_en-US.ini Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> * Only append head action if it has content or is approval/rejection Signed-off-by: jolheiser * Update options/locale/locale_en-US.ini Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> --- models/action.go | 42 ++++++++++++++------------- modules/notification/action/action.go | 18 +++++++++--- modules/templates/helper.go | 4 +++ options/locale/locale_en-US.ini | 4 ++- templates/user/dashboard/feeds.tmpl | 8 ++++- 5 files changed, 50 insertions(+), 26 deletions(-) diff --git a/models/action.go b/models/action.go index ddb82e0f4c..3cd97eff09 100644 --- a/models/action.go +++ b/models/action.go @@ -30,26 +30,28 @@ type ActionType int // Possible action types. const ( - ActionCreateRepo ActionType = iota + 1 // 1 - ActionRenameRepo // 2 - ActionStarRepo // 3 - ActionWatchRepo // 4 - ActionCommitRepo // 5 - ActionCreateIssue // 6 - ActionCreatePullRequest // 7 - ActionTransferRepo // 8 - ActionPushTag // 9 - ActionCommentIssue // 10 - ActionMergePullRequest // 11 - ActionCloseIssue // 12 - ActionReopenIssue // 13 - ActionClosePullRequest // 14 - ActionReopenPullRequest // 15 - ActionDeleteTag // 16 - ActionDeleteBranch // 17 - ActionMirrorSyncPush // 18 - ActionMirrorSyncCreate // 19 - ActionMirrorSyncDelete // 20 + ActionCreateRepo ActionType = iota + 1 // 1 + ActionRenameRepo // 2 + ActionStarRepo // 3 + ActionWatchRepo // 4 + ActionCommitRepo // 5 + ActionCreateIssue // 6 + ActionCreatePullRequest // 7 + ActionTransferRepo // 8 + ActionPushTag // 9 + ActionCommentIssue // 10 + ActionMergePullRequest // 11 + ActionCloseIssue // 12 + ActionReopenIssue // 13 + ActionClosePullRequest // 14 + ActionReopenPullRequest // 15 + ActionDeleteTag // 16 + ActionDeleteBranch // 17 + ActionMirrorSyncPush // 18 + ActionMirrorSyncCreate // 19 + ActionMirrorSyncDelete // 20 + ActionApprovePullRequest // 21 + ActionRejectPullRequest // 22 ) // Action represents user operation type and other information to diff --git a/modules/notification/action/action.go b/modules/notification/action/action.go index 36035b864f..d4be1e4304 100644 --- a/modules/notification/action/action.go +++ b/modules/notification/action/action.go @@ -148,18 +148,28 @@ func (a *actionNotifier) NotifyPullRequestReview(pr *models.PullRequest, review } } - if strings.TrimSpace(comment.Content) != "" { - actions = append(actions, &models.Action{ + if review.Type != models.ReviewTypeComment || strings.TrimSpace(comment.Content) != "" { + action := &models.Action{ ActUserID: review.Reviewer.ID, ActUser: review.Reviewer, Content: fmt.Sprintf("%d|%s", review.Issue.Index, strings.Split(comment.Content, "\n")[0]), - OpType: models.ActionCommentIssue, RepoID: review.Issue.RepoID, Repo: review.Issue.Repo, IsPrivate: review.Issue.Repo.IsPrivate, Comment: comment, CommentID: comment.ID, - }) + } + + switch review.Type { + case models.ReviewTypeApprove: + action.OpType = models.ActionApprovePullRequest + case models.ReviewTypeReject: + action.OpType = models.ActionRejectPullRequest + default: + action.OpType = models.ActionCommentIssue + } + + actions = append(actions, action) } if err := models.NotifyWatchersActions(actions); err != nil { diff --git a/modules/templates/helper.go b/modules/templates/helper.go index 1347835b80..6aa429ee14 100644 --- a/modules/templates/helper.go +++ b/modules/templates/helper.go @@ -555,6 +555,10 @@ func ActionIcon(opType models.ActionType) string { return "issue-reopened" case models.ActionMirrorSyncPush, models.ActionMirrorSyncCreate, models.ActionMirrorSyncDelete: return "repo-clone" + case models.ActionApprovePullRequest: + return "eye" + case models.ActionRejectPullRequest: + return "x" default: return "invalid type" } diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index e3e0dba9fe..883b9222f5 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -582,7 +582,7 @@ email_notifications.submit = Set Email Preference owner = Owner repo_name = Repository Name repo_name_helper = Good repository names use short, memorable and unique keywords. -repo_size = Repository Size +repo_size = Repository Size template = Template template_select = Select a template. template_helper = Make repository a template @@ -2000,6 +2000,8 @@ compare_commits_general = Compare commits mirror_sync_push = synced commits to %[3]s at %[4]s from mirror mirror_sync_create = synced new reference %[2]s to %[3]s from mirror mirror_sync_delete = synced and deleted reference %[2]s at %[3]s from mirror +approve_pull_request = `approved %s#%[2]s` +reject_pull_request = `suggested changes for %s#%[2]s` [tool] ago = %s ago diff --git a/templates/user/dashboard/feeds.tmpl b/templates/user/dashboard/feeds.tmpl index 9c404c9fde..48cdb49c15 100644 --- a/templates/user/dashboard/feeds.tmpl +++ b/templates/user/dashboard/feeds.tmpl @@ -61,6 +61,12 @@ {{$.i18n.Tr "action.mirror_sync_create" .GetRepoLink .GetBranch .ShortRepoPath | Str2html}} {{else if eq .GetOpType 20}} {{$.i18n.Tr "action.mirror_sync_delete" .GetRepoLink .GetBranch .ShortRepoPath | Str2html}} + {{else if eq .GetOpType 21}} + {{ $index := index .GetIssueInfos 0}} + {{$.i18n.Tr "action.approve_pull_request" .GetRepoLink $index .ShortRepoPath | Str2html}} + {{else if eq .GetOpType 22}} + {{ $index := index .GetIssueInfos 0}} + {{$.i18n.Tr "action.reject_pull_request" .GetRepoLink $index .ShortRepoPath | Str2html}} {{end}}

{{if or (eq .GetOpType 5) (eq .GetOpType 18)}} @@ -80,7 +86,7 @@ {{index .GetIssueInfos 1}} {{else if eq .GetOpType 7}} {{index .GetIssueInfos 1}} - {{else if eq .GetOpType 10}} + {{else if or (eq .GetOpType 10) (eq .GetOpType 21) (eq .GetOpType 22)}} {{.GetIssueTitle}}

{{index .GetIssueInfos 1}}

{{else if eq .GetOpType 11}}