]> BookStack Code Mirror - bookstack/blobdiff - app/Activity/Notifications/Messages/CommentCreationNotification.php
Layout: Converted tri-layout component to ts
[bookstack] / app / Activity / Notifications / Messages / CommentCreationNotification.php
index ce358724baaf889053516f8733e7ca6e96cedd5d..30d0ffa2be4c280cea5af66a004106fd5f062054 100644 (file)
@@ -3,28 +3,35 @@
 namespace BookStack\Activity\Notifications\Messages;
 
 use BookStack\Activity\Models\Comment;
+use BookStack\Activity\Notifications\MessageParts\EntityLinkMessageLine;
 use BookStack\Activity\Notifications\MessageParts\ListMessageLine;
 use BookStack\Entities\Models\Page;
+use BookStack\Users\Models\User;
 use Illuminate\Notifications\Messages\MailMessage;
 
 class CommentCreationNotification extends BaseActivityNotification
 {
-    public function toMail(mixed $notifiable): MailMessage
+    public function toMail(User $notifiable): MailMessage
     {
         /** @var Comment $comment */
         $comment = $this->detail;
         /** @var Page $page */
         $page = $comment->entity;
 
-        return (new MailMessage())
-            ->subject(trans('notifications.new_comment_subject', ['pageName' => $page->getShortName()]))
-            ->line(trans('notifications.new_comment_intro', ['appName' => setting('app-name')]))
-            ->line(new ListMessageLine([
-                trans('notifications.detail_page_name') => $page->name,
-                trans('notifications.detail_commenter') => $this->user->name,
-                trans('notifications.detail_comment') => strip_tags($comment->html),
-            ]))
-            ->action(trans('notifications.action_view_comment'), $page->getUrl('#comment' . $comment->local_id))
-            ->line($this->buildReasonFooterLine());
+        $locale = $notifiable->getLocale();
+
+        $listLines = array_filter([
+            $locale->trans('notifications.detail_page_name') => new EntityLinkMessageLine($page),
+            $locale->trans('notifications.detail_page_path') => $this->buildPagePathLine($page, $notifiable),
+            $locale->trans('notifications.detail_commenter') => $this->user->name,
+            $locale->trans('notifications.detail_comment') => strip_tags($comment->html),
+        ]);
+
+        return $this->newMailMessage($locale)
+            ->subject($locale->trans('notifications.new_comment_subject', ['pageName' => $page->getShortName()]))
+            ->line($locale->trans('notifications.new_comment_intro', ['appName' => setting('app-name')]))
+            ->line(new ListMessageLine($listLines))
+            ->action($locale->trans('notifications.action_view_comment'), $page->getUrl('#comment' . $comment->local_id))
+            ->line($this->buildReasonFooterLine($locale));
     }
 }