diff --git a/internal/webserver/controller/user/update.go b/internal/webserver/controller/user/update.go index 764625b..b3cedd2 100644 --- a/internal/webserver/controller/user/update.go +++ b/internal/webserver/controller/user/update.go @@ -39,7 +39,7 @@ func (u *Controller) Update(c *fiber.Ctx) error { } func (u *Controller) updateUserData(c *fiber.Ctx, user *model.User, session model.Session) error { - user.Name = c.FormValue("name") + user.Name = strings.TrimSpace(c.FormValue("name")) user.Username = strings.ToLower(c.FormValue("username")) user.Email = c.FormValue("email") user.SendToEmail = c.FormValue("send-to-email") @@ -120,7 +120,7 @@ func (u *Controller) validate(c *fiber.Ctx, user *model.User, session model.Sess func (u *Controller) usernameExists(c *fiber.Ctx, session model.Session) (bool, error) { user, err := u.repository.FindByUsername(c.FormValue("username")) if err != nil { - return true, fiber.ErrInternalServerError + return true, err } if user != nil && (session.Role == model.RoleAdmin && user.Uuid == c.FormValue("id")) { return false, nil diff --git a/internal/webserver/embedded/css/display.css b/internal/webserver/embedded/css/display.css index 4c5dcf3..66bfc86 100644 --- a/internal/webserver/embedded/css/display.css +++ b/internal/webserver/embedded/css/display.css @@ -133,3 +133,7 @@ a.collapse-control.collapsed:after { .zoomable img:hover { transform: scale(1.1); } + +.zoomable + .card-img-overlay { + bottom: auto !important; +} diff --git a/internal/webserver/embedded/js/cover.js b/internal/webserver/embedded/js/cover.js index bb823e8..e83580d 100644 --- a/internal/webserver/embedded/js/cover.js +++ b/internal/webserver/embedded/js/cover.js @@ -3,7 +3,8 @@ document.querySelectorAll(".cover").forEach(function(elem) { elem.addEventListener("error", () => { elem.onerror = null + const coverTitleId = elem.getAttribute("data-cover-title-id") elem.parentNode.children[0].srcset = elem.src - elem.parentNode.parentNode.children[1].classList.remove('d-none') + document.getElementById(coverTitleId).classList.remove('d-none') }) }) diff --git a/internal/webserver/embedded/views/partials/cover.html b/internal/webserver/embedded/views/partials/cover.html index 952c777..ffd6bbe 100644 --- a/internal/webserver/embedded/views/partials/cover.html +++ b/internal/webserver/embedded/views/partials/cover.html @@ -3,10 +3,10 @@
{{end}} - {{t .Lang "\"%s\" cover" .Document.Title}} + {{t .Lang "\"%s\" cover" .Document.Title}} {{if not .DisableCoverMainLink}}
{{end}} -
+
{{.Document.Title}}
{{if .Document.Authors}}

diff --git a/internal/webserver/embedded/views/partials/latest-highlights.html b/internal/webserver/embedded/views/partials/latest-highlights.html index 89cbff0..0b6d7cd 100644 --- a/internal/webserver/embedded/views/partials/latest-highlights.html +++ b/internal/webserver/embedded/views/partials/latest-highlights.html @@ -1,4 +1,4 @@ -

+

{{t .Lang "Your highlights" }}

diff --git a/internal/webserver/user_management_test.go b/internal/webserver/user_management_test.go index b58c26f..d48f3d9 100644 --- a/internal/webserver/user_management_test.go +++ b/internal/webserver/user_management_test.go @@ -106,7 +106,7 @@ func TestUserManagement(t *testing.T) { mustReturnStatus(response, fiber.StatusOK, t) newUserData := url.Values{ - "name": {"New user"}, + "name": {"New user "}, // Extra spaces to test trimming "username": {"new"}, "email": {"new@example.com"}, "send-to-email": {"send@example.com"}, @@ -123,7 +123,12 @@ func TestUserManagement(t *testing.T) { mustRedirectToUsersList(response, t) var totalUsers int64 - db.Take(&[]model.User{}).Count(&totalUsers) + var user model.User + db.Last(&user).Count(&totalUsers) + + if user.Name != "New user" { + t.Errorf("Expected name to be 'New user', got %s", user.Name) + } if totalUsers != 3 { t.Errorf("Expected 3 users in the users list, got %d", totalUsers) @@ -234,7 +239,7 @@ func TestUserManagement(t *testing.T) { t.Run("Try to update the user in session", func(t *testing.T) { reset() - regularUserData.Set("name", "Updated regular user") + regularUserData.Set("name", "Updated regular user ") // Extra spaces to test trimming regularUserData.Set("id", regularUser.Uuid) response, err := getRequest(regularUserCookie, app, fmt.Sprintf("/users/%s", regularUser.Username), t)