sitemap.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. PageSize: setting.UI.Admin.RepoPagingNum,
  68. })
  69. if err != nil {
  70. c.Handle(500, "SearchRepositoryByName", err)
  71. return
  72. }
  73. }
  74. c.Data["Keyword"] = keyword
  75. c.Data["Total"] = count
  76. c.Data["Page"] = paginater.New(int(count), setting.UI.Admin.RepoPagingNum, page, 5)
  77. if err = models.RepositoryList(repos).LoadAttributes(); err != nil {
  78. c.Handle(500, "LoadAttributes", err)
  79. return
  80. }
  81. c.Data["Repos"] = repos
  82. c.HTML(200, RepoSitemapTPL)
  83. }