@ -5,39 +5,49 @@
{{ .locale .Tr "repo.settings.branch_protection" ( .Rule .RuleName | Escape ) | Str2html }}
</h4>
<div class="ui attached segment branch-protection">
<h5 class="ui dividing header"> {{ .locale .Tr "repo.settings.protect_patterns" }} </h5>
<div class="field">
<label for="protected_file_patterns" > {{ .locale .Tr "repo.settings.protect_branch_name_pattern" }} </label>
<label> {{ .locale .Tr "repo.settings.protect_branch_name_pattern" }} </label>
<input name="rule_name" type="text" value=" {{ .Rule .RuleName }} ">
<input name="rule_id" type="hidden" value=" {{ .Rule .ID }} ">
</div>
<div class="ui divider"></div>
<div class="field">
<label> {{ .locale .Tr "repo.settings.protect_protected_file_patterns" }} </label>
<input name="protected_file_patterns" type="text" value=" {{ .Rule .ProtectedFilePatterns }} ">
<p class="help gt-ml-0"> {{ .locale .Tr "repo.settings.protect_protected_file_patterns_desc" | Safe }} </p>
</div>
<div class="field">
<label> {{ .locale .Tr "repo.settings.protect_unprotected_file_patterns" }} </label>
<input name="unprotected_file_patterns" type="text" value=" {{ .Rule .UnprotectedFilePatterns }} ">
<p class="help gt-ml-0"> {{ .locale .Tr "repo.settings.protect_unprotected_file_patterns_desc" | Safe }} </p>
</div>
{{ .CsrfTokenHtml }}
<div id="protection_box" class="fields">
<div class="field">
<div class="ui radio checkbox">
<input name="enable_push" type="radio" value="none" class="disable-whitelist" data-target="#whitelist_box" {{ if not .Rule .CanPush }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_disable_push" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_disable_push_desc" }} </p>
</div>
<h5 class="ui dividing header"> {{ .locale .Tr "repo.settings.event_push" }} </h5>
<div class="field">
<div class="ui radio checkbox">
<input name="enable_push" type="radio" value="none" class="toggle-target-disabled" data-target="#whitelist_box" {{ if not .Rule .CanPush }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_disable_push" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_disable_push_desc" }} </p>
</div>
<div class="field" >
<div class="ui radio checkbox ">
<input name="enable_push" type="radio" value="all" class="disable-whitelist" data-target="#whitelist_box" {{ if and ( .Rule .CanPush ) ( not .Rule .EnableWhitelist ) }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_enable_push" }} </label >
<p class="help" > {{ .locale .Tr "repo.settings.protect_enable_push_desc " }} </p >
</div >
</ div>
<div class="field ">
<div class="ui radio checkbox" >
<input name="enable_push" type="radio" value="all" class="toggle-target-disabled" data-target="#whitelist_box" {{ if and ( .Rule .CanPush ) ( not .Rule .EnableWhitelist ) }} checked {{ end }} >
<label > {{ .locale .Tr "repo.settings.protect_enable_push" }} </label >
<p class="help"> {{ .locale .Tr "repo.settings.protect_enable_push_desc" }} </p >
</div>
</div>
<div class="grouped fields">
<div class="field">
<div class="ui radio checkbox">
<input name="enable_push" type="radio" value="whitelist" class="enable-whitelist " data-target="#whitelist_box" {{ if and ( .Rule .CanPush ) ( .Rule .EnableWhitelist ) }} checked {{ end }} >
<input name="enable_push" type="radio" value="whitelist" class="toggle-target-enabled " data-target="#whitelist_box" {{ if and ( .Rule .CanPush ) ( .Rule .EnableWhitelist ) }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_whitelist_committers" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_whitelist_committers_desc" }} </p>
</div>
</div>
<div id="whitelist_box" class="fields {{ if not .Rule .EnableWhitelist }} disabled {{ end }} ">
<div class="whitelist field">
<div id="whitelist_box" class="grouped fields {{ if not .Rule .EnableWhitelist }} disabled {{ end }} ">
<div class="checkbox-sub-item field">
<label> {{ .locale .Tr "repo.settings.protect_whitelist_users" }} </label>
<div class="ui multiple search selection dropdown">
<input type="hidden" name="whitelist_users" value=" {{ .whitelist_users }} ">
@ -52,8 +62,7 @@
</div>
</div>
{{ if .Owner .IsOrganization }}
<br>
<div class="whitelist field">
<div class="checkbox-sub-item field">
<label> {{ .locale .Tr "repo.settings.protect_whitelist_teams" }} </label>
<div class="ui multiple search selection dropdown">
<input type="hidden" name="whitelist_teams" value=" {{ .whitelist_teams }} ">
@ -69,105 +78,37 @@
</div>
</div>
{{ end }}
<br>
<div class="whitelist field">
<div class="checkbox-sub-item field">
<div class="ui checkbox">
<input type="checkbox" name="whitelist_deploy_keys" {{ if .Rule .WhitelistDeployKeys }} checked {{ end }} >
<label for="whitelist_deploy_keys"> {{ .locale .Tr "repo.settings.protect_whitelist_deploy_keys" }} </label>
</div>
</div>
</div>
<div class="ui divider"></div>
<div class="field">
<div class="ui checkbox">
<input class="enable-whitelist" name="enable_merge_whitelist" type="checkbox" data-target="#merge_whitelist_box" {{ if .Rule .EnableMergeWhitelist }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_merge_whitelist_committers" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_merge_whitelist_committers_desc" }} </p>
</div>
</div>
<div id="merge_whitelist_box" class="fields {{ if not .Rule .EnableMergeWhitelist }} disabled {{ end }} ">
<div class="whitelist field">
<label> {{ .locale .Tr "repo.settings.protect_merge_whitelist_users" }} </label>
<div class="ui multiple search selection dropdown">
<input type="hidden" name="merge_whitelist_users" value=" {{ .merge_whitelist_users }} ">
<div class="default text"> {{ .locale .Tr "repo.settings.protect_whitelist_search_users" }} </div>
<div class="menu">
{{ range .Users }}
<div class="item" data-value=" {{ .ID }} ">
{{ avatar $ .Context . 2 8 "mini" }} {{ template "repo/search_name" . }}
</div>
{{ end }}
</div>
<label> {{ .locale .Tr "repo.settings.protect_whitelist_deploy_keys" }} </label>
</div>
</div>
{{ if .Owner .IsOrganization }}
<br>
<div class="whitelist field">
<label> {{ .locale .Tr "repo.settings.protect_merge_whitelist_teams" }} </label>
<div class="ui multiple search selection dropdown">
<input type="hidden" name="merge_whitelist_teams" value=" {{ .merge_whitelist_teams }} ">
<div class="default text"> {{ .locale .Tr "repo.settings.protect_whitelist_search_teams" }} </div>
<div class="menu">
{{ range .Teams }}
<div class="item" data-value=" {{ .ID }} ">
{{ svg "octicon-people" }}
{{ .Name }}
</div>
{{ end }}
</div>
</div>
</div>
{{ end }}
</div>
<div class="field">
<div class="ui checkbox">
<input class="enable-statuscheck" name="enable_status_check" type="checkbox" data-target="#statuscheck_contexts_box" {{ if eq ( len .branch_status_check_contexts ) 0 }} disabled {{ end }} {{ if .Rule .EnableStatusCheck }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_check_status_contexts" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_check_status_contexts_desc" }} </p>
</div>
</div>
<div id="statuscheck_contexts_box" class="fields {{ if not .Rule .EnableStatusCheck }} disabled {{ end }} ">
<div class="field">
<table class="ui celled table six column">
<thead>
<tr><th>
{{ .locale .Tr "repo.settings.protect_check_status_contexts_list" }}
</th>
</tr>
</thead>
<tbody>
{{ range $ .branch_status_check_contexts }}
<tr><td>
<span class="ui checkbox">
<input class="enable-whitelist" name="status_check_contexts" value=" {{ . }} " type="checkbox" {{ if $ .is_context_required }} {{ if call $ .is_context_required . }} checked {{ end }} {{ end }} >
</span>
{{ . }}
{{ if $ .is_context_required }} {{ if call $ .is_context_required . }} <div class="ui label right">Required</div> {{ end }} {{ end }}
</td></tr>
{{ end }}
</tbody>
</table>
</div>
</div>
<div class="field">
<label for="required-approvals"> {{ .locale .Tr "repo.settings.protect_required_approvals" }} </label>
<input name="required_approvals" id="required-approvals" type="number" value=" {{ .Rule .RequiredApprovals }} ">
<p class="help"> {{ .locale .Tr "repo.settings.protect_required_approvals_desc" }} </p>
</div>
<div class="field">
<div class="ui checkbox">
<input name="require_signed_commits" type="checkbox" {{ if .Rule .RequireSignedCommits }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.require_signed_commits" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.require_signed_commits_desc" }} </p>
</div>
</div>
<h5 class="ui dividing header"> {{ .locale .Tr "repo.settings.event_pull_request_approvals" }} </h5>
<div class="field">
<label> {{ .locale .Tr "repo.settings.protect_required_approvals" }} </label>
<input name="required_approvals" type="number" value=" {{ .Rule .RequiredApprovals }} ">
<p class="help gt-ml-0"> {{ .locale .Tr "repo.settings.protect_required_approvals_desc" }} </p>
</div>
<div class="grouped fields">
<div class="field">
<div class="ui checkbox">
<input class="enable-whitelist" name="enable_approvals_whitelist" type="checkbox" data-target="#approvals_whitelist_box" {{ if .Rule .EnableApprovalsWhitelist }} checked {{ end }} >
<input name="enable_approvals_whitelist" type="checkbox" class="toggle-target-enabled" data-target="#approvals_whitelist_box" {{ if .Rule .EnableApprovalsWhitelist }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_approvals_whitelist_enabled" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_approvals_whitelist_enabled_desc" }} </p>
</div>
</div>
<div id="approvals_whitelist_box" class="fields {{ if not .Rule .EnableApprovalsWhitelist }} disabled {{ end }} ">
<div class="whitelist field">
<div id="approvals_whitelist_box" class="grouped fields {{ if not .Rule .EnableApprovalsWhitelist }} disabled {{ end }} ">
<div class="checkbox-sub-item field">
<label> {{ .locale .Tr "repo.settings.protect_approvals_whitelist_users" }} </label>
<div class="ui multiple search selection dropdown">
<input type="hidden" name="approvals_whitelist_users" value=" {{ .approvals_whitelist_users }} ">
@ -182,8 +123,7 @@
</div>
</div>
{{ if .Owner .IsOrganization }}
<br>
<div class="whitelist field">
<div class="checkbox-sub-item field">
<label> {{ .locale .Tr "repo.settings.protect_approvals_whitelist_teams" }} </label>
<div class="ui multiple search selection dropdown">
<input type="hidden" name="approvals_whitelist_teams" value=" {{ .approvals_whitelist_teams }} ">
@ -200,53 +140,117 @@
</div>
{{ end }}
</div>
<div class="field" >
<div class="ui checkbox ">
<input name="block_on_rejected_reviews" type="checkbox" {{ if .Rule .BlockOnRejectedReviews }} checked {{ end }} >
<label for="block_on_rejected_reviews"> {{ .locale .Tr "repo.settings.block_rejected_reviews" }} </label >
<p class="help" > {{ .locale .Tr "repo.settings.block_rejected_reviews_desc" }} </p >
</ div>
</ div>
<div class="field ">
<div class="ui checkbox" >
<input name="dismiss_stale_approvals" type="checkbox" {{ if .Rule .DismissStaleApprovals }} checked {{ end }} >
<label > {{ .locale .Tr "repo.settings.dismiss_stale_approvals" }} </label >
<p class="help"> {{ .locale .Tr "repo.settings. dismiss_stale_appro vals_desc" }} </p >
</div>
</div>
<div class="grouped fields">
<div class="field">
<div class="ui checkbox">
<input name="block_on_official_review_requests" type="check box" {{ if .Rule .BlockOnOfficialReviewRequests }} checked {{ end }} >
<label for="block_on_official_review_requests" > {{ .locale .Tr "repo.settings.block_on_official_review_reques ts" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.block_on_official_review_reques ts_desc" }} </p>
<input name="enable_status_check" type="checkbox" class="toggle-target-enabled" data-target="#statuscheck_contexts_ box" {{ if .Rule .EnableStatusCheck }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_check_status_contex ts" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_check_status_contex ts_desc" }} </p>
</div>
</div>
<div id="statuscheck_contexts_box" class="checkbox-sub-item field {{ if not .Rule .EnableStatusCheck }} disabled {{ end }} ">
<table class="ui celled table">
<thead>
<tr>
<th> {{ .locale .Tr "repo.settings.protect_check_status_contexts_list" }} </th>
</tr>
</thead>
<tbody>
{{ range $ .branch_status_check_contexts }}
<tr>
<td>
<span class="ui checkbox">
<label> {{ . }} </label>
<input name="status_check_contexts" value=" {{ . }} " type="checkbox" {{ if SliceUtils .Contains $ .Rule .StatusCheckContexts . }} checked {{ end }} >
</span>
</td>
</tr>
{{ else }}
<tr><td>N/A</td></tr>
{{ end }}
</tbody>
</table>
</div>
</div>
<h5 class="ui dividing header"> {{ .locale .Tr "repo.settings.event_pull_request_merge" }} </h5>
<div class="grouped fields">
<div class="field">
<div class="ui checkbox">
<input name="dismiss_stale_approvals" type="checkbox" {{ if .Rule .DismissStaleApprovals }} checked {{ end }} >
<label for="dismiss_stale_approvals"> {{ .locale .Tr "repo.settings.dismiss_stale_approvals" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.dismiss_stale_approvals_desc" }} </p>
<div class="ui radio checkbox">
<input name="enable_merge_whitelist" type="radio" value="false" class="toggle-target-disabled" data-target="#merge_whitelist_ box" {{ if not .Rule .EnableMergeWhitelist }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_enable_merge " }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_enable_merge _desc" }} </p>
</div>
</div>
<div class="field">
<div class="ui checkbox">
<input name="require_signed_commits" type="checkbox" {{ if .Rule .RequireSignedCommits }} checked {{ end }} >
<label for="require_signed_commits"> {{ .locale .Tr "repo.settings.require_signed_commits" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.require_signed_commits_desc" }} </p>
<div class="ui radio checkbox">
<input name="enable_merge_whitelist" type="radio" value="true" class="toggle-target-enabled" data-target="#merge_whitelist_ box" {{ if .Rule .EnableMergeWhitelist }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.protect_merge_whitelist_committer s" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.protect_merge_whitelist_committer s_desc" }} </p>
</div>
</div>
<div class="field">
<div class="ui checkbox">
<input name="block_on_outdated_branch" type="checkbox" {{ if .Rule .BlockOnOutdatedBranch }} checked {{ end }} >
<label for="block_on_outdated_branch"> {{ .locale .Tr "repo.settings.block_outdated_branch" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.block_outdated_branch_desc" }} </p>
<div id="merge_whitelist_box" class="grouped fields {{ if not .Rule .EnableMergeWhitelist }} disabled {{ end }} ">
<div class="checkbox-sub-item field">
<label> {{ .locale .Tr "repo.settings.protect_merge_whitelist_users" }} </label>
<div class="ui multiple search selection dropdown">
<input type="hidden" name="merge_whitelist_users" value=" {{ .merge_whitelist_users }} ">
<div class="default text"> {{ .locale .Tr "repo.settings.protect_whitelist_search_users" }} </div>
<div class="menu">
{{ range .Users }}
<div class="item" data-value=" {{ .ID }} ">
{{ avatar $ .Context . 2 8 "mini" }} {{ template "repo/search_name" . }}
</div>
{{ end }}
</div>
</div>
</div>
{{ if .Owner .IsOrganization }}
<div class="checkbox-sub-item field">
<label> {{ .locale .Tr "repo.settings.protect_merge_whitelist_teams" }} </label>
<div class="ui multiple search selection dropdown">
<input type="hidden" name="merge_whitelist_teams" value=" {{ .merge_whitelist_teams }} ">
<div class="default text"> {{ .locale .Tr "repo.settings.protect_whitelist_search_teams" }} </div>
<div class="menu">
{{ range .Teams }}
<div class="item" data-value=" {{ .ID }} ">
{{ svg "octicon-people" }}
{{ .Name }}
</div>
{{ end }}
</div>
</div>
</div>
{{ end }}
</div>
<div class="field">
<label for="protected_file_patterns"> {{ .locale .Tr "repo.settings.protect_protected_file_patterns" }} </label>
<input name="protected_file_patterns" id="protected_file_patterns" type="text" value=" {{ .Rule .ProtectedFilePatterns }} ">
<p class="help"> {{ .locale .Tr "repo.settings.protect_protected_file_patterns_desc" | Safe }} </p>
</div>
<div class="field">
<div class="ui checkbox">
<input name="block_on_rejected_reviews" type="checkbox" {{ if .Rule .BlockOnRejectedReviews }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.block_rejected_reviews" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.block_rejected_reviews_desc" }} </p>
</div>
<div class="field">
<label for="unprotected_file_patterns"> {{ .locale .Tr "repo.settings.protect_unprotected_file_patterns" }} </label>
<input name="unprotected_file_patterns" id="unprotected_file_patterns" type="text" value=" {{ .Rule .UnprotectedFilePatterns }} ">
<p class="help"> {{ .locale .Tr "repo.settings.protect_unprotected_file_patterns_desc" | Safe }} </p>
</div>
<div class="field">
<div class="ui checkbox">
<input name="block_on_official_review_requests" type="checkbox" {{ if .Rule .BlockOnOfficialReviewRequests }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.block_on_official_review_requests" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.block_on_official_review_requests_desc" }} </p>
</div>
</div>
<div class="field">
<div class="ui checkbox">
<input name="block_on_outdated_branch" type="checkbox" {{ if .Rule .BlockOnOutdatedBranch }} checked {{ end }} >
<label> {{ .locale .Tr "repo.settings.block_outdated_branch" }} </label>
<p class="help"> {{ .locale .Tr "repo.settings.block_outdated_branch_desc" }} </p>
</div>
</div>
<div class="ui divider"></div>
<div class="field">