1
1
mirror of https://github.com/go-gitea/gitea synced 2025-07-22 18:28:37 +00:00

Prepare common tmpl functions in a middleware (#33957)

Fix the TODO in `routers/web/web.go`, and avoid the unnecessary
`GetActiveStopwatch` SQL query in non-related route handlers.
This commit is contained in:
wxiaoguang
2025-03-25 14:17:58 +08:00
committed by GitHub
parent 32258e0f22
commit 41c946a66f
6 changed files with 91 additions and 80 deletions

View File

@@ -4,7 +4,6 @@
package user
import (
goctx "context"
"errors"
"fmt"
"net/http"
@@ -35,32 +34,6 @@ const (
tplNotificationSubscriptions templates.TplName = "user/notification/notification_subscriptions"
)
// GetNotificationCount is the middleware that sets the notification count in the context
func GetNotificationCount(ctx *context.Context) {
if strings.HasPrefix(ctx.Req.URL.Path, "/api") {
return
}
if !ctx.IsSigned {
return
}
ctx.Data["NotificationUnreadCount"] = func() int64 {
count, err := db.Count[activities_model.Notification](ctx, activities_model.FindNotificationOptions{
UserID: ctx.Doer.ID,
Status: []activities_model.NotificationStatus{activities_model.NotificationStatusUnread},
})
if err != nil {
if err != goctx.Canceled {
log.Error("Unable to GetNotificationCount for user:%-v: %v", ctx.Doer, err)
}
return -1
}
return count
}
}
// Notifications is the notifications page
func Notifications(ctx *context.Context) {
getNotifications(ctx)