{{template "base/head" .}}
<div role="main" aria-label="{{.Title}}" class="page-content repository diff {{if .PageIsComparePull}}compare pull{{end}}">
	{{template "repo/header" .}}

	<div class="ui container fluid padded">
		<h2 class="ui header">
			{{if and $.PageIsComparePull $.IsSigned (not .Repository.IsArchived)}}
				{{ctx.Locale.Tr "repo.pulls.compare_changes"}}
				<div class="sub header">{{ctx.Locale.Tr "repo.pulls.compare_changes_desc"}}</div>
			{{else}}
				{{ctx.Locale.Tr "action.compare_commits_general"}}
			{{end}}
		</h2>
		{{$BaseCompareName := $.BaseName -}}
		{{- $HeadCompareName := $.HeadRepo.OwnerName -}}
		{{- if and (eq $.BaseName $.HeadRepo.OwnerName) (ne $.Repository.Name $.HeadRepo.Name) -}}
			{{- $HeadCompareName = printf "%s/%s" $.HeadRepo.OwnerName $.HeadRepo.Name -}}
		{{- end -}}
		{{- $OwnForkCompareName := "" -}}
		{{- if .OwnForkRepo -}}
			{{- $OwnForkCompareName = .OwnForkRepo.OwnerName -}}
		{{- end -}}
		{{- $RootRepoCompareName := "" -}}
		{{- if .RootRepo -}}
			{{- $RootRepoCompareName = .RootRepo.OwnerName -}}
			{{- if eq $.HeadRepo.OwnerName .RootRepo.OwnerName -}}
				{{- $HeadCompareName = printf "%s/%s" $.HeadRepo.OwnerName $.HeadRepo.Name -}}
			{{- end -}}
		{{- end -}}

		<div class="ui segment choose branch">
			<a class="tw-mr-2" href="{{$.HeadRepo.Link}}/compare/{{PathEscapeSegments $.HeadBranch}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.BaseName}}/{{PathEscape $.Repository.Name}}:{{end}}{{PathEscapeSegments $.BaseBranch}}" title="{{ctx.Locale.Tr "repo.pulls.switch_head_and_base"}}">{{svg "octicon-git-compare"}}</a>
			<div class="ui dropdown jump select-branch">
				<div class="ui basic small button">
					<span class="text">{{if $.PageIsComparePull}}{{ctx.Locale.Tr "repo.pulls.compare_base"}}{{else}}{{ctx.Locale.Tr "repo.compare.compare_base"}}{{end}}: <strong>{{$BaseCompareName}}:{{$.BaseBranch}}</strong></span>
					{{svg "octicon-triangle-down" 14 "dropdown icon"}}
				</div>
				<div class="menu">
					<div class="ui icon search input">
						<i class="icon">{{svg "octicon-filter" 16}}</i>
						<input name="search" placeholder="{{ctx.Locale.Tr "repo.filter_branch_and_tag"}}...">
					</div>
					<div class="header">
						<div class="ui grid">
							<div class="two column row">
								<a class="reference column" href="#" data-target=".base-branch-list">
									<span class="text black">
										{{svg "octicon-git-branch"}} {{ctx.Locale.Tr "repo.branches"}}
									</span>
								</a>
								<a class="reference column" href="#" data-target=".base-tag-list">
									<span class="text black">
										{{svg "octicon-tag"}} {{ctx.Locale.Tr "repo.tags"}}
									</span>
								</a>
							</div>
						</div>
					</div>
					<div class="scrolling menu reference-list-menu base-branch-list">
						{{range .Branches}}
							<a class="item {{if eq $.BaseBranch .}}selected{{end}}" href="{{$.RepoLink}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments $.HeadBranch}}">{{$BaseCompareName}}:{{.}}</a>
						{{end}}
						{{if not .PullRequestCtx.SameRepo}}
							{{range .HeadBranches}}
								<a class="item" href="{{$.HeadRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$HeadCompareName}}:{{.}}</a>
							{{end}}
						{{end}}
						{{if .OwnForkRepo}}
							{{range .OwnForkRepoBranches}}
								<a class="item" href="{{$.OwnForkRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$OwnForkCompareName}}:{{.}}</a>
							{{end}}
						{{end}}
						{{if and .RootRepo (.RootRepo.AllowsPulls ctx)}}
							{{range .RootRepoBranches}}
								<a class="item" href="{{$.RootRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$RootRepoCompareName}}:{{.}}</a>
							{{end}}
						{{end}}
					</div>
					<div class="scrolling menu reference-list-menu base-tag-list tw-hidden">
						{{range .Tags}}
							<a class="item {{if eq $.BaseBranch .}}selected{{end}}" href="{{$.RepoLink}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments $.HeadBranch}}">{{$BaseCompareName}}:{{.}}</a>
						{{end}}
						{{if not .PullRequestCtx.SameRepo}}
							{{range .HeadTags}}
								<a class="item" href="{{$.HeadRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$HeadCompareName}}:{{.}}</a>
							{{end}}
						{{end}}
						{{if .OwnForkRepo}}
							{{range .OwnForkRepoTags}}
								<a class="item" href="{{$.OwnForkRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$OwnForkCompareName}}:{{.}}</a>
							{{end}}
						{{end}}
						{{if .RootRepo}}
							{{range .RootRepoTags}}
								<a class="item" href="{{$.RootRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$RootRepoCompareName}}:{{.}}</a>
							{{end}}
						{{end}}
					</div>
				</div>
			</div>

			<a href="{{.RepoLink}}/compare/{{PathEscapeSegments .BaseBranch}}{{.OtherCompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments $.HeadBranch}}" title="{{ctx.Locale.Tr "repo.pulls.switch_comparison_type"}}">{{svg "octicon-arrow-left" 16}}<div class="compare-separator">{{.CompareSeparator}}</div></a>

			<div class="ui dropdown jump select-branch">
				<div class="ui basic small button">
					<span class="text">{{if $.PageIsComparePull}}{{ctx.Locale.Tr "repo.pulls.compare_compare"}}{{else}}{{ctx.Locale.Tr "repo.compare.compare_head"}}{{end}}: <strong>{{$HeadCompareName}}:{{$.HeadBranch}}</strong></span>
					{{svg "octicon-triangle-down" 14 "dropdown icon"}}
				</div>
				<div class="menu">
					<div class="ui icon search input">
						<i class="icon">{{svg "octicon-filter" 16}}</i>
						<input name="search" placeholder="{{ctx.Locale.Tr "repo.filter_branch_and_tag"}}...">
					</div>
					<div class="header">
						<div class="ui grid">
							<div class="two column row">
								<a class="reference column" href="#" data-target=".head-branch-list">
									<span class="text black">
										{{svg "octicon-git-branch"}} {{ctx.Locale.Tr "repo.branches"}}
									</span>
								</a>
								<a class="reference column" href="#" data-target=".head-tag-list">
									<span class="text black">
										{{svg "octicon-tag"}} {{ctx.Locale.Tr "repo.tags"}}
									</span>
								</a>
							</div>
						</div>
					</div>
					<div class="scrolling menu reference-list-menu head-branch-list">
						{{range .HeadBranches}}
							<a class="{{if eq $.HeadBranch .}}selected{{end}} item" href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments .}}">{{$HeadCompareName}}:{{.}}</a>
						{{end}}
						{{if not .PullRequestCtx.SameRepo}}
							{{range .Branches}}
								<a class="item" href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.BaseName}}/{{PathEscape $.Repository.Name}}:{{PathEscapeSegments .}}">{{$BaseCompareName}}:{{.}}</a>
							{{end}}
						{{end}}
						{{if .OwnForkRepo}}
							{{range .OwnForkRepoBranches}}
								<a class="item" href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.OwnForkRepo.OwnerName}}/{{PathEscape $.OwnForkRepo.Name}}:{{PathEscapeSegments .}}">{{$OwnForkCompareName}}:{{.}}</a>
							{{end}}
						{{end}}
						{{if .RootRepo}}
							{{range .RootRepoBranches}}
								<a class="item" href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.RootRepo.OwnerName}}/{{PathEscape $.RootRepo.Name}}:{{PathEscapeSegments .}}">{{$RootRepoCompareName}}:{{.}}</a>
							{{end}}
						{{end}}
					</div>
					<div class="scrolling menu reference-list-menu head-tag-list tw-hidden">
						{{range .HeadTags}}
							<a class="{{if eq $.HeadBranch .}}selected{{end}} item" href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments .}}">{{$HeadCompareName}}:{{.}}</a>
						{{end}}
						{{if not .PullRequestCtx.SameRepo}}
							{{range .Tags}}
								<a class="item" href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.BaseName}}/{{PathEscape $.Repository.Name}}:{{PathEscapeSegments .}}">{{$BaseCompareName}}:{{.}}</a>
							{{end}}
						{{end}}
						{{if .OwnForkRepo}}
							{{range .OwnForkRepoTags}}
								<a class="item" href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.OwnForkRepo.OwnerName}}/{{PathEscape $.OwnForkRepo.Name}}:{{PathEscapeSegments .}}">{{$OwnForkCompareName}}:{{.}}</a>
							{{end}}
						{{end}}
						{{if .RootRepo}}
							{{range .RootRepoTags}}
								<a class="item" href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.RootRepo.OwnerName}}/{{PathEscape $.RootRepo.Name}}:{{PathEscapeSegments .}}">{{$RootRepoCompareName}}:{{.}}</a>
							{{end}}
						{{end}}
					</div>
				</div>
			</div>
		</div>

		{{$showDiffBox := and .CommitCount (not .IsNothingToCompare)}}
		{{if and .IsSigned .PageIsComparePull}}
			{{$allowCreatePR := or $.AllowEmptyPr (not .IsNothingToCompare)}}
			{{if .IsNothingToCompare}}
				<div class="ui segment">
					{{if $allowCreatePR}}
						{{ctx.Locale.Tr "repo.pulls.nothing_to_compare_and_allow_empty_pr"}}
					{{else if and .HeadIsBranch .BaseIsBranch}}
						{{ctx.Locale.Tr "repo.pulls.nothing_to_compare"}}
					{{else}}
						{{ctx.Locale.Tr "repo.pulls.nothing_to_compare_have_tag"}}
					{{end}}
				</div>
			{{end}}
			{{if .HasPullRequest}}
				<div class="ui segment flex-text-block tw-gap-4">
					{{template "shared/issueicon" .}}
					<div class="issue-title tw-break-anywhere">
						{{ctx.RenderUtils.RenderIssueTitle .PullRequest.Issue.Title $.Repository}}
						<span class="index">#{{.PullRequest.Issue.Index}}</span>
					</div>
					<a href="{{$.RepoLink}}/pulls/{{.PullRequest.Issue.Index}}" class="ui compact button primary">
						{{ctx.Locale.Tr "repo.pulls.view"}}
					</a>
				</div>
			{{else if .Repository.IsArchived}}
				<div class="ui warning message">
					{{if .Repository.ArchivedUnix.IsZero}}
						{{ctx.Locale.Tr "repo.archive.title"}}
					{{else}}
						{{ctx.Locale.Tr "repo.archive.title_date" (DateUtils.AbsoluteLong .Repository.ArchivedUnix)}}
					{{end}}
				</div>
			{{else if $allowCreatePR}}
				<div class="ui info message pullrequest-form-toggle {{if .ExpandNewPrForm}}tw-hidden{{end}}">
					<button class="ui button primary show-panel toggle" data-panel=".pullrequest-form-toggle, .pullrequest-form">{{ctx.Locale.Tr "repo.pulls.new"}}</button>
				</div>
				<div class="pullrequest-form {{if not .ExpandNewPrForm}}tw-hidden{{end}}">
					{{template "repo/issue/new_form" .}}
				</div>
			{{end}}
		{{else}}{{/* not singed-in or not for pull-request */}}
			{{if not .CommitCount}}
				<div class="ui segment">{{ctx.Locale.Tr "repo.commits.nothing_to_compare"}}</div>
			{{end}}
		{{end}}
	</div>

	{{if $showDiffBox}}
		<div class="ui container fluid padded tw-my-4">
			{{template "repo/commits_table" .}}
			{{template "repo/diff/box" .}}
		</div>
	{{end}}
</div>
{{template "base/footer" .}}
