| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-12 02:26:28 +08:00
										 |  |  | namespace BookStack\App; | 
					
						
							| 
									
										
										
										
											2018-12-17 04:44:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-17 23:20:21 +08:00
										 |  |  | use BookStack\Translation\LocaleDefinition; | 
					
						
							| 
									
										
										
										
											2023-09-02 22:11:42 +08:00
										 |  |  | use BookStack\Users\Models\User; | 
					
						
							| 
									
										
										
										
											2018-12-17 04:44:57 +08:00
										 |  |  | use Illuminate\Bus\Queueable; | 
					
						
							|  |  |  | use Illuminate\Contracts\Queue\ShouldQueue; | 
					
						
							|  |  |  | use Illuminate\Notifications\Messages\MailMessage; | 
					
						
							|  |  |  | use Illuminate\Notifications\Notification; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-02 22:11:42 +08:00
										 |  |  | abstract class MailNotification extends Notification implements ShouldQueue | 
					
						
							| 
									
										
										
										
											2018-12-17 04:44:57 +08:00
										 |  |  | { | 
					
						
							|  |  |  |     use Queueable; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-02 22:11:42 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Get the mail representation of the notification. | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     abstract public function toMail(User $notifiable): MailMessage; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-17 04:44:57 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Get the notification's channels. | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |      * @param mixed $notifiable | 
					
						
							|  |  |  |      * | 
					
						
							| 
									
										
										
										
											2018-12-17 04:44:57 +08:00
										 |  |  |      * @return array|string | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function via($notifiable) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return ['mail']; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Create a new mail message. | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2023-09-17 23:20:21 +08:00
										 |  |  |     protected function newMailMessage(?LocaleDefinition $locale = null): MailMessage | 
					
						
							| 
									
										
										
										
											2018-12-17 04:44:57 +08:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2023-09-17 23:20:21 +08:00
										 |  |  |         $data = ['locale' => $locale ?? user()->getLocale()]; | 
					
						
							| 
									
										
										
										
											2023-09-02 22:11:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |         return (new MailMessage())->view([ | 
					
						
							| 
									
										
										
										
											2018-12-17 04:44:57 +08:00
										 |  |  |             'html' => 'vendor.notifications.email', | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |             'text' => 'vendor.notifications.email-plain', | 
					
						
							| 
									
										
										
										
											2023-09-02 22:11:42 +08:00
										 |  |  |         ], $data); | 
					
						
							| 
									
										
										
										
											2018-12-17 04:44:57 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-27 18:29:23 +08:00
										 |  |  | } |