Browse Source

display bare repo page

slene 11 years ago
parent
commit
578d981d7e
4 changed files with 57 additions and 55 deletions
  1. 20 12
      modules/middleware/repo.go
  2. 0 10
      routers/repo/repo.go
  3. 0 4
      templates/repo/single.tmpl
  4. 37 29
      templates/repo/single_bare.tmpl

+ 20 - 12
modules/middleware/repo.go

@@ -73,11 +73,30 @@ func RepoAssignment(redirect bool) martini.Handler {
 
 		gitRepo, err := git.OpenRepository(models.RepoPath(userName, repoName))
 		if err != nil {
-			ctx.Handle(404, "RepoAssignment Invalid repo", err)
+			ctx.Handle(404, "RepoAssignment Invalid repo "+models.RepoPath(userName, repoName), err)
 			return
 		}
 		ctx.Repo.GitRepo = gitRepo
 
+		ctx.Repo.Owner = user
+		ctx.Repo.RepoLink = "/" + user.Name + "/" + repo.Name
+
+		ctx.Data["Title"] = user.Name + "/" + repo.Name
+		ctx.Data["Repository"] = repo
+		ctx.Data["Owner"] = user
+		ctx.Data["RepoLink"] = ctx.Repo.RepoLink
+		ctx.Data["IsRepositoryOwner"] = ctx.Repo.IsOwner
+
+		ctx.Repo.CloneLink.SSH = fmt.Sprintf("%s@%s:%s/%s.git", base.RunUser, base.Domain, user.LowerName, repo.LowerName)
+		ctx.Repo.CloneLink.HTTPS = fmt.Sprintf("%s%s/%s.git", base.AppUrl, user.LowerName, repo.LowerName)
+		ctx.Data["CloneLink"] = ctx.Repo.CloneLink
+
+		if repo.IsBare {
+			ctx.Data["IsBareRepo"] = true
+			ctx.HTML(200, "repo/single_bare")
+			return
+		}
+
 	detect:
 		if len(branchName) > 0 {
 			// TODO check tag
@@ -117,19 +136,8 @@ func RepoAssignment(redirect bool) martini.Handler {
 			ctx.Repo.IsWatching = models.IsWatching(ctx.User.Id, repo.Id)
 		}
 
-		ctx.Repo.Owner = user
-		ctx.Repo.CloneLink.SSH = fmt.Sprintf("%s@%s:%s/%s.git", base.RunUser, base.Domain, user.LowerName, repo.LowerName)
-		ctx.Repo.CloneLink.HTTPS = fmt.Sprintf("%s%s/%s.git", base.AppUrl, user.LowerName, repo.LowerName)
-		ctx.Repo.RepoLink = "/" + user.Name + "/" + repo.Name
-
 		ctx.Data["BranchName"] = ctx.Repo.BranchName
 		ctx.Data["CommitId"] = ctx.Repo.CommitId
-		ctx.Data["Repository"] = repo
-		ctx.Data["Owner"] = user
-		ctx.Data["Title"] = user.Name + "/" + repo.Name
-		ctx.Data["CloneLink"] = ctx.Repo.CloneLink
-		ctx.Data["RepoLink"] = ctx.Repo.RepoLink
-		ctx.Data["IsRepositoryOwner"] = ctx.Repo.IsOwner
 		ctx.Data["IsRepositoryWatching"] = ctx.Repo.IsWatching
 	}
 }

+ 0 - 10
routers/repo/repo.go

