Deduplicate template code for label selection menu (#23431)
This commit is contained in:
		
							parent
							
								
									a04eeb2a54
								
							
						
					
					
						commit
						43c136200a
					
				|  | @ -0,0 +1,43 @@ | ||||||
|  | <div class="ui {{if or (not .HasIssuesOrPullsWritePermission) .Repository.IsArchived}}disabled{{end}} floating jump select-label dropdown"> | ||||||
|  | 	<a class="text gt-df gt-ac muted"> | ||||||
|  | 		<strong>{{.locale.Tr "repo.issues.new.labels"}}</strong> | ||||||
|  | 		{{if and .HasIssuesOrPullsWritePermission (not .Repository.IsArchived)}} | ||||||
|  | 			{{svg "octicon-gear" 16 "gt-ml-2"}} | ||||||
|  | 		{{end}} | ||||||
|  | 	</a> | ||||||
|  | 	<div class="filter menu" {{if .Issue}}data-action="update" data-issue-id="{{$.Issue.ID}}" data-update-url="{{$.RepoLink}}/issues/labels"{{else}}data-id="#label_ids"{{end}}> | ||||||
|  | 		<div class="header" style="text-transform: none;font-size:16px;">{{.locale.Tr "repo.issues.new.add_labels_title"}}</div> | ||||||
|  | 		{{if or .Labels .OrgLabels}} | ||||||
|  | 			<div class="ui icon search input"> | ||||||
|  | 				<i class="icon gt-df gt-ac gt-jc">{{svg "octicon-search" 16}}</i> | ||||||
|  | 				<input type="text" placeholder="{{.locale.Tr "repo.issues.filter_labels"}}"> | ||||||
|  | 			</div> | ||||||
|  | 		{{end}} | ||||||
|  | 		<a class="no-select item" href="#">{{.locale.Tr "repo.issues.new.clear_labels"}}</a> | ||||||
|  | 		{{if or .Labels .OrgLabels}} | ||||||
|  | 			{{$previousExclusiveScope := "_no_scope"}} | ||||||
|  | 			{{range .Labels}} | ||||||
|  | 				{{$exclusiveScope := .ExclusiveScope}} | ||||||
|  | 				{{if and (ne $previousExclusiveScope "_no_scope") (ne $previousExclusiveScope $exclusiveScope)}} | ||||||
|  | 					<div class="ui divider"></div> | ||||||
|  | 				{{end}} | ||||||
|  | 				{{$previousExclusiveScope = $exclusiveScope}} | ||||||
|  | 				<a class="{{if .IsChecked}}checked{{end}} item" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}" data-scope="{{$exclusiveScope}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{if $exclusiveScope}}{{svg "octicon-dot-fill"}}{{else}}{{svg "octicon-check"}}{{end}}</span>  {{RenderLabel $.Context .}} | ||||||
|  | 				{{if .Description}}<br><small class="desc">{{.Description | RenderEmoji $.Context}}</small>{{end}}</a> | ||||||
|  | 			{{end}} | ||||||
|  | 			<div class="ui divider"></div> | ||||||
|  | 			{{$previousExclusiveScope := "_no_scope"}} | ||||||
|  | 			{{range .OrgLabels}} | ||||||
|  | 				{{$exclusiveScope := .ExclusiveScope}} | ||||||
|  | 				{{if and (ne $previousExclusiveScope "_no_scope") (ne $previousExclusiveScope $exclusiveScope)}} | ||||||
|  | 					<div class="ui divider"></div> | ||||||
|  | 				{{end}} | ||||||
|  | 				{{$previousExclusiveScope = $exclusiveScope}} | ||||||
|  | 				<a class="{{if .IsChecked}}checked{{end}} item" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}" data-scope="{{$exclusiveScope}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{if $exclusiveScope}}{{svg "octicon-dot-fill"}}{{else}}{{svg "octicon-check"}}{{end}}</span>  {{RenderLabel $.Context .}} | ||||||
|  | 				{{if .Description}}<br><small class="desc">{{.Description | RenderEmoji $.Context}}</small>{{end}}</a> | ||||||
|  | 			{{end}} | ||||||
|  | 		{{else}} | ||||||
|  | 			<div class="header" style="text-transform: none;font-size:14px;">{{.locale.Tr "repo.issues.new.no_items"}}</div> | ||||||
|  | 		{{end}} | ||||||
|  | 	</div> | ||||||
|  | </div> | ||||||
|  | @ -36,50 +36,7 @@ | ||||||
| 			{{template "repo/issue/branch_selector_field" .}} | 			{{template "repo/issue/branch_selector_field" .}} | ||||||
| 
 | 
 | ||||||
