]> source.dussan.org Git - gitea.git/commitdiff
add repo router
authorLunny Xiao <xiaolunwen@gmail.com>
Thu, 13 Mar 2014 03:56:25 +0000 (11:56 +0800)
committerLunny Xiao <xiaolunwen@gmail.com>
Thu, 13 Mar 2014 03:56:25 +0000 (11:56 +0800)
routers/repo/repo.go
serve.go
templates/repo/repo.tmpl [new file with mode: 0644]
web.go

index 62352f76cfaea7d94c8f0fe145f82594f56c0b8c..644403452576e0fd42038e70599bdf7eee1d120b 100644 (file)
@@ -5,9 +5,9 @@
 package repo
 
 import (
-       "fmt"
        "net/http"
 
+       "github.com/codegangsta/martini"
        "github.com/martini-contrib/render"
        "github.com/martini-contrib/sessions"
 
@@ -87,12 +87,29 @@ func Delete(req *http.Request, r render.Render, data base.TmplData, session sess
        }
 }
 
-func List(req *http.Request, r render.Render, data base.TmplData, session sessions.Session) {
-       data["Title"] = "Repositories"
+func Repo(params martini.Params, req *http.Request, r render.Render, data base.TmplData, session sessions.Session) {
+       data["Title"] = "Repository"
+       files, err := models.GetReposFiles(params["username"], params["reponame"], "HEAD", "/")
+       if err != nil {
+               data["ErrorMsg"] = err
+               log.Error("repo.List: %v", err)
+               r.HTML(200, "base/error", data)
+               return
+       }
 
+       data["Files"] = files
+       r.HTML(200, "repo/repo", data)
+}
+
+func List(req *http.Request, r render.Render, data base.TmplData, session sessions.Session) {
        u := auth.SignedInUser(session)
+       if u != nil {
+               r.Redirect("/")
+               return
+       }
+
+       data["Title"] = "Repositories"
        repos, err := models.GetRepositories(u)
-       fmt.Println("repos", repos)
        if err != nil {
                data["ErrorMsg"] = err
                log.Error("repo.List: %v", err)
index d4874b3ed629094a489b97839ab8c483d91b3828..56105f2f806619d31446369f3457d04d2991dffe 100644 (file)
--- a/serve.go
+++ b/serve.go
@@ -58,7 +58,7 @@ func runServ(*cli.Context) {
 
        cmd := os.Getenv("SSH_ORIGINAL_COMMAND")
        if cmd == "" {
-               printf("Hi %s! You've successfully authenticated, but Gogs does not provide shell access.\n", user.Name)
+               println("Hi ", user.Name, "! You've successfully authenticated, but Gogs does not provide shell access.")
                return
        }
 
diff --git a/templates/repo/repo.tmpl b/templates/repo/repo.tmpl
new file mode 100644 (file)
index 0000000..5ae3f25
--- /dev/null
@@ -0,0 +1,10 @@
+{{template "base/head" .}}
+{{template "base/navbar" .}}
+<div class="container" id="gogs-body">
+       <ul>
+       {{range .Files}}
+               <li>{{.Name}} - {{.Type}}</li>
+       {{end}}
+       </ul>
+</div>
+{{template "base/footer" .}}
\ No newline at end of file
diff --git a/web.go b/web.go
index c7c704c168c9228e075a4f600e6a8637ae35dd55..0b41a909d6834a64237f57e3129cca73082306a4 100644 (file)
--- a/web.go
+++ b/web.go
@@ -70,6 +70,8 @@ func runWeb(*cli.Context) {
 
        m.Get("/user/:username", auth.SignInRequire(false), user.Profile)
 
+       m.Get("/:username/:reponame", repo.Repo)
+
        m.Any("/repo/create", auth.SignInRequire(true), binding.BindIgnErr(auth.CreateRepoForm{}), repo.Create)
        m.Any("/repo/delete", auth.SignInRequire(true), repo.Delete)
        m.Any("/repo/list", auth.SignInRequire(false), repo.List)