c766140dad
This PR adds a new field `RemoteAddress` to both mirror types which contains the sanitized remote address for easier (database) access to that information. Will be used in the audit PR if merged.
250 lines
11 KiB
Handlebars
250 lines
11 KiB
Handlebars
<div class="header-wrapper">
|
|
{{with .Repository}}
|
|
<div class="ui container">
|
|
<div class="repo-header">
|
|
<div class="repo-title-wrap gt-df gt-fc">
|
|
<div class="repo-title" role="heading" aria-level="1">
|
|
<div class="gt-mr-3">
|
|
{{template "repo/icon" .}}
|
|
</div>
|
|
<a href="{{.Owner.HomeLink}}">{{.Owner.Name}}</a>
|
|
<div class="gt-mx-2">/</div>
|
|
<a href="{{$.RepoLink}}">{{.Name}}</a>
|
|
<div class="labels gt-df gt-ac gt-fw">
|
|
{{if .IsTemplate}}
|
|
{{if .IsPrivate}}
|
|
<span class="ui basic label">{{$.locale.Tr "repo.desc.private_template"}}</span>
|
|
{{else}}
|
|
{{if .Owner.Visibility.IsPrivate}}
|
|
<span class="ui basic label">{{$.locale.Tr "repo.desc.internal_template"}}</span>
|
|
{{end}}
|
|
{{end}}
|
|
{{else}}
|
|
{{if .IsPrivate}}
|
|
<span class="ui basic label">{{$.locale.Tr "repo.desc.private"}}</span>
|
|
{{else}}
|
|
{{if .Owner.Visibility.IsPrivate}}
|
|
<span class="ui basic label">{{$.locale.Tr "repo.desc.internal"}}</span>
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
{{if .IsArchived}}
|
|
<span class="ui basic label">{{$.locale.Tr "repo.desc.archived"}}</span>
|
|
{{end}}
|
|
</div>
|
|
{{if $.EnableFeed}}
|
|
<a class="rss-icon gt-ml-3" href="{{$.RepoLink}}.rss" data-tooltip-content="{{$.locale.Tr "rss_feed"}}">{{svg "octicon-rss" 18}}</a>
|
|
{{end}}
|
|
</div>
|
|
{{if $.PullMirror}}
|
|
<div class="fork-flag">{{$.locale.Tr "repo.mirror_from"}} <a target="_blank" rel="noopener noreferrer" href="{{$.PullMirror.RemoteAddress}}">{{$.PullMirror.RemoteAddress}}</a></div>
|
|
{{end}}
|
|
{{if .IsFork}}<div class="fork-flag">{{$.locale.Tr "repo.forked_from"}} <a href="{{.BaseRepo.Link}}">{{.BaseRepo.FullName}}</a></div>{{end}}
|
|
{{if .IsGenerated}}<div class="fork-flag">{{$.locale.Tr "repo.generated_from"}} <a href="{{.TemplateRepo.Link}}">{{.TemplateRepo.FullName}}</a></div>{{end}}
|
|
</div>
|
|
{{if not (or .IsBeingCreated .IsBroken)}}
|
|
<div class="repo-buttons">
|
|
{{if $.RepoTransfer}}
|
|
<form method="post" action="{{$.RepoLink}}/action/accept_transfer?redirect_to={{$.RepoLink}}">
|
|
{{$.CsrfTokenHtml}}
|
|
<div data-tooltip-content="{{if $.CanUserAcceptTransfer}}{{$.locale.Tr "repo.transfer.accept_desc" $.RepoTransfer.Recipient.DisplayName}}{{else}}{{$.locale.Tr "repo.transfer.no_permission_to_accept"}}{{end}}">
|
|
<button type="submit" class="ui basic button {{if $.CanUserAcceptTransfer}}green {{end}} ok small"{{if not $.CanUserAcceptTransfer}} disabled{{end}}>
|
|
{{$.locale.Tr "repo.transfer.accept"}}
|
|
</button>
|
|
</div>
|
|
</form>
|
|
<form method="post" action="{{$.RepoLink}}/action/reject_transfer?redirect_to={{$.RepoLink}}">
|
|
{{$.CsrfTokenHtml}}
|
|
<div data-tooltip-content="{{if $.CanUserAcceptTransfer}}{{$.locale.Tr "repo.transfer.reject_desc" $.RepoTransfer.Recipient.DisplayName}}{{else}}{{$.locale.Tr "repo.transfer.no_permission_to_reject"}}{{end}}">
|
|
<button type="submit" class="ui basic button {{if $.CanUserAcceptTransfer}}red {{end}}ok small"{{if not $.CanUserAcceptTransfer}} disabled{{end}}>
|
|
{{$.locale.Tr "repo.transfer.reject"}}
|
|
</button>
|
|
</div>
|
|
</form>
|
|
{{end}}
|
|
<form method="post" action="{{$.RepoLink}}/action/{{if $.IsWatchingRepo}}un{{end}}watch?redirect_to={{$.Link}}">
|
|
{{$.CsrfTokenHtml}}
|
|
<div class="ui labeled button" {{if not $.IsSigned}}data-tooltip-content="{{$.locale.Tr "repo.watch_guest_user"}}"{{end}}>
|
|
<button type="submit" class="ui compact small basic button"{{if not $.IsSigned}} disabled{{end}}>
|
|
{{if $.IsWatchingRepo}}{{svg "octicon-eye-closed" 16}}{{$.locale.Tr "repo.unwatch"}}{{else}}{{svg "octicon-eye"}}{{$.locale.Tr "repo.watch"}}{{end}}
|
|
</button>
|
|
<a class="ui basic label" href="{{.Link}}/watchers">
|
|
{{CountFmt .NumWatches}}
|
|
</a>
|
|
</div>
|
|
</form>
|
|
{{if not $.DisableStars}}
|
|
<form method="post" action="{{$.RepoLink}}/action/{{if $.IsStaringRepo}}un{{end}}star?redirect_to={{$.Link}}">
|
|
{{$.CsrfTokenHtml}}
|
|
<div class="ui labeled button" {{if not $.IsSigned}}data-tooltip-content="{{$.locale.Tr "repo.star_guest_user"}}"{{end}}>
|
|
<button type="submit" class="ui compact small basic button"{{if not $.IsSigned}} disabled{{end}}>
|
|
{{if $.IsStaringRepo}}{{svg "octicon-star-fill"}}{{$.locale.Tr "repo.unstar"}}{{else}}{{svg "octicon-star"}}{{$.locale.Tr "repo.star"}}{{end}}
|
|
</button>
|
|
<a class="ui basic label" href="{{.Link}}/stars">
|
|
{{CountFmt .NumStars}}
|
|
</a>
|
|
</div>
|
|
</form>
|
|
{{end}}
|
|
{{if and (not .IsEmpty) ($.Permission.CanRead $.UnitTypeCode)}}
|
|
<div class="ui labeled button
|
|
{{if or (not $.IsSigned) (and (not $.CanSignedUserFork) (eq (len $.UserAndOrgForks) 0))}}
|
|
disabled
|
|
{{end}}"
|
|
{{if not $.IsSigned}}
|
|
data-tooltip-content="{{$.locale.Tr "repo.fork_guest_user"}}"
|
|
{{else if and (not $.CanSignedUserFork) (eq (len $.UserAndOrgForks) 0)}}
|
|
data-tooltip-content="{{$.locale.Tr "repo.fork_from_self"}}"
|
|
{{end}}
|
|
>
|
|
<a class="ui compact{{if $.ShowForkModal}} show-modal{{end}} small basic button"
|
|
{{if not $.CanSignedUserFork}}
|
|
{{if gt (len $.UserAndOrgForks) 1}}
|
|
data-modal="#fork-repo-modal"
|
|
{{else if eq (len $.UserAndOrgForks) 1}}
|
|
href="{{AppSubUrl}}/{{(index $.UserAndOrgForks 0).FullName}}"
|
|
{{/*else is not required here, because the button shouldn't link to any site if you can't create a fork*/}}
|
|
{{end}}
|
|
{{else if eq (len $.UserAndOrgForks) 0}}
|
|
href="{{AppSubUrl}}/repo/fork/{{.ID}}"
|
|
{{else}}
|
|
data-modal="#fork-repo-modal"
|
|
{{end}}
|
|
>
|
|
{{svg "octicon-repo-forked"}}{{$.locale.Tr "repo.fork"}}
|
|
</a>
|
|
<div class="ui small modal" id="fork-repo-modal">
|
|
<div class="header">
|
|
{{$.locale.Tr "repo.already_forked" .Name}}
|
|
</div>
|
|
<div class="content gt-text-left">
|
|
<div class="ui list">
|
|
{{range $.UserAndOrgForks}}
|
|
<div class="ui item gt-py-3">
|
|
<a href="{{.Link}}">
|
|
{{svg "octicon-repo-forked" 16 "gt-mr-3"}}{{.FullName}}
|
|
</a>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
{{if $.CanSignedUserFork}}
|
|
<div class="divider"></div>
|
|
<a href="{{AppSubUrl}}/repo/fork/{{.ID}}">
|
|
{{$.locale.Tr "repo.fork_to_different_account"}}
|
|
</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<a class="ui basic label" href="{{.Link}}/forks">
|
|
{{CountFmt .NumForks}}
|
|
</a>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
{{end}}
|
|
</div><!-- end grid -->
|
|
</div><!-- end container -->
|
|
{{end}}
|
|
<div class="ui tabs container">
|
|
{{if not (or .Repository.IsBeingCreated .Repository.IsBroken)}}
|
|
<div class="ui tabular menu navbar gt-overflow-x-auto gt-overflow-y-hidden">
|
|
{{if .Permission.CanRead $.UnitTypeCode}}
|
|
<a class="{{if .PageIsViewCode}}active {{end}}item" href="{{.RepoLink}}{{if (ne .BranchName .Repository.DefaultBranch)}}/src/{{.BranchNameSubURL}}{{end}}">
|
|
{{svg "octicon-code"}} {{.locale.Tr "repo.code"}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if .Permission.CanRead $.UnitTypeIssues}}
|
|
<a class="{{if .PageIsIssueList}}active {{end}}item" href="{{.RepoLink}}/issues">
|
|
{{svg "octicon-issue-opened"}} {{.locale.Tr "repo.issues"}}
|
|
{{if .Repository.NumOpenIssues}}
|
|
<span class="ui small label">{{CountFmt .Repository.NumOpenIssues}}</span>
|
|
{{end}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if .Permission.CanRead $.UnitTypeExternalTracker}}
|
|
<a class="{{if .PageIsIssueList}}active {{end}}item" href="{{.RepoExternalIssuesLink}}" target="_blank" rel="noopener noreferrer">
|
|
{{svg "octicon-link-external"}} {{.locale.Tr "repo.issues"}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if and .Repository.CanEnablePulls (.Permission.CanRead $.UnitTypePullRequests)}}
|
|
<a class="{{if .PageIsPullList}}active {{end}}item" href="{{.RepoLink}}/pulls">
|
|
{{svg "octicon-git-pull-request"}} {{.locale.Tr "repo.pulls"}}
|
|
{{if .Repository.NumOpenPulls}}
|
|
<span class="ui small label">{{CountFmt .Repository.NumOpenPulls}}</span>
|
|
{{end}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if and .EnableActions (not .UnitActionsGlobalDisabled) (.Permission.CanRead $.UnitTypeActions)}}
|
|
<a class="{{if .PageIsActions}}active {{end}}item" href="{{.RepoLink}}/actions">
|
|
{{svg "octicon-play"}} {{.locale.Tr "actions.actions"}}
|
|
{{if .Repository.NumOpenActionRuns}}
|
|
<span class="ui small label">{{CountFmt .Repository.NumOpenActionRuns}}</span>
|
|
{{end}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if .Permission.CanRead $.UnitTypePackages}}
|
|
<a href="{{.RepoLink}}/packages" class="{{if .IsPackagesPage}}active {{end}}item">
|
|
{{svg "octicon-package"}} {{.locale.Tr "packages.title"}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if and (not .UnitProjectsGlobalDisabled) (.Permission.CanRead $.UnitTypeProjects)}}
|
|
<a href="{{.RepoLink}}/projects" class="{{if .IsProjectsPage}}active {{end}}item">
|
|
{{svg "octicon-project"}} {{.locale.Tr "repo.project_board"}}
|
|
{{if .Repository.NumOpenProjects}}
|
|
<span class="ui small label">{{CountFmt .Repository.NumOpenProjects}}</span>
|
|
{{end}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if and (.Permission.CanRead $.UnitTypeReleases) (not .IsEmptyRepo)}}
|
|
<a class="{{if or .PageIsReleaseList .PageIsTagList}}active {{end}}item" href="{{.RepoLink}}/releases">
|
|
{{svg "octicon-tag"}} {{.locale.Tr "repo.releases"}}
|
|
{{if .NumReleases}}
|
|
<span class="ui small label">{{CountFmt .NumReleases}}</span>
|
|
{{end}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if .Permission.CanRead $.UnitTypeWiki}}
|
|
<a class="{{if .PageIsWiki}}active {{end}}item" href="{{.RepoLink}}/wiki">
|
|
{{svg "octicon-book"}} {{.locale.Tr "repo.wiki"}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if .Permission.CanRead $.UnitTypeExternalWiki}}
|
|
<a class="item" href="{{(.Repository.MustGetUnit $.Context $.UnitTypeExternalWiki).ExternalWikiConfig.ExternalWikiURL}}" target="_blank" rel="noopener noreferrer">
|
|
{{svg "octicon-link-external"}} {{.locale.Tr "repo.wiki"}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{if and (.Permission.CanReadAny $.UnitTypePullRequests $.UnitTypeIssues $.UnitTypeReleases) (not .IsEmptyRepo)}}
|
|
<a class="{{if .PageIsActivity}}active {{end}}item" href="{{.RepoLink}}/activity">
|
|
{{svg "octicon-pulse"}} {{.locale.Tr "repo.activity"}}
|
|
</a>
|
|
{{end}}
|
|
|
|
{{template "custom/extra_tabs" .}}
|
|
|
|
{{if .Permission.IsAdmin}}
|
|
<a class="{{if .PageIsRepoSettings}}active {{end}}right item" href="{{.RepoLink}}/settings">
|
|
{{svg "octicon-tools"}} {{.locale.Tr "repo.settings"}}
|
|
</a>
|
|
{{end}}
|
|
</div>
|
|
{{else if .Permission.IsAdmin}}
|
|
<div class="ui tabular menu navbar gt-overflow-x-auto gt-overflow-y-hidden">
|
|
<a class="{{if .PageIsRepoSettings}}active {{end}}right item" href="{{.RepoLink}}/settings">
|
|
{{svg "octicon-tools"}} {{.locale.Tr "repo.settings"}}
|
|
</a>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
<div class="ui tabs divider"></div>
|
|
</div>
|