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

	{{$compareSeparator := $.CompareInfo.CompareSeparator}}
	{{$compareSeparatorSwitch := Iif $.CompareInfo.DirectComparison "..." ".."}}
	<div class="ui container fluid padded">
		<h2 class="ui header">
			{{if and $.PageIsComparePull $.IsSigned (not .Repository.IsArchived)}}
				{{ctx.Locale.Tr "repo.compare.title"}}
				<div class="sub header">{{ctx.Locale.Tr "repo.compare.description"}}</div>
			{{else}}
				{{ctx.Locale.Tr "action.compare_commits_general"}}
			{{end}}
		</h2>
		{{template "base/alert" .}}
		{{$BaseCompareName := $.Repository.FullName -}}
		{{$HeadCompareName := $.HeadRepo.FullName -}}
		{{$OwnForkCompareName := "" -}}
		{{if $.OwnForkRepo -}}
			{{$OwnForkCompareName = $.OwnForkRepo.FullName -}}
		{{end -}}
		{{$RootRepoCompareName := "" -}}
		{{if $.RootRepo -}}
			{{$RootRepoCompareName = $.RootRepo.FullName -}}
		{{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="tw-text-text">
										{{svg "octicon-git-branch"}} {{ctx.Locale.Tr "repo.branches"}}
									</span>
								</a>
								<a class="reference column" href="#" data-target=".base-tag-list">
									<span class="tw-text-text">
										{{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}}{{$compareSeparatorSwitch}}{{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="tw-text-text">
										{{svg "octicon-git-branch"}} {{ctx.Locale.Tr "repo.branches"}}
									</span>
								</a>
								<a class="reference column" href="#" data-target=".head-tag-list">
									<span class="tw-text-text">
										{{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 := and ($.CompareInfo.BaseRef.IsBranch) ($.CompareInfo.HeadRef.IsBranch) (not $.CompareInfo.DirectComparison) (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 $.CompareInfo.BaseRef.IsBranch $.CompareInfo.HeadRef.IsBranch}}
						{{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 flex-text-block pullrequest-form-toggle {{if .ExpandNewPrForm}}tw-hidden{{end}}">
					<span class="tw-flex-1">{{ctx.Locale.Tr "repo.pulls.new.description"}}</span>
					<a class="ui button primary show-panel toggle" data-panel=".pullrequest-form-toggle, .pullrequest-form">{{ctx.Locale.Tr "repo.pulls.new"}}</a>
				</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 and (not .CommitCount) $.CompareInfo.MergeBase}}
				<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" .}}
