sitemap.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. // Copyright 2015 The Gogs Authors. All rights reserved.
  2. // Copyright 2018 Gitote. All rights reserved.
  3. //
  4. // This source code is licensed under the MIT license found in the
  5. // LICENSE file in the root directory of this source tree.
  6. package admin
  7. import (
  8. "gitote/gitote/models"
  9. "gitote/gitote/pkg/context"
  10. "gitote/gitote/pkg/setting"
  11. "gitote/gitote/routes"
  12. "gitlab.com/yoginth/paginater"
  13. )
  14. const (
  15. // UserSitemapTPL page template
  16. UserSitemapTPL = "user/sitemap"
  17. // OrgSitemapTPL page template
  18. OrgSitemapTPL = "org/sitemap"
  19. // RepoSitemapTPL page template
  20. RepoSitemapTPL = "repo/sitemap"
  21. )
  22. // UserSitemap shows about page
  23. func UserSitemap(c *context.Context) {
  24. routes.RenderUserSearch(c, &routes.UserSearchOptions{
  25. Type: models.UserTypeIndividual,
  26. Counter: models.CountUsers,
  27. Ranger: models.Users,
  28. OrderBy: "id ASC",
  29. TplName: UserSitemapTPL,
  30. })
  31. }
  32. // OrgSitemap shows about page
  33. func OrgSitemap(c *context.Context) {
  34. routes.RenderUserSearch(c, &routes.UserSearchOptions{
  35. Type: models.UserTypeOrganization,
  36. Counter: models.CountOrganizations,
  37. Ranger: models.Organizations,
  38. OrderBy: "id ASC",
  39. TplName: OrgSitemapTPL,
  40. })
  41. }
  42. // RepoSitemap shows about page
  43. func RepoSitemap(c *context.Context) {
  44. page := c.QueryInt("page")
  45. if page <= 0 {
  46. page = 1
  47. }
  48. var (
  49. repos []*models.Repository
  50. count int64
  51. err error
  52. )
  53. keyword := c.Query("q")
  54. if len(keyword) == 0 {
  55. repos, err = models.Repositories(page, setting.UI.Admin.RepoPagingNum)
  56. if err != nil {
  57. c.Handle(500, "Repositories", err)
  58. return
  59. }
  60. count = models.CountRepositories(true)
  61. } else {
  62. repos, count, err = models.SearchRepositoryByName(&models.SearchRepoOptions{
  63. Keyword: keyword,
  64. OrderBy: "id ASC",
  65. Private: true,
  66. Page: page,
  67. })
  68. if err != nil {
  69. c.Handle(500, "SearchRepositoryByName", err)
  70. return
  71. }
  72. }
  73. c.Data["Keyword"] = keyword
  74. c.Data["Total"] = count
  75. c.Data["Page"] = paginater.New(int(count), setting.UI.Admin.RepoPagingNum, page, 5)
  76. if err = models.RepositoryList(repos).LoadAttributes(); err != nil {
  77. c.Handle(500, "LoadAttributes", err)
  78. return
  79. }
  80. c.Data["Repos"] = repos
  81. c.HTML(200, RepoSitemapTPL)
  82. }