diff --git a/app/Filament/Resources/Mailtemplates/MailtemplateResource.php b/app/Filament/Resources/Mailtemplates/MailtemplateResource.php new file mode 100644 index 0000000..262406a --- /dev/null +++ b/app/Filament/Resources/Mailtemplates/MailtemplateResource.php @@ -0,0 +1,48 @@ + ListMailtemplates::route('/'), + 'create' => CreateMailtemplate::route('/create'), + 'edit' => EditMailtemplate::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Mailtemplates/Pages/CreateMailtemplate.php b/app/Filament/Resources/Mailtemplates/Pages/CreateMailtemplate.php new file mode 100644 index 0000000..e61ee68 --- /dev/null +++ b/app/Filament/Resources/Mailtemplates/Pages/CreateMailtemplate.php @@ -0,0 +1,11 @@ +components([ + GazeBanner::make() + ->pollTimer(10) + ->hideOnCreate(), + TextInput::make('title') + ->required() + ->columnSpanFull(), + TextInput::make('type') + ->required() + ->columnSpanFull(), + MarkdownEditor::make('content') + ->required() + ->columnSpanFull(), + ]); + } +} diff --git a/app/Filament/Resources/Mailtemplates/Tables/MailtemplatesTable.php b/app/Filament/Resources/Mailtemplates/Tables/MailtemplatesTable.php new file mode 100644 index 0000000..d027134 --- /dev/null +++ b/app/Filament/Resources/Mailtemplates/Tables/MailtemplatesTable.php @@ -0,0 +1,40 @@ +columns([ + TextColumn::make('title') + ->searchable(), + TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + // + ]) + ->recordActions([ + EditAction::make(), + ]) + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), + ]), + ]); + } +} diff --git a/app/Http/Controllers/MailtemplateController.php b/app/Http/Controllers/MailtemplateController.php new file mode 100644 index 0000000..8624be4 --- /dev/null +++ b/app/Http/Controllers/MailtemplateController.php @@ -0,0 +1,65 @@ +title = $data[0]->title; + $this->type = $data[0]->type; + $this->content = $data[0]->content; + $this->name = $participant->first_name; + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + return new Envelope( + subject: mb_decode_mimeheader($this->title), + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + return new Content( + view: 'mail.lan', + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/app/Models/Mailtemplate.php b/app/Models/Mailtemplate.php new file mode 100644 index 0000000..f92f733 --- /dev/null +++ b/app/Models/Mailtemplate.php @@ -0,0 +1,14 @@ +id(); + $table->string('title'); + $table->string('type'); + $table->longText('content'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('mailtemplates'); + } +}; diff --git a/resources/views/mail/lan.blade.php b/resources/views/mail/lan.blade.php new file mode 100644 index 0000000..d46a1a0 --- /dev/null +++ b/resources/views/mail/lan.blade.php @@ -0,0 +1,5 @@ +
+

{{$title}}

+

{{$type}} {{$name}}

+
{{ $content }}
+