diff --git a/pages/index.go b/pages/index.go index 18217bd5..efebf63d 100644 --- a/pages/index.go +++ b/pages/index.go @@ -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)) diff --git a/pages/notifications/notifications.go b/pages/notifications/notifications.go index f56ac0bf..496cb3cb 100644 --- a/pages/notifications/notifications.go +++ b/pages/notifications/notifications.go @@ -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)) } diff --git a/pages/notifications/notifications.pixy b/pages/notifications/notifications.pixy index 3733aee2..2b907406 100644 --- a/pages/notifications/notifications.pixy +++ b/pages/notifications/notifications.pixy @@ -1,10 +1,11 @@ -component Notifications(notifications []*arn.Notification, user *arn.User) +component Notifications(notifications []*arn.Notification, viewUser *arn.User, user *arn.User) h1 Notifications .corner-buttons - button.action(data-action="markNotificationsAsSeen", data-trigger="click") - Icon("check") - span Mark all as seen + if user.ID == viewUser.ID + button.action(data-action="markNotificationsAsSeen", data-trigger="click") + Icon("check") + span Mark all as seen .notifications-container .notifications diff --git a/tests.go b/tests.go index 64c3d452..27767288 100644 --- a/tests.go +++ b/tests.go @@ -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,