2017-10-26 02:49:16 +02:00
{{ template "base/head" . }}
2023-02-01 23:56:10 +01:00
< div role = "main" aria-label = " {{ .Title }} " class = "page-content ui repository branches" >
2017-10-26 02:49:16 +02:00
{{ template "repo/header" . }}
< div class = "ui container" >
{{ template "base/alert" . }}
{{ template "repo/sub_menu" . }}
2022-01-16 15:59:16 +01:00
{{ if .DefaultBranchBranch }}
2023-04-29 12:44:52 +02:00
< h4 class = "ui top attached header" >
2023-09-25 10:56:50 +02:00
{{ ctx .Locale.Tr "repo.default_branch" }}
2023-04-29 12:44:52 +02:00
{{ if and $.IsWriter ( not $.Repository.IsArchived ) ( not .IsDeleted ) }}
2023-09-25 10:56:50 +02: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 12:44:52 +02:00
{{ svg "octicon-arrow-switch" }}
< / a >
{{ end }}
2022-01-16 15:59:16 +01:00
< / h4 >
2017-10-26 02:49:16 +02:00
2022-01-16 15:59:16 +01:00
< div class = "ui attached table segment" >
< table class = "ui very basic striped fixed table single line" >
< tbody >
< tr >
< td >
2023-09-28 06:04:32 +02:00
< div class = "flex-text-block" >
{{ if .DefaultBranchBranch.IsProtected }}{{ svg "octicon-shield-lock" }}{{ end }}
2023-06-30 20:16:17 +02:00
< a class = "gt-ellipsis" href = " {{ .RepoLink }} /src/branch/ {{ PathEscapeSegments .DefaultBranchBranch.DBBranch.Name }} " > {{ .DefaultBranchBranch.DBBranch.Name }} </ a >
2023-09-28 06:04:32 +02:00
< button class = "btn interact-fg gt-px-2" data-clipboard-text = " {{ .DefaultBranchBranch.DBBranch.Name }} " > {{ svg "octicon-copy" 14 }} </ button >
2023-07-03 05:32:21 +02:00
{{ template "repo/commit_statuses" dict "Status" ( index $.CommitStatus .DefaultBranchBranch.DBBranch.CommitID ) "Statuses" ( index $.CommitStatuses .DefaultBranchBranch.DBBranch.CommitID ) }}
2023-06-30 20:16:17 +02:00
< / div >
2024-01-15 09:49:24 +01:00
< p class = "info gt-df gt-ac 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 >
2022-01-16 15:59:16 +01:00
< / td >
2023-07-04 19:45:45 +02:00
< td class = "right aligned middle aligned overflow-visible" >
2022-01-16 15:59:16 +01:00
{{ if and $.IsWriter ( not $.Repository.IsArchived ) ( not .IsDeleted ) }}
2023-06-09 10:37:47 +02:00
< button class = "btn interact-bg show-create-branch-modal gt-p-3"
2023-04-30 17:08:51 +02:00
data-modal="#create-branch-modal"
2023-07-09 11:09:06 +02:00
data-branch-from="{{ $.DefaultBranchBranch.DBBranch.Name }} "
2023-06-29 12:03:20 +02:00
data-branch-from-urlcomponent="{{ PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name }} "
2023-09-25 10:56:50 +02:00
data-tooltip-content="{{ ctx .Locale.Tr "repo.branch.new_branch_from" ( $.DefaultBranchBranch.DBBranch.Name ) }} "
2023-04-30 17:08:51 +02:00
>
2022-01-16 15:59:16 +01:00
{{ svg "octicon-git-branch" }}
2022-11-24 13:29:43 +01:00
< / button >
2022-01-16 15:59:16 +01:00
{{ end }}
2023-04-25 16:08:29 +02:00
{{ if .EnableFeed }}
2023-06-29 12:03:20 +02: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 16:08:29 +02:00
{{ end }}
2022-07-31 18:57:02 +02:00
{{ if not $.DisableDownloadSourceArchives }}
2023-09-25 10:56:50 +02: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 18:57:02 +02:00
{{ svg "octicon-download" }}
< div class = "menu" >
2023-06-29 12:03:20 +02: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 18:57:02 +02:00
< / div >
2023-04-30 17:08:51 +02:00
< / div >
{{ end }}
{{ if and $.IsWriter ( not $.Repository.IsArchived ) ( not .IsDeleted ) ( not $.IsMirror ) }}
2023-06-09 10:37:47 +02:00
< button class = "btn interact-bg gt-p-3 show-modal show-rename-branch-modal"
2023-05-05 00:54:38 +02:00
data-is-default-branch="true"
2023-04-30 17:08:51 +02:00
data-modal="#rename-branch-modal"
2023-07-26 13:26:17 +02:00
data-old-branch-name="{{ $.DefaultBranchBranch.DBBranch.Name }} "
2023-09-25 10:56:50 +02:00
data-tooltip-content="{{ ctx .Locale.Tr "repo.branch.rename" ( $.DefaultBranchBranch.DBBranch.Name ) }} "
2023-04-30 17:08:51 +02:00
>
{{ svg "octicon-pencil" }}
2022-11-24 13:29:43 +01:00
< / button >
2022-07-31 18:57:02 +02:00
{{ end }}
2022-01-16 15:59:16 +01:00
< / td >
< / tr >
< / tbody >
< / table >
< / div >
{{ end }}
2017-10-26 02:49:16 +02:00
2024-03-15 00:24:59 +01:00
< h4 class = "ui top attached header gt-df gt-ac gt-sb" >
< div class = "gt-df gt-ac" >
{{ ctx .Locale.Tr "repo.branches" }}
< / div >
< / h4 >
2023-09-17 10:24:40 +02:00
2024-03-15 00:24:59 +01: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" 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 gt-df gt-ac 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 >
2023-06-30 20:16:17 +02:00
< / div >
2024-03-15 00:24:59 +01:00
< 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 >
2023-06-30 20:16:17 +02:00
< / div >
2024-03-15 00:24:59 +01:00
< / div >
2023-06-29 12:03:20 +02:00
{{ end }}
2024-03-15 00:24:59 +01: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 12:03:20 +02:00
{{ end }}
2024-03-15 00:24:59 +01: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 02:49:16 +02:00
{{ end }}
2024-03-15 00:24:59 +01:00
{{ else }}
< a href = " {{ .LatestPullRequest.Issue.Link }} " class = "gt-vm 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 >
2023-06-29 12:03:20 +02:00
{{ end }}
2024-03-15 00:24:59 +01: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 18:25:25 +02:00
< / div >
2024-03-15 00:24:59 +01: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 12:03:20 +02:00
< / button >
{{ end }}
2024-03-15 00:24:59 +01:00
{{ end }}
< / td >
< / tr >
{{ end }}
< / tbody >
< / table >
< / div >
{{ template "base/paginate" . }}
2017-10-26 02:49:16 +02:00
< / div >
< / div >
2023-04-24 13:08:59 +02:00
< div class = "ui g-modal-confirm delete modal" >
2023-04-23 11:24:19 +02:00
< div class = "header" >
2021-03-22 05:04:19 +01:00
{{ svg "octicon-trash" }}
2023-09-25 10:56:50 +02:00
{{ ctx .Locale.Tr "repo.branch.delete_html" }} < span class = "name" ></ span >
2017-10-26 02:49:16 +02:00
< / div >
< div class = "content" >
2024-03-10 09:51:19 +01:00
< p > {{ ctx .Locale.Tr "repo.branch.delete_desc" }} </ p >
2017-10-26 02:49:16 +02:00
< / div >
2023-04-23 11:24:19 +02:00
{{ template "base/modal_actions_confirm" . }}
2017-10-26 02:49:16 +02:00
< / div >
2021-05-24 16:57:46 +02:00
2023-04-30 17:08:51 +02:00
< div class = "ui mini modal" id = "create-branch-modal" >
2021-05-24 16:57:46 +02:00
< div class = "header" >
2023-09-25 10:56:50 +02:00
{{ ctx .Locale.Tr "repo.branch.new_branch" }}
2021-05-24 16:57:46 +02:00
< / div >
2023-04-30 17:08:51 +02:00
< form class = "ui form" id = "create-branch-form" action = "" data-base-action = " {{ .Link }} /_new/branch/" method = "post" >
< div class = "content" >
2021-05-24 16:57:46 +02:00
{{ .CsrfTokenHtml }}
< div class = "field" >
2023-09-25 10:56:50 +02:00
{{ ctx .Locale.Tr "repo.branch.create_new_branch" }}
2023-04-30 17:08:51 +02:00
< span id = "modal-create-branch-from-span" > < / span >
2021-05-24 16:57:46 +02:00
< / div >
< div class = "required field" >
2023-09-25 10:56:50 +02:00
< label for = "new_branch_name" > {{ ctx .Locale.Tr "repo.branch.name" }} </ label >
2021-05-24 16:57:46 +02:00
< input id = "new_branch_name" name = "new_branch_name" required >
< / div >
2023-04-30 17:08:51 +02:00
< / div >
2023-09-24 22:31:58 +02:00
{{ template "base/modal_actions_confirm" ( dict "ModalButtonTypes" "confirm" ) }}
2023-04-30 17:08:51 +02:00
< / form >
< / div >
2021-05-24 16:57:46 +02:00
2023-04-30 17:08:51 +02:00
< div class = "ui mini modal" id = "rename-branch-modal" >
< div class = "header" >
2023-09-25 10:56:50 +02:00
{{ ctx .Locale.Tr "repo.settings.rename_branch" }}
2021-05-24 16:57:46 +02:00
< / div >
2023-04-30 17:08:51 +02:00
< form class = "ui form" action = " {{ $.Repository.Link }} /settings/rename_branch" method = "post" >
< div class = "content" >
{{ .CsrfTokenHtml }}
2023-05-05 00:54:38 +02:00
< div class = "field default-branch-warning" >
2023-09-25 10:56:50 +02:00
< span class = "text red" > {{ ctx .Locale.Tr "repo.branch.warning_rename_default_branch" }} </ span >
2023-05-05 00:54:38 +02:00
< / div >
2023-04-30 17:08:51 +02:00
< div class = "field" >
2023-09-25 10:56:50 +02:00
< span class = "text" data-rename-branch-to = " {{ ctx .Locale.Tr "repo.branch.rename_branch_to" }} " ></ span >
2023-04-30 17:08:51 +02:00
< / div >
< input name = "from" type = "hidden" required >
< div class = "required field" >
< input name = "to" required >
< / div >
< / div >
2023-09-24 22:31:58 +02:00
{{ template "base/modal_actions_confirm" ( dict "ModalButtonTypes" "confirm" ) }}
2023-04-30 17:08:51 +02:00
< / form >
2021-05-24 16:57:46 +02:00
< / div >
2017-10-26 02:49:16 +02:00
{{ template "base/footer" . }}