From 4fff38856e784cb1c2c8115a7c7e013f42f7d8d8 Mon Sep 17 00:00:00 2001 From: FuXiaoHei Date: Thu, 13 Mar 2014 12:15:58 +0800 Subject: single repository page ui preview --- routers/repo/single.go | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 routers/repo/single.go (limited to 'routers/repo/single.go') diff --git a/routers/repo/single.go b/routers/repo/single.go new file mode 100644 index 0000000000..be27db8e05 --- /dev/null +++ b/routers/repo/single.go @@ -0,0 +1,56 @@ +package repo + +import ( + "github.com/codegangsta/martini" + "github.com/gogits/gogs/models" + "github.com/gogits/gogs/modules/auth" + "github.com/gogits/gogs/modules/base" + "github.com/martini-contrib/render" + "github.com/martini-contrib/sessions" + "net/http" +) + + +func Single(params martini.Params, req *http.Request, r render.Render, data base.TmplData, session sessions.Session) { + var ( + user *models.User + err error + ) + // get repository owner + isOwner := (data["SignedUserName"] == params["username"]) + if !isOwner { + user, err = models.GetUserByName(params["username"]) + if err != nil { + data["ErrorMsg"] = err + //log.Error("repo.Single: %v", err) + r.HTML(200, "base/error", data) + return + } + } else { + user = auth.SignedInUser(session) + } + if user == nil { + data["ErrorMsg"] = "invliad user account for single repository" + //log.Error("repo.Single: %v", err) + r.HTML(200, "base/error", data) + return + } + data["IsRepositoryOwner"] = isOwner + + // get repository + repo, err := models.GetRepositoryByName(user, params["reponame"]) + if err != nil { + data["ErrorMsg"] = err + //log.Error("repo.Single: %v", err) + r.HTML(200, "base/error", data) + return + } + + data["Repository"] = repo + data["Owner"] = user + data["Title"] = user.Name + "/" + repo.Name + data["RepositoryLink"] = data["Title"] + data["IsRepoToolbarSource"] = true + + r.HTML(200, "repo/single", data) +} -- cgit v1.2.3