mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-05-04 18:08:46 +03:00
To centralise logic to be more consistent, and to have smarter logic which avoids just following newline format from input, preventing smushing HTML elements (like list elements) next to eachother
38 lines
1.6 KiB
PHP
38 lines
1.6 KiB
PHP
<?php
|
|
|
|
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 CommentMentionNotification extends BaseActivityNotification
|
|
{
|
|
public function toMail(User $notifiable): MailMessage
|
|
{
|
|
/** @var Comment $comment */
|
|
$comment = $this->detail;
|
|
/** @var Page $page */
|
|
$page = $comment->entity;
|
|
|
|
$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') => $comment->getPlainText(),
|
|
]);
|
|
|
|
return $this->newMailMessage($locale)
|
|
->subject($locale->trans('notifications.comment_mention_subject', ['pageName' => $page->getShortName()]))
|
|
->line($locale->trans('notifications.comment_mention_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));
|
|
}
|
|
}
|