code.gitea.io/gitea@v1.22.3/templates/repo/branch/list.tmpl (about)

     1  {{template "base/head" .}}
     2  <div role="main" aria-label="{{.Title}}" class="page-content ui repository branches">
     3  	{{template "repo/header" .}}
     4  	<div class="ui container">
     5  		{{template "base/alert" .}}
     6  		{{template "repo/sub_menu" .}}
     7  		{{if .DefaultBranchBranch}}
     8  			<h4 class="ui top attached header">
     9  				{{ctx.Locale.Tr "repo.default_branch"}}
    10  				{{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted)}}
    11  				<a role="button" class="right" href="{{.RepoLink}}/settings/branches" data-tooltip-content="{{ctx.Locale.Tr "repo.settings.branches.switch_default_branch"}}">
    12  					{{svg "octicon-arrow-switch"}}
    13  				</a>
    14  				{{end}}
    15  			</h4>
    16  
    17  			<div class="ui attached table segment">
    18  				<table class="ui very basic striped fixed table single line">
    19  					<tbody>
    20  						<tr>
    21  							<td>
    22  								<div class="flex-text-block">
    23  									{{if .DefaultBranchBranch.IsProtected}}{{svg "octicon-shield-lock"}}{{end}}
    24  									<a class="gt-ellipsis" href="{{.RepoLink}}/src/branch/{{PathEscapeSegments .DefaultBranchBranch.DBBranch.Name}}">{{.DefaultBranchBranch.DBBranch.Name}}</a>
    25  									<button class="btn interact-fg tw-px-1" data-clipboard-text="{{.DefaultBranchBranch.DBBranch.Name}}">{{svg "octicon-copy" 14}}</button>
    26  									{{template "repo/commit_statuses" dict "Status" (index $.CommitStatus .DefaultBranchBranch.DBBranch.CommitID) "Statuses" (index $.CommitStatuses .DefaultBranchBranch.DBBranch.CommitID)}}
    27  								</div>
    28  								<p class="info tw-flex tw-items-center tw-my-1">{{svg "octicon-git-commit" 16 "tw-mr-1"}}<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}} &nbsp;{{template "shared/user/avatarlink" dict "user" .DefaultBranchBranch.DBBranch.Pusher}}{{template "shared/user/namelink" .DefaultBranchBranch.DBBranch.Pusher}}{{end}}</p>
    29  							</td>
    30  							<td class="right aligned middle aligned overflow-visible">
    31  								{{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted)}}
    32  									<button class="btn interact-bg show-create-branch-modal tw-p-2"
    33  										data-modal="#create-branch-modal"
    34  										data-branch-from="{{$.DefaultBranchBranch.DBBranch.Name}}"
    35  										data-branch-from-urlcomponent="{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}"
    36  										data-tooltip-content="{{ctx.Locale.Tr "repo.branch.new_branch_from" ($.DefaultBranchBranch.DBBranch.Name)}}"
    37  									>
    38  										{{svg "octicon-git-branch"}}
    39  									</button>
    40  								{{end}}
    41  								{{if .EnableFeed}}
    42  									<a role="button" class="btn interact-bg tw-p-2" href="{{$.FeedURL}}/rss/branch/{{PathEscapeSegments .DefaultBranchBranch.DBBranch.Name}}">{{svg "octicon-rss"}}</a>
    43  								{{end}}
    44  								{{if not $.DisableDownloadSourceArchives}}
    45  									<div class="ui dropdown btn interact-bg tw-p-2" data-tooltip-content="{{ctx.Locale.Tr "repo.branch.download" ($.DefaultBranchBranch.DBBranch.Name)}}">
    46  										{{svg "octicon-download"}}
    47  										<div class="menu">
    48  											<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}.zip" rel="nofollow">{{svg "octicon-file-zip"}}&nbsp;ZIP</a>
    49  											<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}.tar.gz" rel="nofollow">{{svg "octicon-file-zip"}}&nbsp;TAR.GZ</a>
    50  										</div>
    51  									</div>
    52  								{{end}}
    53  								{{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted) (not $.IsMirror)}}
    54  									<button class="btn interact-bg tw-p-2 show-modal show-rename-branch-modal"
    55  										data-is-default-branch="true"
    56  										data-modal="#rename-branch-modal"
    57  										data-old-branch-name="{{$.DefaultBranchBranch.DBBranch.Name}}"
    58  										data-tooltip-content="{{ctx.Locale.Tr "repo.branch.rename" ($.DefaultBranchBranch.DBBranch.Name)}}"
    59  									>
    60  										{{svg "octicon-pencil"}}
    61  									</button>
    62  								{{end}}
    63  							</td>
    64  						</tr>
    65  					</tbody>
    66  				</table>
    67  			</div>
    68  		{{end}}
    69  
    70  		<h4 class="ui top attached header tw-flex tw-items-center tw-justify-between">
    71  			<div class="tw-flex tw-items-center">
    72  				{{ctx.Locale.Tr "repo.branches"}}
    73  			</div>
    74  		</h4>
    75  
    76  		<div class="ui attached segment">
    77  			<form class="ignore-dirty" method="get">
    78  				{{template "shared/search/combo" dict "Value" .Keyword "Placeholder" (ctx.Locale.Tr "search.branch_kind")}}
    79  			</form>
    80  		</div>
    81  
    82  		<div class="ui attached table segment">
    83  			<table class="ui very basic striped fixed table single line">
    84  				<tbody>
    85  					{{range .Branches}}
    86  						<tr>
    87  							<td class="eight wide">
    88  							{{if .DBBranch.IsDeleted}}
    89  								<div class="flex-text-block">
    90  									<span class="gt-ellipsis">{{.DBBranch.Name}}</span>
    91  									<button class="btn interact-fg tw-px-1" data-clipboard-text="{{.DBBranch.Name}}">{{svg "octicon-copy" 14}}</button>
    92  								</div>
    93  								<p class="info">{{ctx.Locale.Tr "repo.branch.deleted_by" .DBBranch.DeletedBy.Name}} {{TimeSinceUnix .DBBranch.DeletedUnix ctx.Locale}}</p>
    94  							{{else}}
    95  								<div class="flex-text-block">
    96  									{{if .IsProtected}}{{svg "octicon-shield-lock"}}{{end}}
    97  									<a class="gt-ellipsis" href="{{$.RepoLink}}/src/branch/{{PathEscapeSegments .DBBranch.Name}}">{{.DBBranch.Name}}</a>
    98  									<button class="btn interact-fg tw-px-1" data-clipboard-text="{{.DBBranch.Name}}">{{svg "octicon-copy" 14}}</button>
    99  									{{template "repo/commit_statuses" dict "Status" (index $.CommitStatus .DBBranch.CommitID) "Statuses" (index $.CommitStatuses .DBBranch.CommitID)}}
   100  								</div>
   101  								<p class="info tw-flex tw-items-center tw-my-1">{{svg "octicon-git-commit" 16 "tw-mr-1"}}<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}} &nbsp;{{template "shared/user/avatarlink" dict "user" .DBBranch.Pusher}} &nbsp;{{template "shared/user/namelink" .DBBranch.Pusher}}{{end}}</p>
   102  							{{end}}
   103  							</td>
   104  							<td class="two wide ui">
   105  								{{if and (not .DBBranch.IsDeleted) $.DefaultBranchBranch}}
   106  								<div class="commit-divergence">
   107  									<div class="bar-group">
   108  										<div class="count count-behind">{{.CommitsBehind}}</div>
   109  										{{/* old code bears 0/0.0 = NaN output, so it might output invalid "width: NaNpx", it just works and doesn't caues any problem. */}}
   110  										<div class="bar bar-behind" style="width: {{Eval 100 "*" .CommitsBehind "/" "(" .CommitsBehind "+" .CommitsAhead "+" 0.0 ")"}}%"></div>
   111  									</div>
   112  									<div class="bar-group">
   113  										<div class="count count-ahead">{{.CommitsAhead}}</div>
   114  										<div class="bar bar-ahead" style="width: {{Eval 100 "*" .CommitsAhead "/" "(" .CommitsBehind "+" .CommitsAhead "+" 0.0 ")"}}%"></div>
   115  									</div>
   116  								</div>
   117  								{{end}}
   118  							</td>
   119  							<td class="two wide right aligned">
   120  								{{if not .LatestPullRequest}}
   121  									{{if .IsIncluded}}
   122  										<span class="ui orange large label" data-tooltip-content="{{ctx.Locale.Tr "repo.branch.included_desc"}}">
   123  											{{svg "octicon-git-pull-request"}} {{ctx.Locale.Tr "repo.branch.included"}}
   124  										</span>
   125  									{{else if and (not .DBBranch.IsDeleted) $.AllowsPulls (gt .CommitsAhead 0)}}
   126  									<a href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}...{{if ne $.Repository.Owner.Name $.Owner.Name}}{{PathEscape $.Owner.Name}}:{{end}}{{PathEscapeSegments .DBBranch.Name}}">
   127  										<button id="new-pull-request" class="ui compact basic button tw-mr-0">{{if $.CanPull}}{{ctx.Locale.Tr "repo.pulls.compare_changes"}}{{else}}{{ctx.Locale.Tr "action.compare_branch"}}{{end}}</button>
   128  									</a>
   129  									{{end}}
   130  								{{else if and .LatestPullRequest.HasMerged .MergeMovedOn}}
   131  									{{if and (not .DBBranch.IsDeleted) $.AllowsPulls (gt .CommitsAhead 0)}}
   132  									<a href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}...{{if ne $.Repository.Owner.Name $.Owner.Name}}{{PathEscape $.Owner.Name}}:{{end}}{{PathEscapeSegments .DBBranch.Name}}">
   133  										<button id="new-pull-request" class="ui compact basic button tw-mr-0">{{if $.CanPull}}{{ctx.Locale.Tr "repo.pulls.compare_changes"}}{{else}}{{ctx.Locale.Tr "action.compare_branch"}}{{end}}</button>
   134  									</a>
   135  									{{end}}
   136  								{{else}}
   137  									<a href="{{.LatestPullRequest.Issue.Link}}" class="tw-align-middle ref-issue">{{if not .LatestPullRequest.IsSameRepo}}{{.LatestPullRequest.BaseRepo.FullName}}{{end}}#{{.LatestPullRequest.Issue.Index}}</a>
   138  									{{if .LatestPullRequest.HasMerged}}
   139  										<a href="{{.LatestPullRequest.Issue.Link}}" class="ui purple large label">{{svg "octicon-git-merge" 16 "tw-mr-1"}}{{ctx.Locale.Tr "repo.pulls.merged"}}</a>
   140  									{{else if .LatestPullRequest.Issue.IsClosed}}
   141  										<a href="{{.LatestPullRequest.Issue.Link}}" class="ui red large label">{{svg "octicon-git-pull-request" 16 "tw-mr-1"}}{{ctx.Locale.Tr "repo.issues.closed_title"}}</a>
   142  									{{else}}
   143  										<a href="{{.LatestPullRequest.Issue.Link}}" class="ui green large label">{{svg "octicon-git-pull-request" 16 "tw-mr-1"}}{{ctx.Locale.Tr "repo.issues.open_title"}}</a>
   144  									{{end}}
   145  								{{end}}
   146  							</td>
   147  							<td class="three wide right aligned overflow-visible">
   148  								{{if and $.IsWriter (not $.Repository.IsArchived) (not .DBBranch.IsDeleted)}}
   149  									<button class="btn interact-bg tw-p-2 show-modal show-create-branch-modal"
   150  										data-branch-from="{{.DBBranch.Name}}"
   151  										data-branch-from-urlcomponent="{{PathEscapeSegments .DBBranch.Name}}"
   152  										data-tooltip-content="{{ctx.Locale.Tr "repo.branch.new_branch_from" .DBBranch.Name}}"
   153  										data-modal="#create-branch-modal" data-name="{{.DBBranch.Name}}"
   154  									>
   155  										{{svg "octicon-git-branch"}}
   156  									</button>
   157  								{{end}}
   158  								{{if $.EnableFeed}}
   159  									<a role="button" class="btn interact-bg tw-p-2" href="{{$.FeedURL}}/rss/branch/{{PathEscapeSegments .DBBranch.Name}}">{{svg "octicon-rss"}}</a>
   160  								{{end}}
   161  								{{if and (not .DBBranch.IsDeleted) (not $.DisableDownloadSourceArchives)}}
   162  									<div class="ui dropdown btn interact-bg tw-p-2" data-tooltip-content="{{ctx.Locale.Tr "repo.branch.download" (.DBBranch.Name)}}">
   163  										{{svg "octicon-download"}}
   164  										<div class="menu">
   165  											<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments .DBBranch.Name}}.zip" rel="nofollow">{{svg "octicon-file-zip"}}&nbsp;ZIP</a>
   166  											<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments .DBBranch.Name}}.tar.gz" rel="nofollow">{{svg "octicon-file-zip"}}&nbsp;TAR.GZ</a>
   167  										</div>
   168  									</div>
   169  								{{end}}
   170  								{{if and $.IsWriter (not $.Repository.IsArchived) (not .DBBranch.IsDeleted) (not $.IsMirror)}}
   171  									<button class="btn interact-bg tw-p-2 show-modal show-rename-branch-modal"
   172  										data-is-default-branch="false"
   173  										data-old-branch-name="{{.DBBranch.Name}}"
   174  										data-modal="#rename-branch-modal"
   175  										data-tooltip-content="{{ctx.Locale.Tr "repo.branch.rename" (.DBBranch.Name)}}"
   176  									>
   177  										{{svg "octicon-pencil"}}
   178  									</button>
   179  								{{end}}
   180  								{{if and $.IsWriter (not $.IsMirror) (not $.Repository.IsArchived) (not .IsProtected)}}
   181  									{{if .DBBranch.IsDeleted}}
   182  										<button class="btn interact-bg tw-p-2 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)}}">
   183  											<span class="text blue">
   184  												{{svg "octicon-reply"}}
   185  											</span>
   186  										</button>
   187  									{{else}}
   188  										<button class="btn interact-bg tw-p-2 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}}">
   189  											{{svg "octicon-trash"}}
   190  										</button>
   191  									{{end}}
   192  								{{end}}
   193  							</td>
   194  						</tr>
   195  					{{end}}
   196  				</tbody>
   197  			</table>
   198  		</div>
   199  		{{template "base/paginate" .}}
   200  	</div>
   201  </div>
   202  
   203  <div class="ui g-modal-confirm delete modal">
   204  	<div class="header">
   205  		{{svg "octicon-trash"}}
   206  		{{ctx.Locale.Tr "repo.branch.delete_html"}} <span class="name"></span>
   207  	</div>
   208  	<div class="content">
   209  		<p>{{ctx.Locale.Tr "repo.branch.delete_desc"}}</p>
   210  	</div>
   211  	{{template "base/modal_actions_confirm" .}}
   212  </div>
   213  
   214  <div class="ui mini modal" id="create-branch-modal">
   215  	<div class="header">
   216  		{{ctx.Locale.Tr "repo.branch.new_branch"}}
   217  	</div>
   218  
   219  	<form class="ui form" id="create-branch-form" action="" data-base-action="{{.Link}}/_new/branch/" method="post">
   220  		<div class="content">
   221  			{{.CsrfTokenHtml}}
   222  			<div class="field">
   223  				{{ctx.Locale.Tr "repo.branch.create_new_branch"}}
   224  				<span id="modal-create-branch-from-span"></span>
   225  			</div>
   226  			<div class="required field">
   227  				<label for="new_branch_name">{{ctx.Locale.Tr "repo.branch.name"}}</label>
   228  				<input id="new_branch_name" name="new_branch_name" required>
   229  			</div>
   230  		</div>
   231  		{{template "base/modal_actions_confirm" (dict "ModalButtonTypes" "confirm")}}
   232  	</form>
   233  </div>
   234  
   235  <div class="ui mini modal" id="rename-branch-modal">
   236  	<div class="header">
   237  		{{ctx.Locale.Tr "repo.settings.rename_branch"}}
   238  	</div>
   239  	<form class="ui form" action="{{$.Repository.Link}}/branches/rename" method="post">
   240  		<div class="content">
   241  			{{.CsrfTokenHtml}}
   242  			<div class="field default-branch-warning">
   243  				<span class="text red">{{ctx.Locale.Tr "repo.branch.warning_rename_default_branch"}}</span>
   244  			</div>
   245  			<div class="field">
   246  				<span class="text" data-rename-branch-to="{{ctx.Locale.Tr "repo.branch.rename_branch_to"}}"></span>
   247  			</div>
   248  			<input name="from" type="hidden" required>
   249  			<div class="required field">
   250  				<input name="to" required>
   251  			</div>
   252  		</div>
   253  		{{template "base/modal_actions_confirm" (dict "ModalButtonTypes" "confirm")}}
   254  	</form>
   255  </div>
   256  {{template "base/footer" .}}