mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-07-31 15:24:31 +03:00
Notifications: Review of PR to include path path #4629
- Merged book and chapter name items to a single page path list item which has links to parent page/chapter. - Added permission filtering to page path elements. - Added page path to also be on comment notifications. - Updated testing to cover. - Added new Message Line objects to support. Done during review of #4629
This commit is contained in:
@ -2,9 +2,9 @@
|
||||
|
||||
namespace BookStack\Activity\Notifications\Messages;
|
||||
|
||||
use BookStack\Activity\Notifications\MessageParts\EntityLinkMessageLine;
|
||||
use BookStack\Activity\Notifications\MessageParts\ListMessageLine;
|
||||
use BookStack\Entities\Models\Page;
|
||||
use BookStack\Entities\Models\Chapter;
|
||||
use BookStack\Users\Models\User;
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
|
||||
@ -14,32 +14,19 @@ class PageCreationNotification extends BaseActivityNotification
|
||||
{
|
||||
/** @var Page $page */
|
||||
$page = $this->detail;
|
||||
$book = $page->book;
|
||||
$chapterId = $page->chapter_id;
|
||||
$chapter = $chapterId ? Chapter::find($chapterId) : null;
|
||||
|
||||
$locale = $notifiable->getLocale();
|
||||
|
||||
$listMessageData = [
|
||||
$locale->trans('notifications.detail_page_name') => $page->name,
|
||||
'' => '',
|
||||
];
|
||||
|
||||
if ($chapter) {
|
||||
$listMessageData += [
|
||||
$locale->trans('notifications.detail_chapter_name') => $chapter->name,
|
||||
];
|
||||
}
|
||||
|
||||
$listMessageData += [
|
||||
$locale->trans('notifications.detail_book_name') => $book->name,
|
||||
$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_created_by') => $this->user->name,
|
||||
];
|
||||
]);
|
||||
|
||||
return $this->newMailMessage($locale)
|
||||
->subject($locale->trans('notifications.new_page_subject', ['pageName' => $page->getShortName()]))
|
||||
->line($locale->trans('notifications.new_page_intro', ['appName' => setting('app-name')], $locale))
|
||||
->line(new ListMessageLine($listMessageData))
|
||||
->line($locale->trans('notifications.new_page_intro', ['appName' => setting('app-name')]))
|
||||
->line(new ListMessageLine($listLines))
|
||||
->action($locale->trans('notifications.action_view_page'), $page->getUrl())
|
||||
->line($this->buildReasonFooterLine($locale));
|
||||
}
|
||||
|
Reference in New Issue
Block a user