]> BookStack Code Mirror - bookstack/blobdiff - app/Activity/Notifications/Messages/PageUpdateNotification.php
ZIP Imports: Added API examples, finished testing
[bookstack] / app / Activity / Notifications / Messages / PageUpdateNotification.php
index f29f50dde44ed0170557a97a50edb8a6ca55d71d..80ee378ccd60d6490a1e288d37f157bd3260638e 100644 (file)
@@ -2,28 +2,33 @@
 
 namespace BookStack\Activity\Notifications\Messages;
 
-use BookStack\Activity\Notifications\LinkedMailMessageLine;
+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 PageUpdateNotification extends BaseActivityNotification
 {
-    public function toMail(mixed $notifiable): MailMessage
+    public function toMail(User $notifiable): MailMessage
     {
         /** @var Page $page */
         $page = $this->detail;
 
-        return (new MailMessage())
-            ->subject("Updated Page: " . $page->getShortName())
-            ->line("A page has been updated in " . setting('app-name') . ':')
-            ->line("Page Name: " . $page->name)
-            ->line("Updated By: " . $this->user->name)
-            ->line("To prevent a mass of notifications, for a while you won't be sent notifications for further edits to this page by the same editor.")
-            ->action('View Page', $page->getUrl())
-            ->line(new LinkedMailMessageLine(
-                url('/preferences/notifications'),
-                'This notification was sent to you because :link cover this type of activity for this item.',
-                'your notification preferences',
-            ));
+        $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_updated_by') => $this->user->name,
+        ]);
+
+        return $this->newMailMessage($locale)
+            ->subject($locale->trans('notifications.updated_page_subject', ['pageName' => $page->getShortName()]))
+            ->line($locale->trans('notifications.updated_page_intro', ['appName' => setting('app-name')]))
+            ->line(new ListMessageLine($listLines))
+            ->line($locale->trans('notifications.updated_page_debounce'))
+            ->action($locale->trans('notifications.action_view_page'), $page->getUrl())
+            ->line($this->buildReasonFooterLine($locale));
     }
 }