@@ -77,10 +77,6 @@ func Single(ctx *middleware.Context, params martini.Params) {
 	if err != nil {
 		ctx.Handle(404, "repo.Single(GetBranches)", err)
 		return
-	} else if ctx.Repo.Repository.IsBare {
-		ctx.Data["IsBareRepo"] = true
-		ctx.HTML(200, "repo/single")
-		return
 	}
 	ctx.Data["Branches"] = brs
 
@@ -264,12 +260,6 @@ func Setting(ctx *middleware.Context, params martini.Params) {
 
 	ctx.Data["IsRepoToolbarSetting"] = true
 
-	if ctx.Repo.Repository.IsBare {
-		ctx.Data["IsBareRepo"] = true
-		ctx.HTML(200, "repo/setting")
-		return
-	}
-
 	var title string
 	if t, ok := ctx.Data["Title"].(string); ok {
 		title = t

+ 0 - 4
templates/repo/single.tmpl

@@ -4,9 +4,6 @@
 {{template "repo/toolbar" .}}
 <div id="body" class="container">
     <div id="source">
-        {{if .IsBareRepo}}
-        {{template "repo/single_bare" .}}
-        {{else}}
         <div class="source-toolbar">
             {{ $n := len .Treenames}}
             {{if not .IsFile}}<button class="btn btn-default pull-right hidden"><i class="fa fa-plus-square"></i>Add File</button>{{end}}
@@ -38,7 +35,6 @@
         {{else}}
             {{template "repo/single_list" .}}
         {{end}}
-        {{end}}
     </div>
 </div>
 {{template "base/footer" .}}

+ 37 - 29
templates/repo/single_bare.tmpl

@@ -1,31 +1,39 @@
-<div class="panel panel-default guide-box clone-group-btn">
-    <div class="panel-heading guide-head">
-        <h4>Quick Guide</h4>
-    </div>
-    <div class="panel-body guide-content text-center">
-        <h3>Clone this repository</h3>
-        <div class="input-group col-md-8 col-md-offset-2 guide-buttons">
-            <span class="input-group-btn">
-                <button class="btn btn-default" data-link="{{.CloneLink.SSH}}" type="button">SSH</button>
-                <button class="btn btn-default" data-link="{{.CloneLink.HTTPS}}" type="button">HTTPS</button>
-            </span>
-            <input type="text" class="form-control clone-group-url" id="guide-clone-url" value="" readonly/>
-            <span class="input-group-btn">
-                <button class="btn btn-default" type="button"><i class="fa fa-copy" data-toggle="tooltip" title="copy to clipboard" data-placement="top"></i></button>
-            </span>
+{{template "base/head" .}}
+{{template "base/navbar" .}}
+{{template "repo/nav" .}}
+<div id="body" class="container">
+    <div id="source">
+        <div class="panel panel-default guide-box clone-group-btn">
+            <div class="panel-heading guide-head">
+                <h4>Quick Guide</h4>
+            </div>
+            <div class="panel-body guide-content text-center">
+                <h3>Clone this repository</h3>
+                <div class="input-group col-md-8 col-md-offset-2 guide-buttons">
+                    <span class="input-group-btn">
+                        <button class="btn btn-default" data-link="{{.CloneLink.SSH}}" type="button">SSH</button>
+                        <button class="btn btn-default" data-link="{{.CloneLink.HTTPS}}" type="button">HTTPS</button>
+                    </span>
+                    <input type="text" class="form-control clone-group-url" id="guide-clone-url" value="" readonly/>
+                    <span class="input-group-btn">
+                        <button class="btn btn-default" type="button"><i class="fa fa-copy" data-toggle="tooltip" title="copy to clipboard" data-placement="top"></i></button>
+                    </span>
+                </div>
+                <p>We recommend every repository include a <strong>README</strong>, <strong>LICENSE</strong>, and <strong>.gitignore</strong>.</p>
+                <hr/>
+                <h3>Create a new repository on the command line</h3>
+                    <pre class="text-left"><code>touch README.md
+        git init
+        git add README.md
+        git commit -m "first commit"
+        git remote add origin <span class="clone-url"></span>
+        git push -u origin master</code></pre>
+                <hr/>
+                <h3>Push an existing repository from the command line</h3>
+                <pre class="text-left"><code>git remote add origin <span class="clone-url"></span>
+        git push -u origin master</code></pre>
+            </div>
         </div>
-        <p>We recommend every repository include a <strong>README</strong>, <strong>LICENSE</strong>, and <strong>.gitignore</strong>.</p>
-        <hr/>
-        <h3>Create a new repository on the command line</h3>
-            <pre class="text-left"><code>touch README.md
-git init
-git add README.md
-git commit -m "first commit"
-git remote add origin <span class="clone-url"></span>
-git push -u origin master</code></pre>
-        <hr/>
-        <h3>Push an existing repository from the command line</h3>
-        <pre class="text-left"><code>git remote add origin <span class="clone-url"></span>
-git push -u origin master</code></pre>
     </div>
-</div>
+</div>
+{{template "base/footer" .}}