single.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. // Copyright 2014 The Gogs Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package repo
  5. import (
  6. "strings"
  7. "github.com/codegangsta/martini"
  8. "github.com/gogits/gogs/models"
  9. "github.com/gogits/gogs/modules/middleware"
  10. )
  11. func Single(ctx *middleware.Context, params martini.Params) {
  12. if !ctx.Repo.IsValid {
  13. return
  14. }
  15. if params["branchname"] == "" {
  16. params["branchname"] = "master"
  17. }
  18. treename := params["_1"]
  19. files, err := models.GetReposFiles(params["username"], params["reponame"],
  20. params["branchname"], treename)
  21. if err != nil {
  22. ctx.Handle(200, "repo.Single", err)
  23. return
  24. }
  25. ctx.Data["Username"] = params["username"]
  26. ctx.Data["Reponame"] = params["reponame"]
  27. ctx.Data["Branchname"] = params["branchname"]
  28. brs, err := models.GetBranches(params["username"], params["reponame"])
  29. if err != nil {
  30. ctx.Handle(200, "repo.Single", err)
  31. return
  32. }
  33. ctx.Data["Branches"] = brs
  34. var treenames []string
  35. Paths := make([]string, 0)
  36. if len(treename) > 0 {
  37. treenames = strings.Split(treename, "/")
  38. for i, _ := range treenames {
  39. Paths = append(Paths, strings.Join(treenames[0:i+1], "/"))
  40. }
  41. }
  42. commit, err := models.GetLastestCommit(params["username"], params["reponame"])
  43. if err != nil {
  44. ctx.Handle(200, "repo.Single", err)
  45. return
  46. }
  47. ctx.Data["LatestCommit"] = commit
  48. ctx.Data["Paths"] = Paths
  49. ctx.Data["Treenames"] = treenames
  50. ctx.Data["IsRepoToolbarSource"] = true
  51. ctx.Data["Files"] = files
  52. ctx.Render.HTML(200, "repo/single", ctx.Data)
  53. }
  54. func Setting(ctx *middleware.Context, params martini.Params) {
  55. if !ctx.Repo.IsOwner {
  56. ctx.Render.Error(404)
  57. return
  58. }
  59. var title string
  60. if t, ok := ctx.Data["Title"].(string); ok {
  61. title = t
  62. }
  63. ctx.Data["Title"] = title + " - settings"
  64. ctx.Data["IsRepoToolbarSetting"] = true
  65. ctx.Render.HTML(200, "repo/setting", ctx.Data)
  66. }
  67. func Commits(ctx *middleware.Context) string {
  68. return "This is commits page"
  69. }
  70. func Issues(ctx *middleware.Context) string {
  71. return "This is issues page"
  72. }
  73. func Pulls(ctx *middleware.Context) string {
  74. return "This is pulls page"
  75. }