1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-08-09 10:22:51 +03:00

Notifications: Cleaned up mails, added debounce for updates

- Updated mail notification design to be a bit prettier, and extracted
  text to new lang file for translation.
- Added debounce logic for page update notifications.
- Fixed watch options not being filtered to current user.
This commit is contained in:
Dan Brown
2023-08-15 14:39:39 +01:00
parent 371779205a
commit 615741af9d
17 changed files with 152 additions and 70 deletions

View File

@@ -2,6 +2,7 @@
namespace BookStack\Activity\Notifications\Handlers;
use BookStack\Activity\Models\Activity;
use BookStack\Activity\Models\Comment;
use BookStack\Activity\Models\Loggable;
use BookStack\Activity\Notifications\Messages\CommentCreationNotification;
@@ -12,7 +13,7 @@ use BookStack\Users\Models\User;
class CommentCreationNotificationHandler extends BaseNotificationHandler
{
public function handle(string $activityType, Loggable|string $detail, User $user): void
public function handle(Activity $activity, Loggable|string $detail, User $user): void
{
if (!($detail instanceof Comment)) {
throw new \InvalidArgumentException("Detail for comment creation notifications must be a comment");
@@ -24,10 +25,10 @@ class CommentCreationNotificationHandler extends BaseNotificationHandler
$watcherIds = $watchers->getWatcherUserIds();
// Page owner if user preferences allow
if (!$watchers->isUserIgnoring($detail->owned_by) && $detail->ownedBy) {
$userNotificationPrefs = new UserNotificationPreferences($detail->ownedBy);
if (!$watchers->isUserIgnoring($detail->created_by) && $detail->createdBy) {
$userNotificationPrefs = new UserNotificationPreferences($detail->createdBy);
if ($userNotificationPrefs->notifyOnOwnPageComments()) {
$watcherIds[] = $detail->owned_by;
$watcherIds[] = $detail->created_by;
}
}
@@ -40,6 +41,6 @@ class CommentCreationNotificationHandler extends BaseNotificationHandler
}
}
$this->sendNotificationToUserIds(CommentCreationNotification::class, $watcherIds, $user, $page);
$this->sendNotificationToUserIds(CommentCreationNotification::class, $watcherIds, $user, $detail, $page);
}
}