| 			<input id="label_ids" name="label_ids" type="hidden" value="{{.label_ids}}"> | 			<input id="label_ids" name="label_ids" type="hidden" value="{{.label_ids}}"> | ||||||
| 			<div class="ui {{if not .HasIssuesOrPullsWritePermission}}disabled{{end}} floating jump select-label dropdown"> | 			{{template "repo/issue/labels/labels_selector_field" .}} | ||||||
| 				<span class="text"> |  | ||||||
| 					<strong>{{.locale.Tr "repo.issues.new.labels"}}</strong> |  | ||||||
| 					{{if .HasIssuesOrPullsWritePermission}} |  | ||||||
| 						{{svg "octicon-gear"}} |  | ||||||
| 					{{end}} |  | ||||||
| 				</span> |  | ||||||
| 				<div class="filter menu" data-id="#label_ids"> |  | ||||||
| 					<div class="header" style="text-transform: none;font-size:16px;">{{.locale.Tr "repo.issues.new.add_labels_title"}}</div> |  | ||||||
| 					{{if or .Labels .OrgLabels}} |  | ||||||
| 					<div class="ui icon search input"> |  | ||||||
| 						<i class="icon gt-df gt-ac gt-jc">{{svg "octicon-search" 16}}</i> |  | ||||||
| 						<input type="text" placeholder="{{.locale.Tr "repo.issues.filter_labels"}}"> |  | ||||||
| 					</div> |  | ||||||
| 					{{end}} |  | ||||||
| 					<div class="no-select item">{{.locale.Tr "repo.issues.new.clear_labels"}}</div> |  | ||||||
| 					{{if or .Labels .OrgLabels}} |  | ||||||
| 						{{$previousExclusiveScope := "_no_scope"}} |  | ||||||
| 						{{range .Labels}} |  | ||||||
| 							{{$exclusiveScope := .ExclusiveScope}} |  | ||||||
| 							{{if and (ne $previousExclusiveScope "_no_scope") (ne $previousExclusiveScope $exclusiveScope)}} |  | ||||||
| 								<div class="ui divider"></div> |  | ||||||
| 							{{end}} |  | ||||||
| 							{{$previousExclusiveScope = $exclusiveScope}} |  | ||||||
| 							<a class="{{if .IsChecked}}checked{{end}} item" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}" data-scope="{{$exclusiveScope}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{if $exclusiveScope}}{{svg "octicon-dot-fill"}}{{else}}{{svg "octicon-check"}}{{end}}</span>  {{RenderLabel $.Context .}} |  | ||||||
| 							{{if .Description}}<br><small class="desc">{{.Description | RenderEmoji $.Context}}</small>{{end}}</a> |  | ||||||
| 						{{end}} |  | ||||||
| 
 |  | ||||||
| 						<div class="ui divider"></div> |  | ||||||
| 						{{$previousExclusiveScope := "_no_scope"}} |  | ||||||
| 						{{range .OrgLabels}} |  | ||||||
| 							{{$exclusiveScope := .ExclusiveScope}} |  | ||||||
| 							{{if and (ne $previousExclusiveScope "_no_scope") (ne $previousExclusiveScope $exclusiveScope)}} |  | ||||||
| 								<div class="ui divider"></div> |  | ||||||
| 							{{end}} |  | ||||||
| 							{{$previousExclusiveScope = $exclusiveScope}} |  | ||||||
| 							<a class="{{if .IsChecked}}checked{{end}} item" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}" data-scope="{{$exclusiveScope}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{if $exclusiveScope}}{{svg "octicon-dot-fill"}}{{else}}{{svg "octicon-check"}}{{end}}</span>  {{RenderLabel $.Context .}} |  | ||||||
| 							{{if .Description}}<br><small class="desc">{{.Description | RenderEmoji $.Context}}</small>{{end}}</a> |  | ||||||
| 						{{end}} |  | ||||||
| 					{{else}} |  | ||||||
| 						<div class="header" style="text-transform: none;font-size:14px;">{{.locale.Tr "repo.issues.new.no_items"}}</div> |  | ||||||
| 					{{end}} |  | ||||||
| 				</div> |  | ||||||
| 			</div> |  | ||||||
| 			{{template "repo/issue/labels/labels_sidebar" dict "root" $}} | 			{{template "repo/issue/labels/labels_sidebar" dict "root" $}} | ||||||
| 
 | 
 | ||||||
| 			<div class="ui divider"></div> | 			<div class="ui divider"></div> | ||||||
|  |  | ||||||
|  | @ -106,49 +106,7 @@ | ||||||
| 			<div class="ui divider"></div> | 			<div class="ui divider"></div> | ||||||
| 		{{end}} | 		{{end}} | ||||||
| 
 | 
 | ||||||
