index.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package api
  2. import (
  3. "github.com/grafana/grafana/pkg/api/dtos"
  4. "github.com/grafana/grafana/pkg/middleware"
  5. "github.com/grafana/grafana/pkg/setting"
  6. )
  7. func setIndexViewData(c *middleware.Context) error {
  8. settings, err := getFrontendSettingsMap(c)
  9. if err != nil {
  10. return err
  11. }
  12. currentUser := &dtos.CurrentUser{
  13. Id: c.UserId,
  14. IsSignedIn: c.IsSignedIn,
  15. Login: c.Login,
  16. Email: c.Email,
  17. Name: c.Name,
  18. LightTheme: c.Theme == "light",
  19. OrgId: c.OrgId,
  20. OrgName: c.OrgName,
  21. OrgRole: c.OrgRole,
  22. GravatarUrl: dtos.GetGravatarUrl(c.Email),
  23. IsGrafanaAdmin: c.IsGrafanaAdmin,
  24. }
  25. if setting.DisableGravatar {
  26. currentUser.GravatarUrl = setting.AppSubUrl + "/img/user_profile.png"
  27. }
  28. if len(currentUser.Name) == 0 {
  29. currentUser.Name = currentUser.Login
  30. }
  31. themeUrlParam := c.Query("theme")
  32. if themeUrlParam == "light" {
  33. currentUser.LightTheme = true
  34. }
  35. c.Data["User"] = currentUser
  36. c.Data["Settings"] = settings
  37. c.Data["AppUrl"] = setting.AppUrl
  38. c.Data["AppSubUrl"] = setting.AppSubUrl
  39. if setting.GoogleAnalyticsId != "" {
  40. c.Data["GoogleAnalyticsId"] = setting.GoogleAnalyticsId
  41. }
  42. if setting.GoogleTagManagerId != "" {
  43. c.Data["GoogleTagManagerId"] = setting.GoogleTagManagerId
  44. }
  45. return nil
  46. }
  47. func Index(c *middleware.Context) {
  48. if err := setIndexViewData(c); err != nil {
  49. c.Handle(500, "Failed to get settings", err)
  50. return
  51. }
  52. c.HTML(200, "index")
  53. }
  54. func NotFoundHandler(c *middleware.Context) {
  55. if c.IsApiRequest() {
  56. c.JsonApiErr(404, "Not found", nil)
  57. return
  58. }
  59. if err := setIndexViewData(c); err != nil {
  60. c.Handle(500, "Failed to get settings", err)
  61. return
  62. }
  63. c.HTML(404, "index")
  64. }