@(branchInfo: Seq[util.JGitUtil.BranchInfo], hasWritePermission: Boolean, repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context) @import context._ @import view.helpers._ @html.main(s"${repository.owner}/${repository.name}", Some(repository)) { @html.menu("code", repository){ <h1>Branches</h1> <table class="table table-bordered table-hover table-issues"> <thead> <tr> <th style="background: #f5f5f5;color: #666;">All branches</th> </tr> </thead> <tbody> @branchInfo.map { branch => <tr><td style="padding: 12px;"> <div class="branch-action"> @branch.mergeInfo.map{ info => <a href="@url(repository)/compare/@{encodeRefName(repository.repository.defaultBranch)}...@{encodeRefName(branch.name)}" class="btn btn-small">Compare</a> @if(hasWritePermission){ <a href="@url(repository)/delete/@encodeRefName(branch.name)" class="btn @if(info.isMerged){ btn-warning }else{ btn-danger } delete-branch btn-mini" data-name="@branch.name" @if(info.isMerged){ title="merged branch" }><i class="icon icon-trash icon-white"></i></a> } } </div> <div class="branch-details"> <a href="@url(repository)/tree/@encodeRefName(branch.name)" class="branch-name">@branch.name</a> <span class="branch-meta"> <span>Updated @helper.html.datetimeago(branch.commitTime, false) by <span>@user(branch.committerName, branch.committerEmailAddress, "muted-link")</span> </span> </span> </div> <div class="branch-a-b-count"> @if(branch.mergeInfo.isEmpty){ <span class="label">Default</span> }else{ @branch.mergeInfo.map{ info => <div data-toggle="tooltip" title="@info.ahead commits ahead, @info.behind commits behind @repository.repository.defaultBranch"> <div class="a-b-count-widget"> <div class="count-half"><div class="count-value">@info.ahead</div></div> <div class="count-half"><div class="count-value">@info.behind</div></div> </div> </div> </div> } } </div> </tr> } </table> } } <script> $(function(){ $('.delete-branch').click(function(e){ var branchName = $(e.target).data('name'); return confirm('Are you sure you want to remove the ' + branchName + ' branch?'); }); $('*[data-toggle=tooltip]').tooltip(); }); </script> <style> .muted-link{ color: #777; } .muted-link:hover{ color: #4183c4; } .branch-details{ display: inline-block; width: 490px; margin-right: 10px; } .branch-name{ color: #4183c4; display: inline-block; padding: 2px 6px; font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; background-color: rgba(209,227,237,0.5); border-radius: 3px; } .branch-meta{ color: #aaa; font-size: 12px; line-height: 20px; } .branch-action{ display: inline-block; float: right; position: relative; top: -3px; height: 20px; } .branch-a-b-count{ display: inline-block; vertical-align: middle; width: 181px; text-align: center; color: rgba(0,0,0,0.5); } .a-b-count-widget{ font-size: 10px; } .a-b-count-widget .count-half{ width:90px; position: relative; text-align: right; float: left; } .a-b-count-widget .count-half:last-child { text-align: left; border-left: 1px solid #bbb; } .a-b-count-widget .count-half .count-value{ padding: 0 3px; } </style>