Added additional route for notifications view

This commit is contained in:
Eduard Urbach 2018-03-01 22:52:01 +01:00
parent 08b7a0e75c
commit 40ea58dffe
4 changed files with 20 additions and 6 deletions

View File

@ -162,6 +162,7 @@ func Configure(app *aero.Application) {
l.Page("/user/:nick/animelist/dropped", animelist.FilterByStatus(arn.AnimeListStatusDropped))
l.Page("/user/:nick/animelist/anime/:id", animelistitem.Get)
l.Page("/user/:nick/recommended/anime", recommended.Anime)
l.Page("/user/:nick/notifications", notifications.All)
// Anime list
l.Page("/animelist/watching", home.FilterByStatus(arn.AnimeListStatusWatching))

View File

@ -4,6 +4,8 @@ import (
"net/http"
"sort"
"github.com/animenotifier/arn"
"github.com/aerogo/aero"
"github.com/animenotifier/notify.moe/components"
"github.com/animenotifier/notify.moe/utils"
@ -19,7 +21,16 @@ func All(ctx *aero.Context) string {
return ctx.Error(http.StatusBadRequest, "Not logged in", nil)
}
notifications := user.Notifications().Notifications()
var viewUser *arn.User
nick := ctx.Get("nick")
if nick != "" {
viewUser, _ = arn.GetUserByNick(nick)
} else {
viewUser = user
}
notifications := viewUser.Notifications().Notifications()
// Sort by date
sort.Slice(notifications, func(i, j int) bool {
@ -31,5 +42,5 @@ func All(ctx *aero.Context) string {
notifications = notifications[:maxNotifications]
}
return ctx.HTML(components.Notifications(notifications, user))
return ctx.HTML(components.Notifications(notifications, viewUser, user))
}

View File

@ -1,7 +1,8 @@
component Notifications(notifications []*arn.Notification, user *arn.User)
component Notifications(notifications []*arn.Notification, viewUser *arn.User, user *arn.User)
h1 Notifications
.corner-buttons
if user.ID == viewUser.ID
button.action(data-action="markNotificationsAsSeen", data-trigger="click")
Icon("check")
span Mark all as seen

View File

@ -268,6 +268,7 @@ var routeTests = map[string][]string{
"/import/kitsu/animelist": nil,
"/import/kitsu/animelist/finish": nil,
"/notifications": nil,
"/user/:nick/notifications": nil,
"/api/test/notification": nil,
"/api/paypal/payment/create": nil,
"/api/userfollows/:id/get/:item": nil,