You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

setting_test.go 3.6KB

Introduce `flex-list` & `flex-item` elements for Gitea UI (#25790) This PR introduces a new UI element type for Gitea called `flex-item`. It consists of a horizontal card with a leading, main and trailing part: ![grafik](https://github.com/go-gitea/gitea/assets/47871822/395dd3f3-3906-4481-8f65-be6ac0acbe03) The idea behind it is that in Gitea UI, we have many cases where we use this kind of layout, but it is achieved in many different ways: - grid layout - `.ui.list` with additional hacky flexbox - `.ui.key.list` - looks to me like a style set originally created for ssh/gpg key list, was used in many other places - `.issue.list` - created for issue cards, used in many other places - ... This new style is based on `.issue.list`, specifically the refactoring of it done in #25750. In this PR, the new element is introduced and lots of templates are being refactored to use that style. This allows to remove a lot of page-specific css, makes many of the elements responsive or simply provides a cleaner/better-looking way to present information. A devtest section with the new style is also available. <details> <summary>Screenshots (left: before, right: after)</summary> ![Bildschirmfoto vom 2023-07-09 21-01-21](https://github.com/go-gitea/gitea/assets/47871822/545b7da5-b300-475f-bd6d-b7d836950bb5) ![Bildschirmfoto vom 2023-07-09 21-01-56](https://github.com/go-gitea/gitea/assets/47871822/b6f70415-6795-4f71-a5ea-117d56107ea1) ![Bildschirmfoto vom 2023-07-09 21-02-45](https://github.com/go-gitea/gitea/assets/47871822/47407121-3f2a-4778-8f6d-ad2687c2e7b3) ![Bildschirmfoto vom 2023-07-09 21-03-44](https://github.com/go-gitea/gitea/assets/47871822/76167aaf-c3b2-46f6-9ffd-709f20aa6a34) ![Bildschirmfoto vom 2023-07-09 21-04-52](https://github.com/go-gitea/gitea/assets/47871822/af8fdde5-711e-4524-99cf-fb5d68af85b9) ![Bildschirmfoto vom 2023-07-09 21-05-25](https://github.com/go-gitea/gitea/assets/47871822/ae406946-e3e4-4109-abfe-b3588a07b468) ![Bildschirmfoto vom 2023-07-09 21-06-35](https://github.com/go-gitea/gitea/assets/47871822/2dbacc04-24d6-4f91-9e42-e16d6e4b5f1f) ![Bildschirmfoto vom 2023-07-09 21-09-03](https://github.com/go-gitea/gitea/assets/47871822/d3ca4e56-a72f-4179-adc8-98bfd638025b) ![Bildschirmfoto vom 2023-07-09 21-09-44](https://github.com/go-gitea/gitea/assets/47871822/df1fa689-499c-4e54-b6fb-3b81644b725f) ![Bildschirmfoto vom 2023-07-09 21-10-27](https://github.com/go-gitea/gitea/assets/47871822/b21cac71-a85a-4c8c-bb99-ab90373d8e09) ![Bildschirmfoto vom 2023-07-09 21-11-12](https://github.com/go-gitea/gitea/assets/47871822/89be39cf-0af9-4f2d-9fca-42f9eb5e7824) ![Bildschirmfoto vom 2023-07-09 21-12-01](https://github.com/go-gitea/gitea/assets/47871822/079579ea-1ecb-49c0-b32b-b59ed957caec) ![Bildschirmfoto vom 2023-07-09 21-17-44](https://github.com/go-gitea/gitea/assets/47871822/61ac6ec4-a319-4d5c-9c99-2e02a77295ba) ![Bildschirmfoto vom 2023-07-09 21-18-27](https://github.com/go-gitea/gitea/assets/47871822/5b55b73f-6244-47f7-a3e6-c5e4a7474585) ![Bildschirmfoto vom 2023-07-09 21-19-18](https://github.com/go-gitea/gitea/assets/47871822/c1b7c22e-3e5a-46d4-b8d6-5560db478c0b) ![Bildschirmfoto vom 2023-07-09 21-29-13](https://github.com/go-gitea/gitea/assets/47871822/82ffca8d-ab2e-4a18-9954-5b685bf6a422) ![Bildschirmfoto vom 2023-07-09 21-30-11](https://github.com/go-gitea/gitea/assets/47871822/ad2fdccc-2be8-41bb-bfdc-a084aa387b61) ![Bildschirmfoto vom 2023-07-09 21-32-44](https://github.com/go-gitea/gitea/assets/47871822/2d298ba7-d084-48b5-a139-f86d56262110) ![Bildschirmfoto vom 2023-07-09 21-33-28](https://github.com/go-gitea/gitea/assets/47871822/4cbd838e-9de8-4ad0-8ed9-438da5c9a5cb) </details> --------- Co-authored-by: Giteabot <teabot@gitea.io>
11 months ago
Introduce `flex-list` & `flex-item` elements for Gitea UI (#25790) This PR introduces a new UI element type for Gitea called `flex-item`. It consists of a horizontal card with a leading, main and trailing part: ![grafik](https://github.com/go-gitea/gitea/assets/47871822/395dd3f3-3906-4481-8f65-be6ac0acbe03) The idea behind it is that in Gitea UI, we have many cases where we use this kind of layout, but it is achieved in many different ways: - grid layout - `.ui.list` with additional hacky flexbox - `.ui.key.list` - looks to me like a style set originally created for ssh/gpg key list, was used in many other places - `.issue.list` - created for issue cards, used in many other places - ... This new style is based on `.issue.list`, specifically the refactoring of it done in #25750. In this PR, the new element is introduced and lots of templates are being refactored to use that style. This allows to remove a lot of page-specific css, makes many of the elements responsive or simply provides a cleaner/better-looking way to present information. A devtest section with the new style is also available. <details> <summary>Screenshots (left: before, right: after)</summary> ![Bildschirmfoto vom 2023-07-09 21-01-21](https://github.com/go-gitea/gitea/assets/47871822/545b7da5-b300-475f-bd6d-b7d836950bb5) ![Bildschirmfoto vom 2023-07-09 21-01-56](https://github.com/go-gitea/gitea/assets/47871822/b6f70415-6795-4f71-a5ea-117d56107ea1) ![Bildschirmfoto vom 2023-07-09 21-02-45](https://github.com/go-gitea/gitea/assets/47871822/47407121-3f2a-4778-8f6d-ad2687c2e7b3) ![Bildschirmfoto vom 2023-07-09 21-03-44](https://github.com/go-gitea/gitea/assets/47871822/76167aaf-c3b2-46f6-9ffd-709f20aa6a34) ![Bildschirmfoto vom 2023-07-09 21-04-52](https://github.com/go-gitea/gitea/assets/47871822/af8fdde5-711e-4524-99cf-fb5d68af85b9) ![Bildschirmfoto vom 2023-07-09 21-05-25](https://github.com/go-gitea/gitea/assets/47871822/ae406946-e3e4-4109-abfe-b3588a07b468) ![Bildschirmfoto vom 2023-07-09 21-06-35](https://github.com/go-gitea/gitea/assets/47871822/2dbacc04-24d6-4f91-9e42-e16d6e4b5f1f) ![Bildschirmfoto vom 2023-07-09 21-09-03](https://github.com/go-gitea/gitea/assets/47871822/d3ca4e56-a72f-4179-adc8-98bfd638025b) ![Bildschirmfoto vom 2023-07-09 21-09-44](https://github.com/go-gitea/gitea/assets/47871822/df1fa689-499c-4e54-b6fb-3b81644b725f) ![Bildschirmfoto vom 2023-07-09 21-10-27](https://github.com/go-gitea/gitea/assets/47871822/b21cac71-a85a-4c8c-bb99-ab90373d8e09) ![Bildschirmfoto vom 2023-07-09 21-11-12](https://github.com/go-gitea/gitea/assets/47871822/89be39cf-0af9-4f2d-9fca-42f9eb5e7824) ![Bildschirmfoto vom 2023-07-09 21-12-01](https://github.com/go-gitea/gitea/assets/47871822/079579ea-1ecb-49c0-b32b-b59ed957caec) ![Bildschirmfoto vom 2023-07-09 21-17-44](https://github.com/go-gitea/gitea/assets/47871822/61ac6ec4-a319-4d5c-9c99-2e02a77295ba) ![Bildschirmfoto vom 2023-07-09 21-18-27](https://github.com/go-gitea/gitea/assets/47871822/5b55b73f-6244-47f7-a3e6-c5e4a7474585) ![Bildschirmfoto vom 2023-07-09 21-19-18](https://github.com/go-gitea/gitea/assets/47871822/c1b7c22e-3e5a-46d4-b8d6-5560db478c0b) ![Bildschirmfoto vom 2023-07-09 21-29-13](https://github.com/go-gitea/gitea/assets/47871822/82ffca8d-ab2e-4a18-9954-5b685bf6a422) ![Bildschirmfoto vom 2023-07-09 21-30-11](https://github.com/go-gitea/gitea/assets/47871822/ad2fdccc-2be8-41bb-bfdc-a084aa387b61) ![Bildschirmfoto vom 2023-07-09 21-32-44](https://github.com/go-gitea/gitea/assets/47871822/2d298ba7-d084-48b5-a139-f86d56262110) ![Bildschirmfoto vom 2023-07-09 21-33-28](https://github.com/go-gitea/gitea/assets/47871822/4cbd838e-9de8-4ad0-8ed9-438da5c9a5cb) </details> --------- Co-authored-by: Giteabot <teabot@gitea.io>
11 months ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package integration
  4. import (
  5. "net/http"
  6. "testing"
  7. "code.gitea.io/gitea/modules/setting"
  8. "code.gitea.io/gitea/tests"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestSettingShowUserEmailExplore(t *testing.T) {
  12. defer tests.PrepareTestEnv(t)()
  13. showUserEmail := setting.UI.ShowUserEmail
  14. setting.UI.ShowUserEmail = true
  15. session := loginUser(t, "user2")
  16. req := NewRequest(t, "GET", "/explore/users?sort=alphabetically")
  17. resp := session.MakeRequest(t, req, http.StatusOK)
  18. htmlDoc := NewHTMLParser(t, resp.Body)
  19. assert.Contains(t,
  20. htmlDoc.doc.Find(".explore.users").Text(),
  21. "user34@example.com",
  22. )
  23. setting.UI.ShowUserEmail = false
  24. req = NewRequest(t, "GET", "/explore/users?sort=alphabetically")
  25. resp = session.MakeRequest(t, req, http.StatusOK)
  26. htmlDoc = NewHTMLParser(t, resp.Body)
  27. assert.NotContains(t,
  28. htmlDoc.doc.Find(".explore.users").Text(),
  29. "user34@example.com",
  30. )
  31. setting.UI.ShowUserEmail = showUserEmail
  32. }
  33. func TestSettingShowUserEmailProfile(t *testing.T) {
  34. defer tests.PrepareTestEnv(t)()
  35. showUserEmail := setting.UI.ShowUserEmail
  36. // user1: keep_email_private = false, user2: keep_email_private = true
  37. setting.UI.ShowUserEmail = true
  38. // user1 can see own visible email
  39. session := loginUser(t, "user1")
  40. req := NewRequest(t, "GET", "/user1")
  41. resp := session.MakeRequest(t, req, http.StatusOK)
  42. htmlDoc := NewHTMLParser(t, resp.Body)
  43. assert.Contains(t, htmlDoc.doc.Find(".user.profile").Text(), "user1@example.com")
  44. // user1 can not see user2's hidden email
  45. req = NewRequest(t, "GET", "/user2")
  46. resp = session.MakeRequest(t, req, http.StatusOK)
  47. htmlDoc = NewHTMLParser(t, resp.Body)
  48. // Should only contain if the user visits their own profile page
  49. assert.NotContains(t, htmlDoc.doc.Find(".user.profile").Text(), "user2@example.com")
  50. // user2 can see user1's visible email
  51. session = loginUser(t, "user2")
  52. req = NewRequest(t, "GET", "/user1")
  53. resp = session.MakeRequest(t, req, http.StatusOK)
  54. htmlDoc = NewHTMLParser(t, resp.Body)
  55. assert.Contains(t, htmlDoc.doc.Find(".user.profile").Text(), "user1@example.com")
  56. // user2 can see own hidden email
  57. session = loginUser(t, "user2")
  58. req = NewRequest(t, "GET", "/user2")
  59. resp = session.MakeRequest(t, req, http.StatusOK)
  60. htmlDoc = NewHTMLParser(t, resp.Body)
  61. assert.Contains(t, htmlDoc.doc.Find(".user.profile").Text(), "user2@example.com")
  62. setting.UI.ShowUserEmail = false
  63. // user1 can see own (now hidden) email
  64. session = loginUser(t, "user1")
  65. req = NewRequest(t, "GET", "/user1")
  66. resp = session.MakeRequest(t, req, http.StatusOK)
  67. htmlDoc = NewHTMLParser(t, resp.Body)
  68. assert.Contains(t, htmlDoc.doc.Find(".user.profile").Text(), "user1@example.com")
  69. setting.UI.ShowUserEmail = showUserEmail
  70. }
  71. func TestSettingLandingPage(t *testing.T) {
  72. defer tests.PrepareTestEnv(t)()
  73. landingPage := setting.LandingPageURL
  74. setting.LandingPageURL = setting.LandingPageHome
  75. req := NewRequest(t, "GET", "/")
  76. MakeRequest(t, req, http.StatusOK)
  77. setting.LandingPageURL = setting.LandingPageExplore
  78. req = NewRequest(t, "GET", "/")
  79. resp := MakeRequest(t, req, http.StatusSeeOther)
  80. assert.Equal(t, "/explore", resp.Header().Get("Location"))
  81. setting.LandingPageURL = setting.LandingPageOrganizations
  82. req = NewRequest(t, "GET", "/")
  83. resp = MakeRequest(t, req, http.StatusSeeOther)
  84. assert.Equal(t, "/explore/organizations", resp.Header().Get("Location"))
  85. setting.LandingPageURL = setting.LandingPageLogin
  86. req = NewRequest(t, "GET", "/")
  87. resp = MakeRequest(t, req, http.StatusSeeOther)
  88. assert.Equal(t, "/user/login", resp.Header().Get("Location"))
  89. setting.LandingPageURL = landingPage
  90. }