From 98335324ad5c3df1761f7ad68caafbdafded3ce7 Mon Sep 17 00:00:00 2001 From: Sergio Vera Date: Wed, 25 Oct 2023 20:21:18 +0200 Subject: [PATCH 1/2] Bugfixes --- internal/webserver/controllers.go | 10 +++++++--- internal/webserver/embedded/translations/es.yml | 1 + internal/webserver/embedded/translations/fr.yml | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/internal/webserver/controllers.go b/internal/webserver/controllers.go index 79e94a5..f0b6c88 100644 --- a/internal/webserver/controllers.go +++ b/internal/webserver/controllers.go @@ -59,6 +59,8 @@ func SetupControllers(cfg Config, db *gorm.DB, metadataReaders map[string]metada emailSendingConfigured = false } + supportedLanguages := getSupportedLanguages() + return Controllers{ Auth: authController, Users: usersController, @@ -101,10 +103,11 @@ func SetupControllers(cfg Config, db *gorm.DB, metadataReaders map[string]metada TokenLookup: "cookie:coreander", ErrorHandler: func(c *fiber.Ctx, err error) error { return c.Status(fiber.StatusForbidden).Render("auth/login", fiber.Map{ - "Lang": chooseBestLanguage(c, getSupportedLanguages()), + "Lang": chooseBestLanguage(c, supportedLanguages), "Title": "Login", "Version": c.App().Config().AppName, "EmailSendingConfigured": emailSendingConfigured, + "SupportedLanguages": supportedLanguages, }, "layout") }, }), @@ -116,10 +119,11 @@ func SetupControllers(cfg Config, db *gorm.DB, metadataReaders map[string]metada err = c.Next() if cfg.RequireAuth { return c.Status(fiber.StatusForbidden).Render("auth/login", fiber.Map{ - "Lang": chooseBestLanguage(c, getSupportedLanguages()), + "Lang": chooseBestLanguage(c, supportedLanguages), "Title": "Login", "Version": c.App().Config().AppName, "EmailSendingConfigured": emailSendingConfigured, + "SupportedLanguages": supportedLanguages, }, "layout") } return err @@ -139,7 +143,7 @@ func SetupControllers(cfg Config, db *gorm.DB, metadataReaders map[string]metada err = c.Status(code).Render( fmt.Sprintf("errors/%d", code), fiber.Map{ - "Lang": chooseBestLanguage(c, getSupportedLanguages()), + "Lang": chooseBestLanguage(c, supportedLanguages), "Title": "Coreander", "Session": jwtclaimsreader.SessionData(c), "Version": c.App().Config().AppName, diff --git a/internal/webserver/embedded/translations/es.yml b/internal/webserver/embedded/translations/es.yml index f0255f7..8a7b206 100644 --- a/internal/webserver/embedded/translations/es.yml +++ b/internal/webserver/embedded/translations/es.yml @@ -103,6 +103,7 @@ "Dark": "Oscuro" "Auto": "Auto" "Highlight": "Destacar" +"Highlights": "Destacados" "%s highlights": "Destacados de %s" "Remove from highlights": "Quitar de destacados" "%d highlighted documents": "%d documentos destacados" diff --git a/internal/webserver/embedded/translations/fr.yml b/internal/webserver/embedded/translations/fr.yml index 7dc4147..3adccdb 100644 --- a/internal/webserver/embedded/translations/fr.yml +++ b/internal/webserver/embedded/translations/fr.yml @@ -103,6 +103,7 @@ "Dark": "Noir" "Auto": "Auto" "Highlight": "Ajouter aux favoris" +"Highlights": "Favoris" "%s highlights": "Favoris du %s" "Remove from highlights": "Retirer des favoris" "%d highlighted documents": "%d documents favoris" From 2e5ac53617f9df9fb68022823ba5e1445b01a999 Mon Sep 17 00:00:00 2001 From: Sergio Vera Date: Wed, 25 Oct 2023 22:19:05 +0200 Subject: [PATCH 2/2] Use request local var for lang --- internal/controller/auth.go | 36 ++++++++++++------------------- internal/controller/document.go | 3 --- internal/controller/highlights.go | 1 - internal/controller/reader.go | 3 --- internal/controller/search.go | 2 -- internal/controller/users.go | 15 ------------- internal/webserver/routes.go | 1 + 7 files changed, 15 insertions(+), 46 deletions(-) diff --git a/internal/controller/auth.go b/internal/controller/auth.go index f840b53..3ba79b9 100644 --- a/internal/controller/auth.go +++ b/internal/controller/auth.go @@ -82,9 +82,7 @@ func (a *Auth) Login(c *fiber.Ctx) error { } return c.Render("auth/login", fiber.Map{ - "Lang": c.Params("lang"), "Title": "Login", - "Version": c.App().Config().AppName, "Message": msg, "EmailSendingConfigured": emailSendingConfigured, }, "layout") @@ -105,9 +103,8 @@ func (a *Auth) SignIn(c *fiber.Ctx) error { if user.Password != model.Hash(c.FormValue("password")) { return c.Status(fiber.StatusUnauthorized).Render("auth/login", fiber.Map{ - "Title": "Login", - "Error": "Wrong email or password", - "Version": c.App().Config().AppName, + "Title": "Login", + "Error": "Wrong email or password", }, "layout") } @@ -164,9 +161,8 @@ func (a *Auth) Recover(c *fiber.Ctx) error { } return c.Render("auth/recover", fiber.Map{ - "Title": "Recover password", - "Version": c.App().Config().AppName, - "Errors": map[string]string{}, + "Title": "Recover password", + "Errors": map[string]string{}, }, "layout") } @@ -177,9 +173,8 @@ func (a *Auth) Request(c *fiber.Ctx) error { if _, err := mail.ParseAddress(c.FormValue("email")); err != nil { return c.Render("auth/recover", fiber.Map{ - "Title": "Recover password", - "Version": c.App().Config().AppName, - "Errors": map[string]string{"email": "Incorrect email address"}, + "Title": "Recover password", + "Errors": map[string]string{"email": "Incorrect email address"}, }, "layout") } @@ -211,9 +206,8 @@ func (a *Auth) Request(c *fiber.Ctx) error { } return c.Render("auth/request", fiber.Map{ - "Title": "Recover password", - "Version": c.App().Config().AppName, - "Errors": map[string]string{}, + "Title": "Recover password", + "Errors": map[string]string{}, }, "layout") } @@ -223,10 +217,9 @@ func (a *Auth) EditPassword(c *fiber.Ctx) error { } return c.Render("auth/edit-password", fiber.Map{ - "Title": "Reset password", - "Version": c.App().Config().AppName, - "Uuid": c.Query("id"), - "Errors": map[string]string{}, + "Title": "Reset password", + "Uuid": c.Query("id"), + "Errors": map[string]string{}, }, "layout") } @@ -243,10 +236,9 @@ func (a *Auth) UpdatePassword(c *fiber.Ctx) error { if errs = user.ConfirmPassword(c.FormValue("confirm-password"), a.minPasswordLength, errs); len(errs) > 0 { return c.Render("auth/edit-password", fiber.Map{ - "Title": "Reset password", - "Version": c.App().Config().AppName, - "Uuid": c.FormValue("id"), - "Errors": errs, + "Title": "Reset password", + "Uuid": c.FormValue("id"), + "Errors": errs, }, "layout") } diff --git a/internal/controller/document.go b/internal/controller/document.go index 6566061..b89a8ad 100644 --- a/internal/controller/document.go +++ b/internal/controller/document.go @@ -21,7 +21,6 @@ func Document(c *fiber.Ctx, libraryPath string, sender Sender, idx IdxReader, wo emailSendingConfigured = false } - lang := c.Params("lang") session := jwtclaimsreader.SessionData(c) if session.WordsPerMinute > 0 { wordsPerMinute = session.WordsPerMinute @@ -63,7 +62,6 @@ func Document(c *fiber.Ctx, libraryPath string, sender Sender, idx IdxReader, wo } return c.Render("document", fiber.Map{ - "Lang": lang, "Title": title, "Document": document, "EmailSendingConfigured": emailSendingConfigured, @@ -73,7 +71,6 @@ func Document(c *fiber.Ctx, libraryPath string, sender Sender, idx IdxReader, wo "SameAuthors": sameAuthors, "SameSubjects": sameSubjects, "WordsPerMinute": wordsPerMinute, - "Version": c.App().Config().AppName, }, "layout") } diff --git a/internal/controller/highlights.go b/internal/controller/highlights.go index 4f459a3..be8773d 100644 --- a/internal/controller/highlights.go +++ b/internal/controller/highlights.go @@ -73,7 +73,6 @@ func (h *Highlights) Highlights(c *fiber.Ctx) error { "Total": highlights.TotalHits, "Paginator": pagination(model.MaxPagesNavigator, highlights.TotalPages, page, nil), "Title": "Highlights", - "Version": c.App().Config().AppName, "EmailSendingConfigured": emailSendingConfigured, "EmailFrom": h.sender.From(), "Session": session, diff --git a/internal/controller/reader.go b/internal/controller/reader.go index 602cc73..400c1c4 100644 --- a/internal/controller/reader.go +++ b/internal/controller/reader.go @@ -10,8 +10,6 @@ import ( ) func DocReader(c *fiber.Ctx, libraryPath string, idx IdxReader) error { - lang := c.Params("lang") - document, err := idx.Document(c.Params("slug")) if err != nil { fmt.Println(err) @@ -33,7 +31,6 @@ func DocReader(c *fiber.Ctx, libraryPath string, idx IdxReader) error { title = fmt.Sprintf("%s - %s | Coreander", authors, document.Title) } return c.Render(template, fiber.Map{ - "Lang": lang, "Title": title, "Author": strings.Join(document.Authors, ", "), "Description": document.Description, diff --git a/internal/controller/search.go b/internal/controller/search.go index 7f0d892..e24f023 100644 --- a/internal/controller/search.go +++ b/internal/controller/search.go @@ -60,7 +60,6 @@ func Search(c *fiber.Ctx, idx IdxReader, sender Sender, wordsPerMinute float64, "Total": searchResults.TotalHits, "Paginator": pagination(model.MaxPagesNavigator, searchResults.TotalPages, searchResults.Page, map[string]string{"search": keywords}), "Title": "Search results", - "Version": c.App().Config().AppName, "EmailSendingConfigured": emailSendingConfigured, "EmailFrom": sender.From(), "Session": session, @@ -75,7 +74,6 @@ func Search(c *fiber.Ctx, idx IdxReader, sender Sender, wordsPerMinute float64, return c.Render("index", fiber.Map{ "Count": count, "Title": "Coreander", - "Version": c.App().Config().AppName, "Session": session, }, "layout") } diff --git a/internal/controller/users.go b/internal/controller/users.go index b22e19e..cee1b05 100644 --- a/internal/controller/users.go +++ b/internal/controller/users.go @@ -59,12 +59,10 @@ func (u *Users) List(c *fiber.Ctx) error { users, _ := u.repository.List(page, model.ResultsPerPage) return c.Render("users/index", fiber.Map{ - "Lang": c.Params("lang"), "Title": "Users", "Users": users, "Paginator": pagination(model.MaxPagesNavigator, totalPages, page, map[string]string{}), "Session": session, - "Version": c.App().Config().AppName, "Admins": u.repository.Admins(), }, "layout") } @@ -81,10 +79,8 @@ func (u *Users) New(c *fiber.Ctx) error { WordsPerMinute: u.wordsPerMinute, } return c.Render("users/new", fiber.Map{ - "Lang": c.Params("lang"), "Title": "Add user", "Session": session, - "Version": c.App().Config().AppName, "MinPasswordLength": u.minPasswordLength, "User": user, "Errors": map[string]string{}, @@ -118,7 +114,6 @@ func (u *Users) Create(c *fiber.Ctx) error { return c.Render("users/new", fiber.Map{ "Title": "Add user", "Session": session, - "Version": c.App().Config().AppName, "Errors": errs, "User": user, }, "layout") @@ -146,11 +141,9 @@ func (u *Users) Edit(c *fiber.Ctx) error { } return c.Render("users/edit", fiber.Map{ - "Lang": c.Params("lang"), "Title": "Edit user", "User": user, "Session": session, - "Version": c.App().Config().AppName, "MinPasswordLength": u.minPasswordLength, "Errors": map[string]string{}, }, "layout") @@ -180,11 +173,9 @@ func (u *Users) Update(c *fiber.Ctx) error { errs := user.Validate(u.minPasswordLength) if len(errs) > 0 { return c.Render("users/edit", fiber.Map{ - "Lang": c.Params("lang"), "Title": "Edit user", "User": user, "Session": session, - "Version": c.App().Config().AppName, "MinPasswordLength": u.minPasswordLength, "Errors": errs, }, "layout") @@ -195,11 +186,9 @@ func (u *Users) Update(c *fiber.Ctx) error { } return c.Render("users/edit", fiber.Map{ - "Lang": c.Params("lang"), "Title": "Edit user", "User": user, "Session": session, - "Version": c.App().Config().AppName, "MinPasswordLength": u.minPasswordLength, "Errors": errs, "Message": "Profile updated", @@ -226,11 +215,9 @@ func (u *Users) updatePassword(c *fiber.Ctx, session, user model.User) error { if errs = user.ConfirmPassword(c.FormValue("confirm-password"), u.minPasswordLength, errs); len(errs) > 0 { return c.Render("users/edit", fiber.Map{ - "Lang": c.Params("lang"), "Title": "Edit user", "User": user, "Session": session, - "Version": c.App().Config().AppName, "MinPasswordLength": u.minPasswordLength, "ActiveTab": "password", "Errors": errs, @@ -243,11 +230,9 @@ func (u *Users) updatePassword(c *fiber.Ctx, session, user model.User) error { } return c.Render("users/edit", fiber.Map{ - "Lang": c.Params("lang"), "Title": "Edit user", "User": user, "Session": session, - "Version": c.App().Config().AppName, "MinPasswordLength": u.minPasswordLength, "ActiveTab": "password", "Errors": errs, diff --git a/internal/webserver/routes.go b/internal/webserver/routes.go index 9512289..dcfe82d 100644 --- a/internal/webserver/routes.go +++ b/internal/webserver/routes.go @@ -32,6 +32,7 @@ func routes(app *fiber.App, controllers Controllers, supportedLanguages []string c.Locals("Lang", c.Params("lang")) c.Locals("SupportedLanguages", supportedLanguages) c.Locals("PathMinusLang", pathMinusLang) + c.Locals("Version", c.App().Config().AppName) return c.Next() })