* Update dashboard context for PR reviews Signed-off-by: jolheiser <john.olheiser@gmail.com> * 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 <john.olheiser@gmail.com> * Update options/locale/locale_en-US.ini Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>tags/v1.21.12.1
| @@ -30,26 +30,28 @@ type ActionType int | |||||
| // Possible action types. | // Possible action types. | ||||
| const ( | 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 | // Action represents user operation type and other information to | ||||
| @@ -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, | ActUserID: review.Reviewer.ID, | ||||
| ActUser: review.Reviewer, | ActUser: review.Reviewer, | ||||
| Content: fmt.Sprintf("%d|%s", review.Issue.Index, strings.Split(comment.Content, "\n")[0]), | Content: fmt.Sprintf("%d|%s", review.Issue.Index, strings.Split(comment.Content, "\n")[0]), | ||||
| OpType: models.ActionCommentIssue, | |||||
| RepoID: review.Issue.RepoID, | RepoID: review.Issue.RepoID, | ||||
| Repo: review.Issue.Repo, | Repo: review.Issue.Repo, | ||||
| IsPrivate: review.Issue.Repo.IsPrivate, | IsPrivate: review.Issue.Repo.IsPrivate, | ||||
| Comment: comment, | Comment: comment, | ||||
| CommentID: comment.ID, | 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 { | if err := models.NotifyWatchersActions(actions); err != nil { | ||||
| @@ -555,6 +555,10 @@ func ActionIcon(opType models.ActionType) string { | |||||
| return "issue-reopened" | return "issue-reopened" | ||||
| case models.ActionMirrorSyncPush, models.ActionMirrorSyncCreate, models.ActionMirrorSyncDelete: | case models.ActionMirrorSyncPush, models.ActionMirrorSyncCreate, models.ActionMirrorSyncDelete: | ||||
| return "repo-clone" | return "repo-clone" | ||||
| case models.ActionApprovePullRequest: | |||||
| return "eye" | |||||
| case models.ActionRejectPullRequest: | |||||
| return "x" | |||||
| default: | default: | ||||
| return "invalid type" | return "invalid type" | ||||
| } | } | ||||
| @@ -582,7 +582,7 @@ email_notifications.submit = Set Email Preference | |||||
| owner = Owner | owner = Owner | ||||
| repo_name = Repository Name | repo_name = Repository Name | ||||
| repo_name_helper = Good repository names use short, memorable and unique keywords. | repo_name_helper = Good repository names use short, memorable and unique keywords. | ||||
| repo_size = Repository Size | |||||
| repo_size = Repository Size | |||||
| template = Template | template = Template | ||||
| template_select = Select a template. | template_select = Select a template. | ||||
| template_helper = Make repository a template | template_helper = Make repository a template | ||||
| @@ -2000,6 +2000,8 @@ compare_commits_general = Compare commits | |||||
| mirror_sync_push = synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror | mirror_sync_push = synced commits to <a href="%[1]s/src/%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror | ||||
| mirror_sync_create = synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror | mirror_sync_create = synced new reference <a href="%s/src/%s">%[2]s</a> to <a href="%[1]s">%[3]s</a> from mirror | ||||
| mirror_sync_delete = synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror | mirror_sync_delete = synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror | ||||
| approve_pull_request = `approved <a href="%s/pulls/%s">%s#%[2]s</a>` | |||||
| reject_pull_request = `suggested changes for <a href="%s/pulls/%s">%s#%[2]s</a>` | |||||
| [tool] | [tool] | ||||
| ago = %s ago | ago = %s ago | ||||
| @@ -61,6 +61,12 @@ | |||||
| {{$.i18n.Tr "action.mirror_sync_create" .GetRepoLink .GetBranch .ShortRepoPath | Str2html}} | {{$.i18n.Tr "action.mirror_sync_create" .GetRepoLink .GetBranch .ShortRepoPath | Str2html}} | ||||
| {{else if eq .GetOpType 20}} | {{else if eq .GetOpType 20}} | ||||
| {{$.i18n.Tr "action.mirror_sync_delete" .GetRepoLink .GetBranch .ShortRepoPath | Str2html}} | {{$.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}} | {{end}} | ||||
| </p> | </p> | ||||
| {{if or (eq .GetOpType 5) (eq .GetOpType 18)}} | {{if or (eq .GetOpType 5) (eq .GetOpType 18)}} | ||||
| @@ -80,7 +86,7 @@ | |||||
| <span class="text truncate issue title has-emoji">{{index .GetIssueInfos 1}}</span> | <span class="text truncate issue title has-emoji">{{index .GetIssueInfos 1}}</span> | ||||
| {{else if eq .GetOpType 7}} | {{else if eq .GetOpType 7}} | ||||
| <span class="text truncate issue title has-emoji">{{index .GetIssueInfos 1}}</span> | <span class="text truncate issue title has-emoji">{{index .GetIssueInfos 1}}</span> | ||||
| {{else if eq .GetOpType 10}} | |||||
| {{else if or (eq .GetOpType 10) (eq .GetOpType 21) (eq .GetOpType 22)}} | |||||
| <a href="{{.GetCommentLink}}" class="text truncate issue title has-emoji">{{.GetIssueTitle}}</a> | <a href="{{.GetCommentLink}}" class="text truncate issue title has-emoji">{{.GetIssueTitle}}</a> | ||||
| <p class="text light grey has-emoji">{{index .GetIssueInfos 1}}</p> | <p class="text light grey has-emoji">{{index .GetIssueInfos 1}}</p> | ||||
| {{else if eq .GetOpType 11}} | {{else if eq .GetOpType 11}} | ||||