diff options
author | Andrey Nering <andrey.nering@gmail.com> | 2016-12-30 16:49:54 -0200 |
---|---|---|
committer | Andrey Nering <andrey.nering@gmail.com> | 2016-12-30 16:51:24 -0200 |
commit | 6069abe5fdf49cbd9a80c9df0c136587fc8601b5 (patch) | |
tree | 01784d45072d1882ae5b4cb5208a802251e537ed /routers | |
parent | 42904cb98a4b8e7accdac90bc9f06347cb0521f7 (diff) | |
download | gitea-6069abe5fdf49cbd9a80c9df0c136587fc8601b5.tar.gz gitea-6069abe5fdf49cbd9a80c9df0c136587fc8601b5.zip |
Notifications - Step 2
Diffstat (limited to 'routers')
-rw-r--r-- | routers/user/notification.go | 54 | ||||
-rw-r--r-- | routers/user/setting.go | 1 |
2 files changed, 54 insertions, 1 deletions
diff --git a/routers/user/notification.go b/routers/user/notification.go new file mode 100644 index 0000000000..13d2d70f8e --- /dev/null +++ b/routers/user/notification.go @@ -0,0 +1,54 @@ +package user + +import ( + "fmt" + + "code.gitea.io/gitea/models" + "code.gitea.io/gitea/modules/base" + "code.gitea.io/gitea/modules/context" +) + +const ( + tplNotification base.TplName = "user/notification/notification" +) + +// GetNotificationCount is the middleware that sets the notification count in the context +func GetNotificationCount(c *context.Context) { + if !c.IsSigned { + return + } + + count, err := models.GetNotificationUnreadCount(c.User) + if err != nil { + c.Handle(500, "GetNotificationCount", err) + return + } + + c.Data["NotificationUnreadCount"] = count +} + +// Notifications is the notifications page +func Notifications(c *context.Context) { + var status models.NotificationStatus + switch c.Query("status") { + case "read": + status = models.NotificationStatusRead + default: + status = models.NotificationStatusUnread + } + + notifications, err := models.NotificationsForUser(c.User, status) + if err != nil { + c.Handle(500, "ErrNotificationsForUser", err) + return + } + + title := "Notifications" + if count := len(notifications); count > 0 { + title = fmt.Sprintf("(%d) %s", count, title) + } + c.Data["Title"] = title + c.Data["Status"] = status + c.Data["Notifications"] = notifications + c.HTML(200, tplNotification) +} diff --git a/routers/user/setting.go b/routers/user/setting.go index e078f8c17a..a465b0cd8c 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -29,7 +29,6 @@ const ( tplSettingsSocial base.TplName = "user/settings/social" tplSettingsApplications base.TplName = "user/settings/applications" tplSettingsDelete base.TplName = "user/settings/delete" - tplNotification base.TplName = "user/notification" tplSecurity base.TplName = "user/security" ) |