From 91e9f49d858a1673778fd065ab793859d8007317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anna-Sara=20S=C3=A9lea?= Date: Sat, 15 Nov 2025 17:08:42 +0100 Subject: [PATCH] Mailtemplates resource --- .../Mailtemplates/MailtemplateResource.php | 48 ++++++++++++++ .../Pages/CreateMailtemplate.php | 11 ++++ .../Mailtemplates/Pages/EditMailtemplate.php | 19 ++++++ .../Mailtemplates/Pages/ListMailtemplates.php | 19 ++++++ .../Schemas/MailtemplateForm.php | 32 +++++++++ .../Tables/MailtemplatesTable.php | 40 ++++++++++++ .../Controllers/MailtemplateController.php | 65 +++++++++++++++++++ app/Mail/LanMail.php | 61 +++++++++++++++++ app/Models/Mailtemplate.php | 14 ++++ ...1_02_115606_create_mailtemplates_table.php | 30 +++++++++ resources/views/mail/lan.blade.php | 5 ++ 11 files changed, 344 insertions(+) create mode 100644 app/Filament/Resources/Mailtemplates/MailtemplateResource.php create mode 100644 app/Filament/Resources/Mailtemplates/Pages/CreateMailtemplate.php create mode 100644 app/Filament/Resources/Mailtemplates/Pages/EditMailtemplate.php create mode 100644 app/Filament/Resources/Mailtemplates/Pages/ListMailtemplates.php create mode 100644 app/Filament/Resources/Mailtemplates/Schemas/MailtemplateForm.php create mode 100644 app/Filament/Resources/Mailtemplates/Tables/MailtemplatesTable.php create mode 100644 app/Http/Controllers/MailtemplateController.php create mode 100644 app/Mail/LanMail.php create mode 100644 app/Models/Mailtemplate.php create mode 100644 database/migrations/2025_11_02_115606_create_mailtemplates_table.php create mode 100644 resources/views/mail/lan.blade.php 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 }}
+