{{template "base/head" .}}
<div role="main" aria-label="{{.Title}}" class="page-content repository diff {{if .PageIsComparePull}}compare pull{{end}}">
	{{template "repo/header" .}}
	{{$showDiffBox := false}}
	<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 floating filter dropdown" data-no-results="{{ctx.Locale.Tr "repo.pulls.no_results"}}">
			<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}}: {{$BaseCompareName}}:{{$.BaseBranch}}</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="branch-tag-tab">
					<a class="branch-tag-item muted" href="#" data-target=".base-branch-list">
						{{svg "octicon-git-branch"}}{{ctx.Locale.Tr "repo.branches"}}
					</a>
					<a class="branch-tag-item muted" href="#" data-target=".base-tag-list">
						{{svg "octicon-tag"}}{{ctx.Locale.Tr "repo.tags"}}
					</a>
				</div>
				<div class="scrolling menu reference-list-menu base-branch-list">
					{{range .Branches}}
						<div class="item {{if eq $.BaseBranch .}}selected{{end}}" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments $.HeadBranch}}">{{$BaseCompareName}}:{{.}}</div>
					{{end}}
					{{if and (not .PullRequestCtx.SameRepo) ($.HeadRepo.AllowsPulls ctx)}}
						{{range .HeadBranches}}
							<div class="item" data-url="{{$.HeadRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$HeadCompareName}}:{{.}}</div>
						{{end}}
					{{end}}
					{{if and .OwnForkRepo (.OwnForkRepo.AllowsPulls ctx)}}
						{{range .OwnForkRepoBranches}}
							<div class="item" data-url="{{$.OwnForkRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$OwnForkCompareName}}:{{.}}</div>
						{{end}}
					{{end}}
					{{if and .RootRepo (.RootRepo.AllowsPulls ctx)}}
						{{range .RootRepoBranches}}
							<div class="item" data-url="{{$.RootRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$RootRepoCompareName}}:{{.}}</div>
						{{end}}
					{{end}}
				</div>
				<div class="scrolling menu reference-list-menu base-tag-list tw-hidden">
					{{range .Tags}}
						<div class="item {{if eq $.BaseBranch .}}selected{{end}}" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments $.HeadBranch}}">{{$BaseCompareName}}:{{.}}</div>
					{{end}}
					{{if and (not .PullRequestCtx.SameRepo) ($.HeadRepo.AllowsPulls ctx)}}
						{{range .HeadTags}}
							<div class="item" data-url="{{$.HeadRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$HeadCompareName}}:{{.}}</div>
						{{end}}
					{{end}}
					{{if and .OwnForkRepo (.OwnForkRepo.AllowsPulls ctx)}}
						{{range .OwnForkRepoTags}}
							<div class="item" data-url="{{$.OwnForkRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$OwnForkCompareName}}:{{.}}</div>
						{{end}}
					{{end}}
					{{if and .RootRepo (.RootRepo.AllowsPulls ctx)}}
						{{range .RootRepoTags}}
							<div class="item" data-url="{{$.RootRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$RootRepoCompareName}}:{{.}}</div>
						{{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 floating filter dropdown">
			<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}}: {{$HeadCompareName}}:{{$.HeadBranch}}</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="branch-tag-tab">
					<a class="branch-tag-item muted" href="#" data-target=".head-branch-list">
						{{svg "octicon-git-branch"}}{{ctx.Locale.Tr "repo.branches"}}
					</a>
					<a class="branch-tag-item muted" href="#" data-target=".head-tag-list">
						{{svg "octicon-tag"}}{{ctx.Locale.Tr "repo.tags"}}
					</a>
				</div>
				<div class="scrolling menu reference-list-menu head-branch-list">
					{{range .HeadBranches}}
						<div class="{{if eq $.HeadBranch .}}selected{{end}} item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments .}}">{{$HeadCompareName}}:{{.}}</div>
					{{end}}
					{{if not .PullRequestCtx.SameRepo}}
						{{range .Branches}}
							<div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.BaseName}}/{{PathEscape $.Repository.Name}}:{{PathEscapeSegments .}}">{{$BaseCompareName}}:{{.}}</div>
						{{end}}
					{{end}}
					{{if .OwnForkRepo}}
						{{range .OwnForkRepoBranches}}
							<div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.OwnForkRepo.OwnerName}}/{{PathEscape $.OwnForkRepo.Name}}:{{PathEscapeSegments .}}">{{$OwnForkCompareName}}:{{.}}</div>
						{{end}}
					{{end}}
					{{if .RootRepo}}
						{{range .RootRepoBranches}}
							<div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.RootRepo.OwnerName}}/{{PathEscape $.RootRepo.Name}}:{{PathEscapeSegments .}}">{{$RootRepoCompareName}}:{{.}}</div>
						{{end}}
					{{end}}
				</div>
				<div class="scrolling menu reference-list-menu head-tag-list tw-hidden">
					{{range .HeadTags}}
						<div class="{{if eq $.HeadBranch .}}selected{{end}} item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments .}}">{{$HeadCompareName}}:{{.}}</div>
					{{end}}
					{{if not .PullRequestCtx.SameRepo}}
						{{range .Tags}}
							<div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.BaseName}}/{{PathEscape $.Repository.Name}}:{{PathEscapeSegments .}}">{{$BaseCompareName}}:{{.}}</div>
						{{end}}
					{{end}}
					{{if .OwnForkRepo}}
						{{range .OwnForkRepoTags}}
							<div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.OwnForkRepo.OwnerName}}/{{PathEscape $.OwnForkRepo.Name}}:{{PathEscapeSegments .}}">{{$OwnForkCompareName}}:{{.}}</div>
						{{end}}
					{{end}}
					{{if .RootRepo}}
						{{range .RootRepoTags}}
							<div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.RootRepo.OwnerName}}/{{PathEscape $.RootRepo.Name}}:{{PathEscapeSegments .}}">{{$RootRepoCompareName}}:{{.}}</div>
						{{end}}
					{{end}}
				</div>
			</div>
		</div>
	</div>

	{{if .IsNothingToCompare}}
		{{if and $.IsSigned $.AllowEmptyPr (not .Repository.IsArchived) .PageIsComparePull}}
			<div class="ui segment">{{ctx.Locale.Tr "repo.pulls.nothing_to_compare_and_allow_empty_pr"}}</div>
			<div class="ui info message show-form-container {{if .Flash}}tw-hidden{{end}}">
				<button class="ui button primary show-form">{{ctx.Locale.Tr "repo.pulls.new"}}</button>
			</div>
			<div class="pullrequest-form {{if not .Flash}}tw-hidden{{end}}">
				{{template "repo/issue/new_form" .}}
			</div>
		{{else if and .HeadIsBranch .BaseIsBranch}}
			<div class="ui segment">{{ctx.Locale.Tr "repo.pulls.nothing_to_compare"}}</div>
		{{else}}
			<div class="ui segment">{{ctx.Locale.Tr "repo.pulls.nothing_to_compare_have_tag"}}</div>
		{{end}}
	{{else if and .PageIsComparePull (gt .CommitCount 0)}}
		{{if .HasPullRequest}}
			<div class="ui segment grid title">
				<div class="twelve wide column issue-title">
					{{ctx.Locale.Tr "repo.pulls.has_pull_request" (print $.RepoLink "/pulls/" .PullRequest.Issue.Index) $.RepoRelPath .PullRequest.Index}}
					<h1>
						<span id="issue-title">{{RenderIssueTitle $.Context .PullRequest.Issue.Title ($.Repository.ComposeMetas ctx)}}</span>
						<span class="index">#{{.PullRequest.Issue.Index}}</span>
					</h1>
				</div>
				<div class="four wide column middle aligned text right">
				{{- if .PullRequest.HasMerged -}}
				<a href="{{$.RepoLink}}/pulls/{{.PullRequest.Issue.Index}}" class="ui button purple show-form">{{svg "octicon-git-merge" 16}} {{ctx.Locale.Tr "repo.pulls.view"}}</a>
				{{else if .Issue.IsClosed}}
				<a href="{{$.RepoLink}}/pulls/{{.PullRequest.Issue.Index}}" class="ui button red show-form">{{svg "octicon-issue-closed" 16}} {{ctx.Locale.Tr "repo.pulls.view"}}</a>
				{{else}}
				<a href="{{$.RepoLink}}/pulls/{{.PullRequest.Issue.Index}}" class="ui button primary show-form">{{svg "octicon-git-pull-request" 16}} {{ctx.Locale.Tr "repo.pulls.view"}}</a>
				{{end}}
				</div>
			</div>
		{{else}}
			{{if and $.IsSigned (not .Repository.IsArchived)}}
				<div class="ui info message show-form-container {{if .Flash}}tw-hidden{{end}}">
					<button class="ui button primary show-form">{{ctx.Locale.Tr "repo.pulls.new"}}</button>
				</div>
			{{else if .Repository.IsArchived}}
				<div class="ui warning message tw-text-center">
					{{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}}
				<div class="ui warning message tw-mb-4">
					{{ctx.Locale.Tr "repo.pulls.sign_in_require" .SignInLink}}
				</div>
			{{end}}
			{{if $.IsSigned}}
				<div class="pullrequest-form {{if not .Flash}}tw-hidden{{end}}">
					{{template "repo/issue/new_form" .}}
				</div>
			{{end}}
			{{$showDiffBox = true}}
		{{end}}
	{{else if not .IsNothingToCompare}}
		{{$showDiffBox = true}}
	{{end}}
	</div>

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