Skip to content

Commit 50f55f1

Browse files
authored
Show whether a PR is WIP inside popups (#28975)
Fixes https://codeberg.org/forgejo/forgejo/issues/2257 Draft status of a PR is currently not exposed by the API. This PR adds a 'draft' field to pull requests in the API, which is used to correctly set the PR color/icon in a ContextPopup. --- Before: ![image](https://github.com/go-gitea/gitea/assets/5541521/72cbd30e-1175-4338-aa97-ac99c46c5118) After: ![image](https://github.com/go-gitea/gitea/assets/5541521/111c9eba-460e-4d57-bcca-23a151c3a4f1)
1 parent 688d4a1 commit 50f55f1

File tree

5 files changed

+23
-7
lines changed

5 files changed

+23
-7
lines changed

modules/structs/issue.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ const (
2626

2727
// PullRequestMeta PR info if an issue is a PR
2828
type PullRequestMeta struct {
29-
HasMerged bool `json:"merged"`
30-
Merged *time.Time `json:"merged_at"`
29+
HasMerged bool `json:"merged"`
30+
Merged *time.Time `json:"merged_at"`
31+
IsWorkInProgress bool `json:"draft"`
3132
}
3233

3334
// RepositoryMeta basic repository information

services/convert/issue.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,8 @@ func toIssue(ctx context.Context, issue *issues_model.Issue, getDownloadURL func
9898
}
9999
if issue.PullRequest != nil {
100100
apiIssue.PullRequest = &api.PullRequestMeta{
101-
HasMerged: issue.PullRequest.HasMerged,
101+
HasMerged: issue.PullRequest.HasMerged,
102+
IsWorkInProgress: issue.PullRequest.IsWorkInProgress(ctx),
102103
}
103104
if issue.PullRequest.HasMerged {
104105
apiIssue.PullRequest.Merged = issue.PullRequest.MergedUnix.AsTimePtr()

templates/swagger/v1_json.tmpl

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web_src/js/components/ContextPopup.vue

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ export default {
3030
icon() {
3131
if (this.issue.pull_request !== null) {
3232
if (this.issue.state === 'open') {
33+
if (this.issue.pull_request.draft === true) {
34+
return 'octicon-git-pull-request-draft'; // WIP PR
35+
}
3336
return 'octicon-git-pull-request'; // Open PR
3437
} else if (this.issue.pull_request.merged === true) {
3538
return 'octicon-git-merge'; // Merged PR
@@ -42,12 +45,17 @@ export default {
4245
},
4346
4447
color() {
48+
if (this.issue.pull_request !== null) {
49+
if (this.issue.pull_request.draft === true) {
50+
return 'grey'; // WIP PR
51+
} else if (this.issue.pull_request.merged === true) {
52+
return 'purple'; // Merged PR
53+
}
54+
}
4555
if (this.issue.state === 'open') {
46-
return 'green';
47-
} else if (this.issue.pull_request !== null && this.issue.pull_request.merged === true) {
48-
return 'purple';
56+
return 'green'; // Open Issue
4957
}
50-
return 'red';
58+
return 'red'; // Closed Issue
5159
},
5260
5361
labels() {

web_src/js/svg.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import octiconGitBranch from '../../public/assets/img/svg/octicon-git-branch.svg
3333
import octiconGitCommit from '../../public/assets/img/svg/octicon-git-commit.svg';
3434
import octiconGitMerge from '../../public/assets/img/svg/octicon-git-merge.svg';
3535
import octiconGitPullRequest from '../../public/assets/img/svg/octicon-git-pull-request.svg';
36+
import octiconGitPullRequestDraft from '../../public/assets/img/svg/octicon-git-pull-request-draft.svg';
3637
import octiconHeading from '../../public/assets/img/svg/octicon-heading.svg';
3738
import octiconHorizontalRule from '../../public/assets/img/svg/octicon-horizontal-rule.svg';
3839
import octiconImage from '../../public/assets/img/svg/octicon-image.svg';
@@ -104,6 +105,7 @@ const svgs = {
104105
'octicon-git-commit': octiconGitCommit,
105106
'octicon-git-merge': octiconGitMerge,
106107
'octicon-git-pull-request': octiconGitPullRequest,
108+
'octicon-git-pull-request-draft': octiconGitPullRequestDraft,
107109
'octicon-heading': octiconHeading,
108110
'octicon-horizontal-rule': octiconHorizontalRule,
109111
'octicon-image': octiconImage,

0 commit comments

Comments
 (0)