diff options
author | Lauris BH <lauris@nix.lv> | 2018-01-05 20:56:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-05 20:56:50 +0200 |
commit | 8ac1501ad7f8b350bd9c1bf01b25f994fd3560f9 (patch) | |
tree | cf9b661996134da3e39aa6ddd2af4e13f7dbf30f /templates | |
parent | a192f3052ed9b59d1404fdcebf2b5c156d6d6969 (diff) | |
download | gitea-8ac1501ad7f8b350bd9c1bf01b25f994fd3560f9.tar.gz gitea-8ac1501ad7f8b350bd9c1bf01b25f994fd3560f9.zip |
Add Pull Request merge options - Ignore white-space for conflict checking, Rebase, Squash merge (#3188)
* Pull request options migration and UI in settings
* Add ignore whitespace functionality
* Fix settings if pull requests are disabled
* Fix migration transaction
* Merge with Rebase functionality
* UI changes and related functionality for pull request merging button
* Implement squash functionality
* Fix rebase merging
* Fix pull request merge tests
* Add squash and rebase tests
* Fix API method to reuse default message functions
* Some refactoring and small fixes
* Remove more hardcoded values from tests
* Remove unneeded check from API method
* Fix variable name and comment typo
* Fix reset commit count after PR merge
Diffstat (limited to 'templates')
-rw-r--r-- | templates/repo/issue/view_content/pull.tmpl | 101 | ||||
-rw-r--r-- | templates/repo/settings/options.tmpl | 31 |
2 files changed, 122 insertions, 10 deletions
diff --git a/templates/repo/issue/view_content/pull.tmpl b/templates/repo/issue/view_content/pull.tmpl index 87de9c508b..9bd51b7c3e 100644 --- a/templates/repo/issue/view_content/pull.tmpl +++ b/templates/repo/issue/view_content/pull.tmpl @@ -38,15 +38,100 @@ {{$.i18n.Tr "repo.pulls.can_auto_merge_desc"}} </div> {{if .IsRepositoryWriter}} - <div class="ui divider"></div> - <div> - <form class="ui form" action="{{.Link}}/merge" method="post"> - {{.CsrfTokenHtml}} - <button class="ui green button"> - <span class="octicon octicon-git-merge"></span> {{$.i18n.Tr "repo.pulls.merge_pull_request"}} + {{$prUnit := .Repository.MustGetUnit $.UnitTypePullRequests}} + {{if or $prUnit.PullRequestsConfig.AllowMerge $prUnit.PullRequestsConfig.AllowRebase $prUnit.PullRequestsConfig.AllowSquash}} + <div class="ui divider"></div> + {{if $prUnit.PullRequestsConfig.AllowMerge}} + <div class="ui form merge-fields" style="display: none"> + <form action="{{.Link}}/merge" method="post"> + {{.CsrfTokenHtml}} + <div class="field"> + <input type="text" name="merge_title_field" value="{{.Issue.PullRequest.GetDefaultMergeMessage}}"> + </div> + <div class="field"> + <textarea name="merge_message_field" rows="5" placeholder="{{$.i18n.Tr "repo.editor.commit_message_desc"}}"></textarea> + </div> + <button class="ui green button" type="submit" name="do" value="merge"> + {{$.i18n.Tr "repo.pulls.merge_pull_request"}} + </button> + <button class="ui button merge-cancel"> + {{$.i18n.Tr "cancel"}} + </button> + </form> + </div> + {{end}} + {{if $prUnit.PullRequestsConfig.AllowRebase}} + <div class="ui form rebase-fields" style="display: none"> + <form action="{{.Link}}/merge" method="post"> + {{.CsrfTokenHtml}} + <button class="ui green button" type="submit" name="do" value="rebase"> + {{$.i18n.Tr "repo.pulls.rebase_merge_pull_request"}} + </button> + <button class="ui button merge-cancel"> + {{$.i18n.Tr "cancel"}} + </button> + </form> + </div> + {{end}} + {{if $prUnit.PullRequestsConfig.AllowSquash}} + <div class="ui form squash-fields" style="display: none"> + <form action="{{.Link}}/merge" method="post"> + {{.CsrfTokenHtml}} + <div class="field"> + <input type="text" name="merge_title_field" value="{{.Issue.PullRequest.GetDefaultSquashMessage}}"> + </div> + <div class="field"> + <textarea name="merge_message_field" rows="5" placeholder="{{$.i18n.Tr "repo.editor.commit_message_desc"}}"></textarea> + </div> + <button class="ui green button" type="submit" name="do" value="squash"> + {{$.i18n.Tr "repo.pulls.squash_merge_pull_request"}} + </button> + <button class="ui button merge-cancel"> + {{$.i18n.Tr "cancel"}} + </button> + </form> + </div> + {{end}} + <div class="ui green buttons merge-button"> + <button class="ui button" data-do="{{.MergeStyle}}"> + <span class="octicon octicon-git-merge"></span> + <span class="button-text"> + {{if eq .MergeStyle "merge"}} + {{$.i18n.Tr "repo.pulls.merge_pull_request"}} + {{end}} + {{if eq .MergeStyle "rebase"}} + {{$.i18n.Tr "repo.pulls.rebase_merge_pull_request"}} + {{end}} + {{if eq .MergeStyle "squash"}} + {{$.i18n.Tr "repo.pulls.squash_merge_pull_request"}} + {{end}} + </span> </button> - </form> - </div> + <div class="ui dropdown icon button"> + <i class="dropdown icon"></i> + <div class="menu"> + {{if $prUnit.PullRequestsConfig.AllowMerge}} + <div class="item{{if eq .MergeStyle "merge"}} active selected{{end}}" data-do="merge">{{$.i18n.Tr "repo.pulls.merge_pull_request"}}</div> + {{end}} + {{if $prUnit.PullRequestsConfig.AllowRebase}} + <div class="item{{if eq .MergeStyle "rebase"}} active selected{{end}}" data-do="rebase">{{$.i18n.Tr "repo.pulls.rebase_merge_pull_request"}}</div> + {{end}} + {{if $prUnit.PullRequestsConfig.AllowSquash}} + <div class="item{{if eq .MergeStyle "squash"}} active selected{{end}}" data-do="squash">{{$.i18n.Tr "repo.pulls.squash_merge_pull_request"}}</div> + {{end}} + </div> + </div> + </div> + {{else}} + <div class="item text red"> + <span class="octicon octicon-x"></span> + {{$.i18n.Tr "repo.pulls.no_merge_desc"}} + </div> + <div class="item text grey"> + <span class="octicon octicon-info"></span> + {{$.i18n.Tr "repo.pulls.no_merge_helper"}} + </div> + {{end}} {{end}} {{else}} <div class="item text red"> diff --git a/templates/repo/settings/options.tmpl b/templates/repo/settings/options.tmpl index 41a91ea26e..3bc1a209f0 100644 --- a/templates/repo/settings/options.tmpl +++ b/templates/repo/settings/options.tmpl @@ -192,14 +192,41 @@ {{if .Repository.CanEnablePulls}} <div class="ui divider"></div> - + {{$pullRequestEnabled := .Repository.UnitEnabled $.UnitTypePullRequests}} + {{$prUnit := .Repository.MustGetUnit $.UnitTypePullRequests}} <div class="inline field"> <label>{{.i18n.Tr "repo.pulls"}}</label> <div class="ui checkbox"> - <input name="enable_pulls" type="checkbox" {{if .Repository.UnitEnabled $.UnitTypePullRequests}}checked{{end}}> + <input class="enable-system" name="enable_pulls" type="checkbox" data-target="#pull_box" {{if $pullRequestEnabled}}checked{{end}}> <label>{{.i18n.Tr "repo.settings.pulls_desc"}}</label> </div> </div> + <div class="field{{if not $pullRequestEnabled}} disabled{{end}}" id="pull_box"> + <div class="field"> + <div class="ui checkbox"> + <input name="pulls_ignore_whitespace" type="checkbox" {{if and $pullRequestEnabled ($prUnit.PullRequestsConfig.IgnoreWhitespaceConflicts)}}checked{{end}}> + <label>{{.i18n.Tr "repo.settings.pulls.ignore_whitespace"}}</label> + </div> + </div> + <div class="field"> + <div class="ui checkbox"> + <input name="pulls_allow_merge" type="checkbox" {{if or (not $pullRequestEnabled) ($prUnit.PullRequestsConfig.AllowMerge)}}checked{{end}}> + <label>{{.i18n.Tr "repo.settings.pulls.allow_merge_commits"}}</label> + </div> + </div> + <div class="field"> + <div class="ui checkbox"> + <input name="pulls_allow_rebase" type="checkbox" {{if or (not $pullRequestEnabled) ($prUnit.PullRequestsConfig.AllowRebase)}}checked{{end}}> + <label>{{.i18n.Tr "repo.settings.pulls.allow_rebase_merge"}}</label> + </div> + </div> + <div class="field"> + <div class="ui checkbox"> + <input name="pulls_allow_squash" type="checkbox" {{if or (not $pullRequestEnabled) ($prUnit.PullRequestsConfig.AllowSquash)}}checked{{end}}> + <label>{{.i18n.Tr "repo.settings.pulls.allow_squash_commits"}}</label> + </div> + </div> + </div> {{end}} <div class="ui divider"></div> |