| 		<div class="ui {{if or (not .HasIssuesOrPullsWritePermission) .Repository.IsArchived}}disabled{{end}} floating jump select-label dropdown"> | 		{{template "repo/issue/labels/labels_selector_field" .}} | ||||||
| 			<a class="text gt-df gt-ac muted"> |  | ||||||
| 				<strong>{{.locale.Tr "repo.issues.new.labels"}}</strong> |  | ||||||
| 				{{if and .HasIssuesOrPullsWritePermission (not .Repository.IsArchived)}} |  | ||||||
| 					{{svg "octicon-gear" 16 "gt-ml-2"}} |  | ||||||
| 				{{end}} |  | ||||||
| 			</a> |  | ||||||
| 			<div class="filter menu" data-action="update" data-issue-id="{{$.Issue.ID}}" data-update-url="{{$.RepoLink}}/issues/labels"> |  | ||||||
| 				<div class="header" style="text-transform: none;font-size:16px;">{{.locale.Tr "repo.issues.new.add_labels_title"}}</div> |  | ||||||
| 				{{if or .Labels .OrgLabels}} |  | ||||||
| 					<div class="ui icon search input"> |  | ||||||
| 						<i class="icon gt-df gt-ac gt-jc">{{svg "octicon-search" 16}}</i> |  | ||||||
| 						<input type="text" placeholder="{{.locale.Tr "repo.issues.filter_labels"}}"> |  | ||||||
| 					</div> |  | ||||||
| 				{{end}} |  | ||||||
| 				<a class="no-select item" href="#">{{.locale.Tr "repo.issues.new.clear_labels"}}</a> |  | ||||||
| 				{{if or .Labels .OrgLabels}} |  | ||||||
| 					{{$previousExclusiveScope := "_no_scope"}} |  | ||||||
| 					{{range .Labels}} |  | ||||||
| 						{{$exclusiveScope := .ExclusiveScope}} |  | ||||||
| 						{{if and (ne $previousExclusiveScope "_no_scope") (ne $previousExclusiveScope $exclusiveScope)}} |  | ||||||
| 							<div class="ui divider"></div> |  | ||||||
| 						{{end}} |  | ||||||
| 						{{$previousExclusiveScope = $exclusiveScope}} |  | ||||||
| 						<a class="{{if .IsChecked}}checked{{end}} item" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}" data-scope="{{$exclusiveScope}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{if $exclusiveScope}}{{svg "octicon-dot-fill"}}{{else}}{{svg "octicon-check"}}{{end}}</span>  {{RenderLabel $.Context .}} |  | ||||||
| 						{{if .Description}}<br><small class="desc">{{.Description | RenderEmoji $.Context}}</small>{{end}}</a> |  | ||||||
| 					{{end}} |  | ||||||
| 					<div class="ui divider"></div> |  | ||||||
| 					{{$previousExclusiveScope := "_no_scope"}} |  | ||||||
| 					{{range .OrgLabels}} |  | ||||||
| 						{{$exclusiveScope := .ExclusiveScope}} |  | ||||||
| 						{{if and (ne $previousExclusiveScope "_no_scope") (ne $previousExclusiveScope $exclusiveScope)}} |  | ||||||
| 							<div class="ui divider"></div> |  | ||||||
| 						{{end}} |  | ||||||
| 						{{$previousExclusiveScope = $exclusiveScope}} |  | ||||||
| 						<a class="{{if .IsChecked}}checked{{end}} item" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}" data-scope="{{$exclusiveScope}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{if $exclusiveScope}}{{svg "octicon-dot-fill"}}{{else}}{{svg "octicon-check"}}{{end}}</span>  {{RenderLabel $.Context .}} |  | ||||||
| 						{{if .Description}}<br><small class="desc">{{.Description | RenderEmoji $.Context}}</small>{{end}}</a> |  | ||||||
| 					{{end}} |  | ||||||
| 				{{else}} |  | ||||||
| 					<div class="header" style="text-transform: none;font-size:14px;">{{.locale.Tr "repo.issues.new.no_items"}}</div> |  | ||||||
| 				{{end}} |  | ||||||
| 			</div> |  | ||||||
| 		</div> |  | ||||||
| 		{{template "repo/issue/labels/labels_sidebar" dict "root" $}} | 		{{template "repo/issue/labels/labels_sidebar" dict "root" $}} | ||||||
| 
 | 
 | ||||||
| 		<div class="ui divider"></div> | 		<div class="ui divider"></div> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue