|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- {{template "base/head" .}}
- <div role="main" aria-label="{{.Title}}" class="page-content ui repository branches">
- {{template "repo/header" .}}
- <div class="ui container">
- {{template "base/alert" .}}
- {{template "repo/sub_menu" .}}
- {{if .DefaultBranchBranch}}
- <h4 class="ui top attached header">
- {{ctx.Locale.Tr "repo.default_branch"}}
- {{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted)}}
- <a role="button" class="right" href="{{.RepoLink}}/settings/branches" data-tooltip-content="{{ctx.Locale.Tr "repo.settings.branches.switch_default_branch"}}">
- {{svg "octicon-arrow-switch"}}
- </a>
- {{end}}
- </h4>
-
- <div class="ui attached table segment">
- <table class="ui very basic striped fixed table single line">
- <tbody>
- <tr>
- <td>
- <div class="flex-text-block">
- {{if .DefaultBranchBranch.IsProtected}}{{svg "octicon-shield-lock"}}{{end}}
- <a class="gt-ellipsis" href="{{.RepoLink}}/src/branch/{{PathEscapeSegments .DefaultBranchBranch.DBBranch.Name}}">{{.DefaultBranchBranch.DBBranch.Name}}</a>
- <button class="btn interact-fg gt-px-2" data-clipboard-text="{{.DefaultBranchBranch.DBBranch.Name}}">{{svg "octicon-copy" 14}}</button>
- {{template "repo/commit_statuses" dict "Status" (index $.CommitStatus .DefaultBranchBranch.DBBranch.CommitID) "Statuses" (index $.CommitStatuses .DefaultBranchBranch.DBBranch.CommitID)}}
- </div>
- <p class="info tw-flex tw-content-center gt-my-2">{{svg "octicon-git-commit" 16 "gt-mr-2"}}<a href="{{.RepoLink}}/commit/{{PathEscape .DefaultBranchBranch.DBBranch.CommitID}}">{{ShortSha .DefaultBranchBranch.DBBranch.CommitID}}</a> · <span class="commit-message">{{RenderCommitMessage $.Context .DefaultBranchBranch.DBBranch.CommitMessage (.Repository.ComposeMetas ctx)}}</span> · {{ctx.Locale.Tr "org.repo_updated"}} {{TimeSince .DefaultBranchBranch.DBBranch.CommitTime.AsTime ctx.Locale}}{{if .DefaultBranchBranch.DBBranch.Pusher}} {{template "shared/user/avatarlink" dict "user" .DefaultBranchBranch.DBBranch.Pusher}}{{template "shared/user/namelink" .DefaultBranchBranch.DBBranch.Pusher}}{{end}}</p>
- </td>
- <td class="right aligned middle aligned overflow-visible">
- {{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted)}}
- <button class="btn interact-bg show-create-branch-modal gt-p-3"
- data-modal="#create-branch-modal"
- data-branch-from="{{$.DefaultBranchBranch.DBBranch.Name}}"
- data-branch-from-urlcomponent="{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}"
- data-tooltip-content="{{ctx.Locale.Tr "repo.branch.new_branch_from" ($.DefaultBranchBranch.DBBranch.Name)}}"
- >
- {{svg "octicon-git-branch"}}
- </button>
- {{end}}
- {{if .EnableFeed}}
- <a role="button" class="btn interact-bg gt-p-3" href="{{$.FeedURL}}/rss/branch/{{PathEscapeSegments .DefaultBranchBranch.DBBranch.Name}}">{{svg "octicon-rss"}}</a>
- {{end}}
- {{if not $.DisableDownloadSourceArchives}}
- <div class="ui dropdown btn interact-bg gt-p-3" data-tooltip-content="{{ctx.Locale.Tr "repo.branch.download" ($.DefaultBranchBranch.DBBranch.Name)}}">
- {{svg "octicon-download"}}
- <div class="menu">
- <a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}.zip" rel="nofollow">{{svg "octicon-file-zip"}} ZIP</a>
- <a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}.tar.gz" rel="nofollow">{{svg "octicon-file-zip"}} TAR.GZ</a>
- </div>
- </div>
- {{end}}
- {{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted) (not $.IsMirror)}}
- <button class="btn interact-bg gt-p-3 show-modal show-rename-branch-modal"
- data-is-default-branch="true"
- data-modal="#rename-branch-modal"
- data-old-branch-name="{{$.DefaultBranchBranch.DBBranch.Name}}"
- data-tooltip-content="{{ctx.Locale.Tr "repo.branch.rename" ($.DefaultBranchBranch.DBBranch.Name)}}"
- >
- {{svg "octicon-pencil"}}
- </button>
- {{end}}
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- {{end}}
-
- <h4 class="ui top attached header tw-flex tw-content-center tw-justify-between">
- <div class="tw-flex tw-content-center">
- {{ctx.Locale.Tr "repo.branches"}}
- </div>
- </h4>
-
- <div class="ui attached segment">
- <form class="ignore-dirty" method="get">
- {{template "shared/search/combo" dict "Value" .Keyword "Placeholder" (ctx.Locale.Tr "search.branch_kind")}}
- </form>
- </div>
-
- <div class="ui attached table segment">
- <table class="ui very basic striped fixed table single line">
- <tbody>
- {{range .Branches}}
- <tr>
- <td class="eight wide">
- {{if .DBBranch.IsDeleted}}
- <div class="flex-text-block">
- <a class="gt-ellipsis" href="{{$.RepoLink}}/src/branch/{{PathEscapeSegments .DBBranch.Name}}">{{.DBBranch.Name}}</a>
- <button class="btn interact-fg gt-px-2" data-clipboard-text="{{.DBBranch.Name}}">{{svg "octicon-copy" 14}}</button>
- </div>
- <p class="info">{{ctx.Locale.Tr "repo.branch.deleted_by" .DBBranch.DeletedBy.Name}} {{TimeSinceUnix .DBBranch.DeletedUnix ctx.Locale}}</p>
- {{else}}
- <div class="flex-text-block">
- {{if .IsProtected}}{{svg "octicon-shield-lock"}}{{end}}
- <a class="gt-ellipsis" href="{{$.RepoLink}}/src/branch/{{PathEscapeSegments .DBBranch.Name}}">{{.DBBranch.Name}}</a>
- <button class="btn interact-fg gt-px-2" data-clipboard-text="{{.DBBranch.Name}}">{{svg "octicon-copy" 14}}</button>
- {{template "repo/commit_statuses" dict "Status" (index $.CommitStatus .DBBranch.CommitID) "Statuses" (index $.CommitStatuses .DBBranch.CommitID)}}
- </div>
- <p class="info tw-flex tw-content-center gt-my-2">{{svg "octicon-git-commit" 16 "gt-mr-2"}}<a href="{{$.RepoLink}}/commit/{{PathEscape .DBBranch.CommitID}}">{{ShortSha .DBBranch.CommitID}}</a> · <span class="commit-message">{{RenderCommitMessage $.Context .DBBranch.CommitMessage ($.Repository.ComposeMetas ctx)}}</span> · {{ctx.Locale.Tr "org.repo_updated"}} {{TimeSince .DBBranch.CommitTime.AsTime ctx.Locale}}{{if .DBBranch.Pusher}} {{template "shared/user/avatarlink" dict "user" .DBBranch.Pusher}} {{template "shared/user/namelink" .DBBranch.Pusher}}{{end}}</p>
- {{end}}
- </td>
- <td class="two wide ui">
- {{if and (not .DBBranch.IsDeleted) $.DefaultBranchBranch}}
- <div class="commit-divergence">
- <div class="bar-group">
- <div class="count count-behind">{{.CommitsBehind}}</div>
- {{/* old code bears 0/0.0 = NaN output, so it might output invalid "width: NaNpx", it just works and doesn't caues any problem. */}}
- <div class="bar bar-behind" style="width: {{Eval 100 "*" .CommitsBehind "/" "(" .CommitsBehind "+" .CommitsAhead "+" 0.0 ")"}}%"></div>
- </div>
- <div class="bar-group">
- <div class="count count-ahead">{{.CommitsAhead}}</div>
- <div class="bar bar-ahead" style="width: {{Eval 100 "*" .CommitsAhead "/" "(" .CommitsBehind "+" .CommitsAhead "+" 0.0 ")"}}%"></div>
- </div>
- </div>
- {{end}}
- </td>
- <td class="two wide right aligned">
- {{if not .LatestPullRequest}}
- {{if .IsIncluded}}
- <span class="ui orange large label" data-tooltip-content="{{ctx.Locale.Tr "repo.branch.included_desc"}}">
- {{svg "octicon-git-pull-request"}} {{ctx.Locale.Tr "repo.branch.included"}}
- </span>
- {{else if and (not .DBBranch.IsDeleted) $.AllowsPulls (gt .CommitsAhead 0)}}
- <a href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}...{{if ne $.Repository.Owner.Name $.Owner.Name}}{{PathEscape $.Owner.Name}}:{{end}}{{PathEscapeSegments .DBBranch.Name}}">
- <button id="new-pull-request" class="ui compact basic button gt-mr-0">{{if $.CanPull}}{{ctx.Locale.Tr "repo.pulls.compare_changes"}}{{else}}{{ctx.Locale.Tr "action.compare_branch"}}{{end}}</button>
- </a>
- {{end}}
- {{else if and .LatestPullRequest.HasMerged .MergeMovedOn}}
- {{if and (not .DBBranch.IsDeleted) $.AllowsPulls (gt .CommitsAhead 0)}}
- <a href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}...{{if ne $.Repository.Owner.Name $.Owner.Name}}{{PathEscape $.Owner.Name}}:{{end}}{{PathEscapeSegments .DBBranch.Name}}">
- <button id="new-pull-request" class="ui compact basic button gt-mr-0">{{if $.CanPull}}{{ctx.Locale.Tr "repo.pulls.compare_changes"}}{{else}}{{ctx.Locale.Tr "action.compare_branch"}}{{end}}</button>
- </a>
- {{end}}
- {{else}}
- <a href="{{.LatestPullRequest.Issue.Link}}" class="tw-align-middle ref-issue">{{if not .LatestPullRequest.IsSameRepo}}{{.LatestPullRequest.BaseRepo.FullName}}{{end}}#{{.LatestPullRequest.Issue.Index}}</a>
- {{if .LatestPullRequest.HasMerged}}
- <a href="{{.LatestPullRequest.Issue.Link}}" class="ui purple large label">{{svg "octicon-git-merge" 16 "gt-mr-2"}}{{ctx.Locale.Tr "repo.pulls.merged"}}</a>
- {{else if .LatestPullRequest.Issue.IsClosed}}
- <a href="{{.LatestPullRequest.Issue.Link}}" class="ui red large label">{{svg "octicon-git-pull-request" 16 "gt-mr-2"}}{{ctx.Locale.Tr "repo.issues.closed_title"}}</a>
- {{else}}
- <a href="{{.LatestPullRequest.Issue.Link}}" class="ui green large label">{{svg "octicon-git-pull-request" 16 "gt-mr-2"}}{{ctx.Locale.Tr "repo.issues.open_title"}}</a>
- {{end}}
- {{end}}
- </td>
- <td class="three wide right aligned overflow-visible">
- {{if and $.IsWriter (not $.Repository.IsArchived) (not .DBBranch.IsDeleted)}}
- <button class="btn interact-bg gt-p-3 show-modal show-create-branch-modal"
- data-branch-from="{{.DBBranch.Name}}"
- data-branch-from-urlcomponent="{{PathEscapeSegments .DBBranch.Name}}"
- data-tooltip-content="{{ctx.Locale.Tr "repo.branch.new_branch_from" .DBBranch.Name}}"
- data-modal="#create-branch-modal" data-name="{{.DBBranch.Name}}"
- >
- {{svg "octicon-git-branch"}}
- </button>
- {{end}}
- {{if $.EnableFeed}}
- <a role="button" class="btn interact-bg gt-p-3" href="{{$.FeedURL}}/rss/branch/{{PathEscapeSegments .DBBranch.Name}}">{{svg "octicon-rss"}}</a>
- {{end}}
- {{if and (not .DBBranch.IsDeleted) (not $.DisableDownloadSourceArchives)}}
- <div class="ui dropdown btn interact-bg gt-p-3" data-tooltip-content="{{ctx.Locale.Tr "repo.branch.download" (.DBBranch.Name)}}">
- {{svg "octicon-download"}}
- <div class="menu">
- <a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments .DBBranch.Name}}.zip" rel="nofollow">{{svg "octicon-file-zip"}} ZIP</a>
- <a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments .DBBranch.Name}}.tar.gz" rel="nofollow">{{svg "octicon-file-zip"}} TAR.GZ</a>
- </div>
- </div>
- {{end}}
- {{if and $.IsWriter (not $.Repository.IsArchived) (not .DBBranch.IsDeleted) (not $.IsMirror)}}
- <button class="btn interact-bg gt-p-3 show-modal show-rename-branch-modal"
- data-is-default-branch="false"
- data-old-branch-name="{{.DBBranch.Name}}"
- data-modal="#rename-branch-modal"
- data-tooltip-content="{{ctx.Locale.Tr "repo.branch.rename" (.DBBranch.Name)}}"
- >
- {{svg "octicon-pencil"}}
- </button>
- {{end}}
- {{if and $.IsWriter (not $.IsMirror) (not $.Repository.IsArchived) (not .IsProtected)}}
- {{if .DBBranch.IsDeleted}}
- <button class="btn interact-bg gt-p-3 link-action restore-branch-button" data-url="{{$.Link}}/restore?branch_id={{.DBBranch.ID}}&name={{.DBBranch.Name}}&page={{$.Page.Paginater.Current}}" data-tooltip-content="{{ctx.Locale.Tr "repo.branch.restore" (.DBBranch.Name)}}">
- <span class="text blue">
- {{svg "octicon-reply"}}
- </span>
- </button>
- {{else}}
- <button class="btn interact-bg gt-p-3 delete-button delete-branch-button" data-url="{{$.Link}}/delete?name={{.DBBranch.Name}}&page={{$.Page.Paginater.Current}}" data-tooltip-content="{{ctx.Locale.Tr "repo.branch.delete" (.DBBranch.Name)}}" data-name="{{.DBBranch.Name}}">
- {{svg "octicon-trash"}}
- </button>
- {{end}}
- {{end}}
- </td>
- </tr>
- {{end}}
- </tbody>
- </table>
- </div>
- {{template "base/paginate" .}}
- </div>
- </div>
-
- <div class="ui g-modal-confirm delete modal">
- <div class="header">
- {{svg "octicon-trash"}}
- {{ctx.Locale.Tr "repo.branch.delete_html"}} <span class="name"></span>
- </div>
- <div class="content">
- <p>{{ctx.Locale.Tr "repo.branch.delete_desc"}}</p>
- </div>
- {{template "base/modal_actions_confirm" .}}
- </div>
-
- <div class="ui mini modal" id="create-branch-modal">
- <div class="header">
- {{ctx.Locale.Tr "repo.branch.new_branch"}}
- </div>
-
- <form class="ui form" id="create-branch-form" action="" data-base-action="{{.Link}}/_new/branch/" method="post">
- <div class="content">
- {{.CsrfTokenHtml}}
- <div class="field">
- {{ctx.Locale.Tr "repo.branch.create_new_branch"}}
- <span id="modal-create-branch-from-span"></span>
- </div>
- <div class="required field">
- <label for="new_branch_name">{{ctx.Locale.Tr "repo.branch.name"}}</label>
- <input id="new_branch_name" name="new_branch_name" required>
- </div>
- </div>
- {{template "base/modal_actions_confirm" (dict "ModalButtonTypes" "confirm")}}
- </form>
- </div>
-
- <div class="ui mini modal" id="rename-branch-modal">
- <div class="header">
- {{ctx.Locale.Tr "repo.settings.rename_branch"}}
- </div>
- <form class="ui form" action="{{$.Repository.Link}}/settings/rename_branch" method="post">
- <div class="content">
- {{.CsrfTokenHtml}}
- <div class="field default-branch-warning">
- <span class="text red">{{ctx.Locale.Tr "repo.branch.warning_rename_default_branch"}}</span>
- </div>
- <div class="field">
- <span class="text" data-rename-branch-to="{{ctx.Locale.Tr "repo.branch.rename_branch_to"}}"></span>
- </div>
- <input name="from" type="hidden" required>
- <div class="required field">
- <input name="to" required>
- </div>
- </div>
- {{template "base/modal_actions_confirm" (dict "ModalButtonTypes" "confirm")}}
- </form>
- </div>
- {{template "base/footer" .}}
|