index.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. IsSignedIn: c.IsSignedIn,
  14. Login: c.Login,
  15. Email: c.Email,
  16. Name: c.Name,
  17. LightTheme: c.Theme == "light",
  18. OrgId: c.OrgId,
  19. OrgName: c.OrgName,
  20. OrgRole: c.OrgRole,
  21. GravatarUrl: dtos.GetGravatarUrl(c.Email),
  22. IsGrafanaAdmin: c.IsGrafanaAdmin,
  23. }
  24. if setting.DisableGravatar {
  25. currentUser.GravatarUrl = setting.AppSubUrl + "/img/user_profile.png"
  26. }
  27. if len(currentUser.Name) == 0 {
  28. currentUser.Name = currentUser.Login
  29. }
  30. themeUrlParam := c.Query("theme")
  31. if themeUrlParam == "light" {
  32. currentUser.LightTheme = true
  33. }
  34. c.Data["User"] = currentUser
  35. c.Data["Settings"] = settings
  36. c.Data["AppUrl"] = setting.AppUrl
  37. c.Data["AppSubUrl"] = setting.AppSubUrl
  38. if setting.GoogleAnalyticsId != "" {
  39. c.Data["GoogleAnalyticsId"] = setting.GoogleAnalyticsId
  40. }
  41. return nil
  42. }
  43. func Index(c *middleware.Context) {
  44. if err := setIndexViewData(c); err != nil {
  45. c.Handle(500, "Failed to get settings", err)
  46. return
  47. }
  48. c.HTML(200, "index")
  49. }
  50. func NotFound(c *middleware.Context) {
  51. if c.IsApiRequest() {
  52. c.JsonApiErr(404, "Not found", nil)
  53. return
  54. }
  55. if err := setIndexViewData(c); err != nil {
  56. c.Handle(500, "Failed to get settings", err)
  57. return
  58. }
  59. c.HTML(404, "index")
  60. }