2017-10-26 00:49:16 +00:00
{{ template "base/head" . }}
2023-02-01 22:56:10 +00:00
<div role="main" aria-label=" {{ .Title }} " class="page-content ui repository branches">
2017-10-26 00:49:16 +00:00
{{ template "repo/header" . }}
<div class="ui container">
{{ template "base/alert" . }}
{{ template "repo/sub_menu" . }}
2022-01-16 14:59:16 +00:00
{{ if .DefaultBranchBranch }}
2023-04-29 10:44:52 +00:00
<h4 class="ui top attached header">
2023-09-25 08:56:50 +00:00
{{ ctx .Locale .Tr "repo.default_branch" }}
2023-04-29 10:44:52 +00:00
{{ if and $ .IsWriter ( not $ .Repository .IsArchived ) ( not .IsDeleted ) }}
2023-09-25 08:56:50 +00:00
<a role="button" class="right" href=" {{ .RepoLink }} /settings/branches" data-tooltip-content=" {{ ctx .Locale .Tr "repo.settings.branches.switch_default_branch" }} ">
2023-04-29 10:44:52 +00:00
{{ svg "octicon-arrow-switch" }}
</a>
{{ end }}
2022-01-16 14:59:16 +00:00
</h4>
2017-10-26 00:49:16 +00:00
2022-01-16 14:59:16 +00:00
<div class="ui attached table segment">
<table class="ui very basic striped fixed table single line">
<tbody>
<tr>
<td>
2023-09-28 04:04:32 +00:00
<div class="flex-text-block">
{{ if .DefaultBranchBranch .IsProtected }} {{ svg "octicon-shield-lock" }} {{ end }}
2023-06-30 18:16:17 +00:00
<a class="gt-ellipsis" href=" {{ .RepoLink }} /src/branch/ {{ PathEscapeSegments .DefaultBranchBranch .DBBranch .Name }} "> {{ .DefaultBranchBranch .DBBranch .Name }} </a>
2023-09-28 04:04:32 +00:00
<button class="btn interact-fg gt-px-2" data-clipboard-text=" {{ .DefaultBranchBranch .DBBranch .Name }} "> {{ svg "octicon-copy" 1 4 }} </button>
2023-07-03 03:32:21 +00:00
{{ template "repo/commit_statuses" dict "Status" ( in dex $ .CommitStatus .DefaultBranchBranch .DBBranch .CommitID ) "Statuses" ( in dex $ .CommitStatuses .DefaultBranchBranch .DBBranch .CommitID ) }}
2023-06-30 18:16:17 +00:00
</div>
2024-03-22 13:45:10 +00:00
<p class="info tw-flex tw-content-center gt-my-2"> {{ svg "octicon-git-commit" 1 6 "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>
2022-01-16 14:59:16 +00:00
</td>
2023-07-04 17:45:45 +00:00
<td class="right aligned middle aligned overflow-visible">
2022-01-16 14:59:16 +00:00
{{ if and $ .IsWriter ( not $ .Repository .IsArchived ) ( not .IsDeleted ) }}
2023-06-09 08:37:47 +00:00
<button class="btn interact-bg show-create-branch-modal gt-p-3"
2023-04-30 15:08:51 +00:00
data-modal="#create-branch-modal"
2023-07-09 09:09:06 +00:00
data-branch-from=" {{ $ .DefaultBranchBranch .DBBranch .Name }} "
2023-06-29 10:03:20 +00:00
data-branch-from-urlcomponent=" {{ PathEscapeSegments $ .DefaultBranchBranch .DBBranch .Name }} "
2023-09-25 08:56:50 +00:00
data-tooltip-content=" {{ ctx .Locale .Tr "repo.branch.new_branch_from" ( $ .DefaultBranchBranch .DBBranch .Name ) }} "
2023-04-30 15:08:51 +00:00
>
2022-01-16 14:59:16 +00:00
{{ svg "octicon-git-branch" }}
2022-11-24 12:29:43 +00:00
</button>
2022-01-16 14:59:16 +00:00
{{ end }}
2023-04-25 14:08:29 +00:00
{{ if .EnableFeed }}
2023-06-29 10:03:20 +00:00
<a role="button" class="btn interact-bg gt-p-3" href=" {{ $ .FeedURL }} /rss/branch/ {{ PathEscapeSegments .DefaultBranchBranch .DBBranch .Name }} "> {{ svg "octicon-rss" }} </a>
2023-04-25 14:08:29 +00:00
{{ end }}
2022-07-31 16:57:02 +00:00
{{ if not $ .DisableDownloadSourceArchives }}
2023-09-25 08:56:50 +00:00
<div class="ui dropdown btn interact-bg gt-p-3" data-tooltip-content=" {{ ctx .Locale .Tr "repo.branch.download" ( $ .DefaultBranchBranch .DBBranch .Name ) }} ">
2022-07-31 16:57:02 +00:00
{{ svg "octicon-download" }}
<div class="menu">
2023-06-29 10:03:20 +00:00
<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>
2022-07-31 16:57:02 +00:00
</div>
2023-04-30 15:08:51 +00:00
</div>
{{ end }}
{{ if and $ .IsWriter ( not $ .Repository .IsArchived ) ( not .IsDeleted ) ( not $ .IsMirror ) }}
2023-06-09 08:37:47 +00:00
<button class="btn interact-bg gt-p-3 show-modal show-rename-branch-modal"
2023-05-04 22:54:38 +00:00
data-is-default-branch="true"
2023-04-30 15:08:51 +00:00
data-modal="#rename-branch-modal"
2023-07-26 11:26:17 +00:00
data-old-branch-name=" {{ $ .DefaultBranchBranch .DBBranch .Name }} "
2023-09-25 08:56:50 +00:00
data-tooltip-content=" {{ ctx .Locale .Tr "repo.branch.rename" ( $ .DefaultBranchBranch .DBBranch .Name ) }} "
2023-04-30 15:08:51 +00:00
>
{{ svg "octicon-pencil" }}
2022-11-24 12:29:43 +00:00
</button>
2022-07-31 16:57:02 +00:00
{{ end }}
2022-01-16 14:59:16 +00:00
</td>
</tr>
</tbody>
</table>
</div>
{{ end }}
2017-10-26 00:49:16 +00:00
2024-03-22 13:45:10 +00:00
<h4 class="ui top attached header tw-flex tw-content-center tw-justify-between">
<div class="tw-flex tw-content-center">
2024-03-14 23:24:59 +00:00
{{ ctx .Locale .Tr "repo.branches" }}
</div>
</h4>
2023-09-17 08:24:40 +00:00
2024-03-14 23:24:59 +00:00
<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" 1 4 }} </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" 1 4 }} </button>
{{ template "repo/commit_statuses" dict "Status" ( in dex $ .CommitStatus .DBBranch .CommitID ) "Statuses" ( in dex $ .CommitStatuses .DBBranch .CommitID ) }}
</div>
2024-03-22 13:45:10 +00:00
<p class="info tw-flex tw-content-center gt-my-2"> {{ svg "octicon-git-commit" 1 6 "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>
2024-03-14 23:24:59 +00:00
{{ 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 in valid "width: NaNpx" , it just works and doesn ' t caues any problem . * / }}
<div class="bar bar-behind" style="width: {{ Eval 1 0 0 "*" .CommitsBehind "/" "(" .CommitsBehind "+" .CommitsAhead "+" 0.0 ")" }} %"></div>
2023-06-30 18:16:17 +00:00
</div>
2024-03-14 23:24:59 +00:00
<div class="bar-group">
<div class="count count-ahead"> {{ .CommitsAhead }} </div>
<div class="bar bar-ahead" style="width: {{ Eval 1 0 0 "*" .CommitsAhead "/" "(" .CommitsBehind "+" .CommitsAhead "+" 0.0 ")" }} %"></div>
2023-06-30 18:16:17 +00:00
</div>
2024-03-14 23:24:59 +00:00
</div>
2023-06-29 10:03:20 +00:00
{{ end }}
2024-03-14 23:24:59 +00:00
</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>
2023-06-29 10:03:20 +00:00
{{ end }}
2024-03-14 23:24:59 +00:00
{{ 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>
2017-10-26 00:49:16 +00:00
{{ end }}
2024-03-14 23:24:59 +00:00
{{ else }}
2024-03-22 13:45:10 +00:00
<a href=" {{ .LatestPullRequest .Issue .Link }} " class="tw-align-middle ref-issue"> {{ if not .LatestPullRequest .IsSameRepo }} {{ .LatestPullRequest .BaseRepo .FullName }} {{ end }} # {{ .LatestPullRequest .Issue .Index }} </a>
2024-03-14 23:24:59 +00:00
{{ if .LatestPullRequest .HasMerged }}
<a href=" {{ .LatestPullRequest .Issue .Link }} " class="ui purple large label"> {{ svg "octicon-git-merge" 1 6 "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" 1 6 "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" 1 6 "gt-mr-2" }} {{ ctx .Locale .Tr "repo.issues.open_title" }} </a>
2023-06-29 10:03:20 +00:00
{{ end }}
2024-03-14 23:24:59 +00:00
{{ 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>
2019-05-05 16:25:25 +00:00
</div>
2024-03-14 23:24:59 +00:00
</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" }}
2023-06-29 10:03:20 +00:00
</button>
{{ end }}
2024-03-14 23:24:59 +00:00
{{ end }}
</td>
</tr>
{{ end }}
</tbody>
</table>
</div>
{{ template "base/paginate" . }}
2017-10-26 00:49:16 +00:00
</div>
</div>
2023-04-24 11:08:59 +00:00
<div class="ui g-modal-confirm delete modal">
2023-04-23 09:24:19 +00:00
<div class="header">
2021-03-22 04:04:19 +00:00
{{ svg "octicon-trash" }}
2023-09-25 08:56:50 +00:00
{{ ctx .Locale .Tr "repo.branch.delete_html" }} <span class="name"></span>
2017-10-26 00:49:16 +00:00
</div>
<div class="content">
2024-02-22 18:05:47 +00:00
<p> {{ ctx .Locale .Tr "repo.branch.delete_desc" }} </p>
2017-10-26 00:49:16 +00:00
</div>
2023-04-23 09:24:19 +00:00
{{ template "base/modal_actions_confirm" . }}
2017-10-26 00:49:16 +00:00
</div>
2021-05-24 14:57:46 +00:00
2023-04-30 15:08:51 +00:00
<div class="ui mini modal" id="create-branch-modal">
2021-05-24 14:57:46 +00:00
<div class="header">
2023-09-25 08:56:50 +00:00
{{ ctx .Locale .Tr "repo.branch.new_branch" }}
2021-05-24 14:57:46 +00:00
</div>
2023-04-30 15:08:51 +00:00
<form class="ui form" id="create-branch-form" action="" data-base-action=" {{ .Link }} /_new/branch/" method="post">
<div class="content">
2021-05-24 14:57:46 +00:00
{{ .CsrfTokenHtml }}
<div class="field">
2023-09-25 08:56:50 +00:00
{{ ctx .Locale .Tr "repo.branch.create_new_branch" }}
2023-04-30 15:08:51 +00:00
<span id="modal-create-branch-from-span"></span>
2021-05-24 14:57:46 +00:00
</div>
<div class="required field">
2023-09-25 08:56:50 +00:00
<label for="new_branch_name"> {{ ctx .Locale .Tr "repo.branch.name" }} </label>
2021-05-24 14:57:46 +00:00
<input id="new_branch_name" name="new_branch_name" required>
</div>
2023-04-30 15:08:51 +00:00
</div>
2023-09-24 20:31:58 +00:00
{{ template "base/modal_actions_confirm" ( dict "ModalButtonTypes" "confirm" ) }}
2023-04-30 15:08:51 +00:00
</form>
</div>
2021-05-24 14:57:46 +00:00
2023-04-30 15:08:51 +00:00
<div class="ui mini modal" id="rename-branch-modal">
<div class="header">
2023-09-25 08:56:50 +00:00
{{ ctx .Locale .Tr "repo.settings.rename_branch" }}
2021-05-24 14:57:46 +00:00
</div>
2023-04-30 15:08:51 +00:00
<form class="ui form" action=" {{ $ .Repository .Link }} /settings/rename_branch" method="post">
<div class="content">
{{ .CsrfTokenHtml }}
2023-05-04 22:54:38 +00:00
<div class="field default-branch-warning">
2023-09-25 08:56:50 +00:00
<span class="text red"> {{ ctx .Locale .Tr "repo.branch.warning_rename_default_branch" }} </span>
2023-05-04 22:54:38 +00:00
</div>
2023-04-30 15:08:51 +00:00
<div class="field">
2023-09-25 08:56:50 +00:00
<span class="text" data-rename-branch-to=" {{ ctx .Locale .Tr "repo.branch.rename_branch_to" }} "></span>
2023-04-30 15:08:51 +00:00
</div>
<input name="from" type="hidden" required>
<div class="required field">
<input name="to" required>
</div>
</div>
2023-09-24 20:31:58 +00:00
{{ template "base/modal_actions_confirm" ( dict "ModalButtonTypes" "confirm" ) }}
2023-04-30 15:08:51 +00:00
</form>
2021-05-24 14:57:46 +00:00
</div>
2017-10-26 00:49:16 +00:00
{{ template "base/footer" . }}