mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	repo branch page ui
This commit is contained in:
		@@ -67,6 +67,8 @@ html, body {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#gogs-nav-logo{
 | 
					#gogs-nav-logo{
 | 
				
			||||||
    padding-left: 0;
 | 
					    padding-left: 0;
 | 
				
			||||||
 | 
					    padding-right: 0;
 | 
				
			||||||
 | 
					    margin-right: 10px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.gogs-nav-item:hover,
 | 
					.gogs-nav-item:hover,
 | 
				
			||||||
@@ -619,6 +621,67 @@ html, body {
 | 
				
			|||||||
    padding: 30px 30px 50px;
 | 
					    padding: 30px 30px 50px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.branch-list th{
 | 
				
			||||||
 | 
					    background-color: #FFF;
 | 
				
			||||||
 | 
					    line-height: 28px !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.branch-list td{
 | 
				
			||||||
 | 
					    line-height: 36px !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.branch-box tr:hover td{
 | 
				
			||||||
 | 
					    background-color: rgba(19, 95, 215, 0.06) !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.branch-box .name{
 | 
				
			||||||
 | 
					    padding-left: 20px;
 | 
				
			||||||
 | 
					    font-size: 15px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.branch-box .action{
 | 
				
			||||||
 | 
					    width: 150px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.branch-box td.date,.branch-box td.behind,.branch-box td.ahead{
 | 
				
			||||||
 | 
					    width: 120px;
 | 
				
			||||||
 | 
					    font-family: Verdana, Arial, sans-serif;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.branch-box .graph{
 | 
				
			||||||
 | 
					    display: block;
 | 
				
			||||||
 | 
					    height: 3px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.branch-box .behind{
 | 
				
			||||||
 | 
					    text-align: right;
 | 
				
			||||||
 | 
					    direction: rtl;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.branch-box .behind .graph{
 | 
				
			||||||
 | 
					    background-color: #888;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.branch-box .ahead .graph{
 | 
				
			||||||
 | 
					    background-color: #0093c4;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.branch-box .branch-main{
 | 
				
			||||||
 | 
					    background-color: #444;
 | 
				
			||||||
 | 
					    color: #FFF;
 | 
				
			||||||
 | 
					    border-color: #444;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.branch-box .branch-main a{
 | 
				
			||||||
 | 
					    color: #FFF;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.branch-box .branch-main .name .btn{
 | 
				
			||||||
 | 
					    margin-left: .5em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* wrapper and footer */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#wrapper {
 | 
					#wrapper {
 | 
				
			||||||
    min-height: 100%;
 | 
					    min-height: 100%;
 | 
				
			||||||
    height: auto !important;
 | 
					    height: auto !important;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,6 +13,26 @@ import (
 | 
				
			|||||||
	"github.com/gogits/gogs/modules/middleware"
 | 
						"github.com/gogits/gogs/modules/middleware"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func Branches(ctx *middleware.Context, params martini.Params) {
 | 
				
			||||||
 | 
						if !ctx.Repo.IsValid {
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ctx.Data["Username"] = params["username"]
 | 
				
			||||||
 | 
						ctx.Data["Reponame"] = params["reponame"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						brs, err := models.GetBranches(params["username"], params["reponame"])
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							ctx.Handle(200, "repo.Branches", err)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ctx.Data["Branches"] = brs
 | 
				
			||||||
 | 
						ctx.Data["IsRepoToolbarBranches"] = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ctx.Render.HTML(200, "repo/branches", ctx.Data)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func Single(ctx *middleware.Context, params martini.Params) {
 | 
					func Single(ctx *middleware.Context, params martini.Params) {
 | 
				
			||||||
	if !ctx.Repo.IsValid {
 | 
						if !ctx.Repo.IsValid {
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										42
									
								
								templates/repo/branches.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								templates/repo/branches.tmpl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					{{template "base/head" .}}
 | 
				
			||||||
 | 
					{{template "base/navbar" .}}
 | 
				
			||||||
 | 
					{{template "repo/nav" .}}
 | 
				
			||||||
 | 
					{{template "repo/toolbar" .}}
 | 
				
			||||||
 | 
					<div id="gogs-body" class="container">
 | 
				
			||||||
 | 
					    <div id="gogs-source">
 | 
				
			||||||
 | 
					        <div class="panel panel-default branch-box info-box">
 | 
				
			||||||
 | 
					            <div class="panel-heading info-head">
 | 
				
			||||||
 | 
					                <h4>Branches</h4>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <table class="panel-footer table branch-list table table-hover">
 | 
				
			||||||
 | 
					                <thead>
 | 
				
			||||||
 | 
					                <tr>
 | 
				
			||||||
 | 
					                    <th class="name"></th>
 | 
				
			||||||
 | 
					                    <th class="behind">Behind</th>
 | 
				
			||||||
 | 
					                    <th class="ahead">Ahead</th>
 | 
				
			||||||
 | 
					                    <th class="date">Last Commit</th>
 | 
				
			||||||
 | 
					                    <th class="action"></th>
 | 
				
			||||||
 | 
					                </tr>
 | 
				
			||||||
 | 
					                </thead>
 | 
				
			||||||
 | 
					                <tbody>
 | 
				
			||||||
 | 
					                <tr class="branch-main">
 | 
				
			||||||
 | 
					                    <td class="name" colspan="3">
 | 
				
			||||||
 | 
					                        <a href="#"><strong>BranchName</strong></a>
 | 
				
			||||||
 | 
					                        <button class="btn btn-primary btn-sm">base branch</button>
 | 
				
			||||||
 | 
					                    </td>
 | 
				
			||||||
 | 
					                    <td class="date">3 years ago</td>
 | 
				
			||||||
 | 
					                    <td class="action"></td>
 | 
				
			||||||
 | 
					                </tr>
 | 
				
			||||||
 | 
					                <tr>
 | 
				
			||||||
 | 
					                    <td class="name"><a href="#"><strong>BranchName</strong></a></td>
 | 
				
			||||||
 | 
					                    <td class="behind">102 <span class="graph" style="width: 100%"></span></td>
 | 
				
			||||||
 | 
					                    <td class="ahead"><span class="graph" style="width: 4%"></span>4</td>
 | 
				
			||||||
 | 
					                    <td class="date">3 years ago</td>
 | 
				
			||||||
 | 
					                    <td class="action"><a class="btn btn-info btn-sm" href="#">compare</a></td>
 | 
				
			||||||
 | 
					                </tr>
 | 
				
			||||||
 | 
					                </tbody>
 | 
				
			||||||
 | 
					            </table>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					{{template "base/footer" .}}
 | 
				
			||||||
@@ -24,13 +24,15 @@
 | 
				
			|||||||
            {{$paths := .Paths}}
 | 
					            {{$paths := .Paths}}
 | 
				
			||||||
            {{ $l := Subtract $n 1}}
 | 
					            {{ $l := Subtract $n 1}}
 | 
				
			||||||
            <ol class="breadcrumb">
 | 
					            <ol class="breadcrumb">
 | 
				
			||||||
                <li class="root dir"><a href="/{{$username}}/{{$reponame}}/tree/{{$branchname}}">{{.Repository.Name}}</a></li>
 | 
					                <li class="root dir">
 | 
				
			||||||
 | 
					                    <a href="/{{$username}}/{{$reponame}}/tree/{{$branchname}}">{{.Repository.Name}}</a></li>
 | 
				
			||||||
                {{range $i, $v := $treenames}}
 | 
					                {{range $i, $v := $treenames}}
 | 
				
			||||||
                <li class="dir">
 | 
					                <li class="dir">
 | 
				
			||||||
                {{if eq $i $l}}{{$v}}
 | 
					                    {{if eq $i $l}}{{$v}}
 | 
				
			||||||
                {{else}}
 | 
					                    {{else}}
 | 
				
			||||||
                <a href="/{{$username}}/{{$reponame}}/tree/{{$branchname}}/{{index $paths $i}}">{{$v}}</a> 
 | 
					                    <a href="/{{$username}}/{{$reponame}}/tree/{{$branchname}}/{{index $paths $i}}">{{$v}}</a> 
 | 
				
			||||||
                {{end}}</li>
 | 
					                    {{end}}
 | 
				
			||||||
 | 
					                </li>
 | 
				
			||||||
                {{end}}
 | 
					                {{end}}
 | 
				
			||||||
            </ol>
 | 
					            </ol>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
@@ -43,20 +45,21 @@
 | 
				
			|||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <table class="panel-footer table file-list">
 | 
					            <table class="panel-footer table file-list">
 | 
				
			||||||
                <thead class="hidden">
 | 
					                <thead class="hidden">
 | 
				
			||||||
    	            <tr>
 | 
					                <tr>
 | 
				
			||||||
                        <th class="icon"></th>
 | 
					                    <th class="icon"></th>
 | 
				
			||||||
    	                <th class="name">Filename</th>
 | 
					                    <th class="name">Filename</th>
 | 
				
			||||||
                        <th class="text">Message</th>
 | 
					                    <th class="text">Message</th>
 | 
				
			||||||
    	                <th class="date">Date modified</th>
 | 
					                    <th class="date">Date modified</th>
 | 
				
			||||||
    	            </tr>
 | 
					                </tr>
 | 
				
			||||||
                </thead>
 | 
					                </thead>
 | 
				
			||||||
                <tbody>
 | 
					                <tbody>
 | 
				
			||||||
        			{{range .Files}}
 | 
					                {{range .Files}}
 | 
				
			||||||
    				<tr {{if .IsDir}}class="is-dir"{{end}}>
 | 
					                <tr
 | 
				
			||||||
                        <td class="icon">
 | 
					                {{if .IsDir}}class="is-dir"{{end}}>
 | 
				
			||||||
                            <i class="fa {{if .IsDir}}fa-folder{{else}}fa-file-text-o{{end}}"></i>
 | 
					                <td class="icon">
 | 
				
			||||||
                        </td>
 | 
					                    <i class="fa {{if .IsDir}}fa-folder{{else}}fa-file-text-o{{end}}"></i>
 | 
				
			||||||
    	                <td class="name">
 | 
					                </td>
 | 
				
			||||||
 | 
					                <td class="name">
 | 
				
			||||||
                            <span class="wrap">
 | 
					                            <span class="wrap">
 | 
				
			||||||
                                {{if .IsDir}}
 | 
					                                {{if .IsDir}}
 | 
				
			||||||
                                <a href="/{{$username}}/{{$reponame}}/tree/{{$branchname}}/{{.Path}}">{{.Name}}</a>
 | 
					                                <a href="/{{$username}}/{{$reponame}}/tree/{{$branchname}}/{{.Path}}">{{.Name}}</a>
 | 
				
			||||||
@@ -64,19 +67,19 @@
 | 
				
			|||||||
                                <a href="/{{$username}}/{{$reponame}}/blob/{{$branchname}}/{{.Name}}">{{.Name}}</a>
 | 
					                                <a href="/{{$username}}/{{$reponame}}/blob/{{$branchname}}/{{.Name}}">{{.Name}}</a>
 | 
				
			||||||
                                {{end}}
 | 
					                                {{end}}
 | 
				
			||||||
                            </span>
 | 
					                            </span>
 | 
				
			||||||
                        </td>
 | 
					                </td>
 | 
				
			||||||
    	                <td class="text">
 | 
					                <td class="text">
 | 
				
			||||||
                            <span class="wrap">
 | 
					                            <span class="wrap">
 | 
				
			||||||
                                {{.Message}}
 | 
					                                {{.Message}}
 | 
				
			||||||
                            </span>
 | 
					                            </span>
 | 
				
			||||||
                        </td>
 | 
					                </td>
 | 
				
			||||||
                        <td class="date">
 | 
					                <td class="date">
 | 
				
			||||||
                            <span class="wrap">
 | 
					                            <span class="wrap">
 | 
				
			||||||
                                {{TimeSince .Created}}
 | 
					                                {{TimeSince .Created}}
 | 
				
			||||||
                            </span>
 | 
					                            </span>
 | 
				
			||||||
                        </td>
 | 
					                </td>
 | 
				
			||||||
    				</tr>
 | 
					                </tr>
 | 
				
			||||||
        			{{end}}
 | 
					                {{end}}
 | 
				
			||||||
                </tbody>
 | 
					                </tbody>
 | 
				
			||||||
            </table>
 | 
					            </table>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,10 +4,10 @@
 | 
				
			|||||||
            <div class="collapse navbar-collapse">
 | 
					            <div class="collapse navbar-collapse">
 | 
				
			||||||
                <ul class="nav navbar-nav">
 | 
					                <ul class="nav navbar-nav">
 | 
				
			||||||
                    <li class="{{if .IsRepoToolbarSource}}active{{end}}"><a href="/{{.RepositoryLink}}">Source</a></li>
 | 
					                    <li class="{{if .IsRepoToolbarSource}}active{{end}}"><a href="/{{.RepositoryLink}}">Source</a></li>
 | 
				
			||||||
                    <li><a href="/{{.RepositoryLink}}/commits">Commits</a></li>
 | 
					                    <li class="{{if .IsRepoToolbarCommits}}active{{end}}"><a href="/{{.RepositoryLink}}/commits">Commits</a></li>
 | 
				
			||||||
                    <li><a href="/{{.RepositoryLink}}/branches">Branches</a></li>
 | 
					                    <li class="{{if .IsRepoToolbarBranches}}active{{end}}"><a href="/{{.RepositoryLink}}/branches">Branches</a></li>
 | 
				
			||||||
                    <li><a href="/{{.RepositoryLink}}/pulls">Pull Requests</a></li>
 | 
					                    <li class="{{if .IsRepoToolbarPulls}}active{{end}}"><a href="/{{.RepositoryLink}}/pulls">Pull Requests</a></li>
 | 
				
			||||||
                    <li><a href="/{{.RepositoryLink}}/issues">Issues <!--<span class="badge">42</span>--></a></li>
 | 
					                    <li class="{{if .IsRepoToolbarIssues}}active{{end}}"><a href="/{{.RepositoryLink}}/issues">Issues <!--<span class="badge">42</span>--></a></li>
 | 
				
			||||||
                    <li class="dropdown">
 | 
					                    <li class="dropdown">
 | 
				
			||||||
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">More <b class="caret"></b></a>
 | 
					                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">More <b class="caret"></b></a>
 | 
				
			||||||
                        <ul class="dropdown-menu">
 | 
					                        <ul class="dropdown-menu">
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								web.go
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								web.go
									
									
									
									
									
								
							@@ -77,6 +77,7 @@ func runWeb(*cli.Context) {
 | 
				
			|||||||
	m.Get("/:username/:reponame/commits", middleware.SignInRequire(false), middleware.RepoAssignment(true), repo.Commits)
 | 
						m.Get("/:username/:reponame/commits", middleware.SignInRequire(false), middleware.RepoAssignment(true), repo.Commits)
 | 
				
			||||||
	m.Get("/:username/:reponame/issues", middleware.SignInRequire(false), middleware.RepoAssignment(true), repo.Issues)
 | 
						m.Get("/:username/:reponame/issues", middleware.SignInRequire(false), middleware.RepoAssignment(true), repo.Issues)
 | 
				
			||||||
	m.Get("/:username/:reponame/pulls", middleware.SignInRequire(false), middleware.RepoAssignment(true), repo.Pulls)
 | 
						m.Get("/:username/:reponame/pulls", middleware.SignInRequire(false), middleware.RepoAssignment(true), repo.Pulls)
 | 
				
			||||||
 | 
						m.Get("/:username/:reponame/branches", middleware.SignInRequire(false), middleware.RepoAssignment(true), repo.Branches)
 | 
				
			||||||
	m.Get("/:username/:reponame/tree/:branchname/**",
 | 
						m.Get("/:username/:reponame/tree/:branchname/**",
 | 
				
			||||||
		middleware.SignInRequire(false), middleware.RepoAssignment(true), repo.Single)
 | 
							middleware.SignInRequire(false), middleware.RepoAssignment(true), repo.Single)
 | 
				
			||||||
	m.Get("/:username/:reponame/tree/:branchname",
 | 
						m.Get("/:username/:reponame/tree/:branchname",
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user