From c37faa4ce312880cd4266b54315939153d1ba1e2 Mon Sep 17 00:00:00 2001 From: Baspa Date: Tue, 24 Jun 2025 10:06:58 +0200 Subject: [PATCH 01/10] Upgrade to Filament v4 --- composer.json | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index 955f5e8..d79b94a 100644 --- a/composer.json +++ b/composer.json @@ -20,22 +20,18 @@ } ], "require": { - "php": "^8.1", - "filament/filament": "^3.0", + "php": "^8.2", + "filament/filament": "^4.0", "spatie/laravel-package-tools": "^1.15.0", "vormkracht10/laravel-mails": "^1.0" }, "require-dev": { - "laravel/pint": "^1.0", - "nunomaduro/collision": "^7.9", - "nunomaduro/larastan": "^2.0.1", - "orchestra/testbench": "^8.0", - "pestphp/pest": "^2.1", - "pestphp/pest-plugin-arch": "^2.0", - "pestphp/pest-plugin-laravel": "^2.0", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-phpunit": "^1.0" + "laravel/pint": "^1.16", + "nunomaduro/collision": "^8.8.0", + "orchestra/testbench": "^9.0|^10.0", + "pestphp/pest": "^3.7", + "pestphp/pest-plugin-arch": "^3.1.0", + "pestphp/pest-plugin-laravel": "^3.0" }, "autoload": { "psr-4": { @@ -74,4 +70,4 @@ }, "minimum-stability": "dev", "prefer-stable": true -} \ No newline at end of file +} From f735a6977fe12613274f52528d2845a64dfafe67 Mon Sep 17 00:00:00 2001 From: Baspa Date: Tue, 24 Jun 2025 10:11:10 +0200 Subject: [PATCH 02/10] Run Filament upgrade --- composer.json | 1 + src/Controllers/MailDownloadController.php | 3 +- src/FilamentMailsPlugin.php | 9 ++- src/Resources/EventResource.php | 35 ++++++----- .../EventResource/Pages/ListEvents.php | 3 +- src/Resources/MailResource.php | 58 ++++++++++--------- .../MailResource/Pages/ListMails.php | 2 +- .../MailResource/Widgets/MailStatsWidget.php | 2 +- src/Resources/SuppressionResource.php | 22 ++++--- 9 files changed, 77 insertions(+), 58 deletions(-) diff --git a/composer.json b/composer.json index d79b94a..7bd6f1a 100644 --- a/composer.json +++ b/composer.json @@ -26,6 +26,7 @@ "vormkracht10/laravel-mails": "^1.0" }, "require-dev": { + "filament/upgrade": "^4.0", "laravel/pint": "^1.16", "nunomaduro/collision": "^8.8.0", "orchestra/testbench": "^9.0|^10.0", diff --git a/src/Controllers/MailDownloadController.php b/src/Controllers/MailDownloadController.php index 8c007b2..88af3de 100644 --- a/src/Controllers/MailDownloadController.php +++ b/src/Controllers/MailDownloadController.php @@ -2,6 +2,7 @@ namespace Vormkracht10\FilamentMails\Controllers; +use Vormkracht10\Mails\Models\MailAttachment; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Config; @@ -17,7 +18,7 @@ public function __invoke(...$arguments) } $attachmentModel = Config::get('mails.models.attachment'); - /** @var \Vormkracht10\Mails\Models\MailAttachment $attachment */ + /** @var MailAttachment $attachment */ $attachment = $attachmentModel::find($attachment); return $attachment->downloadFileFromStorage(); diff --git a/src/FilamentMailsPlugin.php b/src/FilamentMailsPlugin.php index ed89036..fcb11f6 100644 --- a/src/FilamentMailsPlugin.php +++ b/src/FilamentMailsPlugin.php @@ -2,6 +2,9 @@ namespace Vormkracht10\FilamentMails; +use Vormkracht10\FilamentMails\Resources\MailResource; +use Vormkracht10\FilamentMails\Resources\EventResource; +use Vormkracht10\FilamentMails\Resources\SuppressionResource; use Filament\Contracts\Plugin; use Filament\Panel; use Filament\Support\Colors\Color; @@ -20,9 +23,9 @@ public function register(Panel $panel): void 'clicked' => Color::Purple, ]) ->resources([ - config('filament-mails.resources.mail', \Vormkracht10\FilamentMails\Resources\MailResource::class), - config('filament-mails.resources.event', \Vormkracht10\FilamentMails\Resources\EventResource::class), - config('filament-mails.resources.suppression', \Vormkracht10\FilamentMails\Resources\SuppressionResource::class), + config('filament-mails.resources.mail', MailResource::class), + config('filament-mails.resources.event', EventResource::class), + config('filament-mails.resources.suppression', SuppressionResource::class), ]); } diff --git a/src/Resources/EventResource.php b/src/Resources/EventResource.php index c6cd169..e96f35c 100644 --- a/src/Resources/EventResource.php +++ b/src/Resources/EventResource.php @@ -2,10 +2,15 @@ namespace Vormkracht10\FilamentMails\Resources; -use Filament\Infolists\Components\Grid; -use Filament\Infolists\Components\Section; +use Filament\Panel; +use Filament\Schemas\Schema; +use Filament\Schemas\Components\Section; +use Filament\Schemas\Components\Grid; +use Filament\Tables\Columns\TextColumn; +use Filament\Actions\ViewAction; +use Filament\Actions\BulkActionGroup; +use Filament\Actions\DeleteBulkAction; use Filament\Infolists\Components\TextEntry; -use Filament\Infolists\Infolist; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Table; @@ -20,7 +25,7 @@ class EventResource extends Resource protected static bool $shouldRegisterNavigation = true; - public static function getSlug(): string + public static function getSlug(?Panel $panel = null): string { return config('filament-mails.resources.mail')::getSlug() . '/events'; } @@ -65,10 +70,10 @@ public static function getNavigationIcon(): ?string return 'heroicon-o-calendar'; } - public static function infolist(Infolist $infolist): Infolist + public static function infolist(Schema $schema): Schema { - return $infolist - ->schema([ + return $schema + ->components([ Section::make(__('Event Details')) ->icon('heroicon-o-information-circle') ->compact() @@ -201,7 +206,7 @@ public static function table(Table $table): Table ->defaultSort('occurred_at', 'desc') ->paginated([50, 100, 'all']) ->columns([ - Tables\Columns\TextColumn::make('type') + TextColumn::make('type') ->label(__('Type')) ->sortable() ->badge() @@ -219,10 +224,10 @@ public static function table(Table $table): Table return ucwords(str_replace('_', ' ', $state->value)); }) ->searchable(), - Tables\Columns\TextColumn::make('mail.subject') + TextColumn::make('mail.subject') ->label(__('Subject')) ->searchable(['subject', 'payload']), - Tables\Columns\TextColumn::make('occurred_at') + TextColumn::make('occurred_at') ->label(__('Occurred At')) ->dateTime('d-m-Y H:i') ->since() @@ -233,8 +238,8 @@ public static function table(Table $table): Table ->filters([ // ]) - ->actions([ - Tables\Actions\ViewAction::make() + ->recordActions([ + ViewAction::make() ->url(null) ->modal() ->slideOver() @@ -242,9 +247,9 @@ public static function table(Table $table): Table ->hiddenLabel() ->tooltip(__('View')), ]) - ->bulkActions([ - Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), ]), ]); } diff --git a/src/Resources/EventResource/Pages/ListEvents.php b/src/Resources/EventResource/Pages/ListEvents.php index 0765c97..be5d191 100644 --- a/src/Resources/EventResource/Pages/ListEvents.php +++ b/src/Resources/EventResource/Pages/ListEvents.php @@ -2,8 +2,7 @@ namespace Vormkracht10\FilamentMails\Resources\EventResource\Pages; -// use App\Filament\Widgets\MailsPerStatusChart; -use Filament\Resources\Components\Tab; +use Filament\Schemas\Components\Tabs\Tab; use Filament\Resources\Pages\ListRecords; use Illuminate\Database\Eloquent\Builder; use Vormkracht10\FilamentMails\Resources\EventResource; diff --git a/src/Resources/MailResource.php b/src/Resources/MailResource.php index b2627a2..ad095c5 100644 --- a/src/Resources/MailResource.php +++ b/src/Resources/MailResource.php @@ -2,20 +2,26 @@ namespace Vormkracht10\FilamentMails\Resources; +use Filament\Schemas\Schema; +use Filament\Schemas\Components\Section; +use Filament\Schemas\Components\Tabs; +use Filament\Schemas\Components\Tabs\Tab; +use Filament\Schemas\Components\Grid; +use Filament\Tables\Columns\TextColumn; +use Filament\Tables\Columns\IconColumn; +use Filament\Actions\ViewAction; +use Filament\Actions\Action; +use Filament\Actions\BulkActionGroup; +use Filament\Actions\BulkAction; +use Filament\Actions\DeleteBulkAction; use Filament\Facades\Filament; use Filament\Forms\Components\TagsInput; -use Filament\Infolists\Components\Grid; use Filament\Infolists\Components\RepeatableEntry; -use Filament\Infolists\Components\Section; -use Filament\Infolists\Components\Tabs; -use Filament\Infolists\Components\Tabs\Tab; use Filament\Infolists\Components\TextEntry; use Filament\Infolists\Components\ViewEntry; -use Filament\Infolists\Infolist; use Filament\Notifications\Notification; use Filament\Resources\Resource; use Filament\Tables; -use Filament\Tables\Actions\Action; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Carbon; @@ -70,10 +76,10 @@ public function getTitle(): string return __('Emails'); } - public static function infolist(Infolist $infolist): Infolist + public static function infolist(Schema $schema): Schema { - return $infolist - ->schema([ + return $schema + ->components([ Section::make('General') ->icon('heroicon-o-envelope') ->compact() @@ -178,7 +184,7 @@ public static function infolist(Infolist $infolist): Infolist ->label(__('Type')) ->badge() ->url(function (MailEvent $record) { - $panel = Filament::getCurrentPanel(); + $panel = Filament::getCurrentOrDefaultPanel(); $tenant = Filament::getTenant(); if (! $panel || ! $tenant) { @@ -205,7 +211,7 @@ public static function infolist(Infolist $infolist): Infolist }), TextEntry::make('occurred_at') ->url(function (MailEvent $record) { - $panel = Filament::getCurrentPanel(); + $panel = Filament::getCurrentOrDefaultPanel(); $tenant = Filament::getTenant(); if (! $panel || ! $tenant) { @@ -318,7 +324,7 @@ public static function table(Table $table): Table ->defaultSort('created_at', 'desc') ->paginated([50, 100, 'all']) ->columns([ - Tables\Columns\TextColumn::make('status') + TextColumn::make('status') ->label(__('Status')) ->sortable() ->searchable(false) @@ -335,32 +341,32 @@ public static function table(Table $table): Table __('Unsent') => 'gray', default => 'gray', }), - Tables\Columns\TextColumn::make('subject') + TextColumn::make('subject') ->label(__('Subject')) ->limit(35) ->sortable() ->searchable(['subject', 'html', 'text']), - Tables\Columns\IconColumn::make('attachments') + IconColumn::make('attachments') ->label('') ->alignLeft() ->searchable(false) ->getStateUsing(fn (Mail $record) => $record->attachments->count() > 0) ->icon(fn (string $state): string => $state ? 'heroicon-o-paper-clip' : ''), - Tables\Columns\TextColumn::make('to') + TextColumn::make('to') ->label(__('Recipient(s)')) ->limit(50) ->getStateUsing(fn (Mail $record) => self::formatMailState(emails: $record->to, mailOnly: true)) ->sortable() ->searchable(), - Tables\Columns\TextColumn::make('opens') + TextColumn::make('opens') ->label(__('Opens')) ->tooltip(fn (Mail $record) => __('Last opened at :date', ['date' => $record->last_opened_at?->format('d-m-Y H:i')])) ->sortable(), - Tables\Columns\TextColumn::make('clicks') + TextColumn::make('clicks') ->label(__('Clicks')) ->tooltip(fn (Mail $record) => __('Last clicked at :date', ['date' => $record->last_clicked_at?->format('d-m-Y H:i')])) ->sortable(), - Tables\Columns\TextColumn::make('sent_at') + TextColumn::make('sent_at') ->label(__('Sent At')) ->dateTime('d-m-Y H:i') ->since() @@ -374,8 +380,8 @@ public static function table(Table $table): Table ->filters([ // ]) - ->actions([ - Tables\Actions\ViewAction::make() + ->recordActions([ + ViewAction::make() // ->url(null) ->modal() ->slideOver() @@ -389,7 +395,7 @@ public static function table(Table $table): Table ->modalDescription(__('Are you sure you want to resend this mail?')) ->hiddenLabel() ->tooltip(__('Resend')) - ->form(self::getResendForm()) + ->schema(self::getResendForm()) ->fillForm(function (Mail $record) { return [ 'to' => array_keys($record->to ?: []), @@ -406,14 +412,14 @@ public static function table(Table $table): Table ->send(); }), ]) - ->bulkActions([ - Tables\Actions\BulkActionGroup::make([ - Tables\Actions\BulkAction::make('resend') + ->toolbarActions([ + BulkActionGroup::make([ + BulkAction::make('resend') ->label(__('Resend')) ->icon('heroicon-o-arrow-uturn-right') ->requiresConfirmation() ->modalDescription(__('Are you sure you want to resend the selected mails?')) - ->form(fn ($records) => self::getBulkResendForm($records)) + ->schema(fn ($records) => self::getBulkResendForm($records)) ->action(function (Collection $records, array $data) { foreach ($records as $record) { (new ResendMail)->handle($record, $data['to'], $data['cc'] ?? [], $data['bcc'] ?? []); @@ -425,7 +431,7 @@ public static function table(Table $table): Table ->send(); }) ->deselectRecordsAfterCompletion(), - Tables\Actions\DeleteBulkAction::make(), + DeleteBulkAction::make(), ]), ]); } diff --git a/src/Resources/MailResource/Pages/ListMails.php b/src/Resources/MailResource/Pages/ListMails.php index 940f627..75a8e18 100644 --- a/src/Resources/MailResource/Pages/ListMails.php +++ b/src/Resources/MailResource/Pages/ListMails.php @@ -2,7 +2,7 @@ namespace Vormkracht10\FilamentMails\Resources\MailResource\Pages; -use Filament\Resources\Components\Tab; +use Filament\Schemas\Components\Tabs\Tab; use Filament\Resources\Pages\ListRecords; use Illuminate\Database\Eloquent\Builder; use Vormkracht10\FilamentMails\Resources\MailResource; diff --git a/src/Resources/MailResource/Widgets/MailStatsWidget.php b/src/Resources/MailResource/Widgets/MailStatsWidget.php index 7577ce7..81b8fc2 100644 --- a/src/Resources/MailResource/Widgets/MailStatsWidget.php +++ b/src/Resources/MailResource/Widgets/MailStatsWidget.php @@ -28,7 +28,7 @@ protected function getStats(): array } $generateUrl = function (string $activeTab): ?string { - $panel = Filament::getCurrentPanel(); + $panel = Filament::getCurrentOrDefaultPanel(); $tenant = Filament::getTenant(); if (! $panel || ! $tenant) { diff --git a/src/Resources/SuppressionResource.php b/src/Resources/SuppressionResource.php index 4c04ef7..e6f2532 100644 --- a/src/Resources/SuppressionResource.php +++ b/src/Resources/SuppressionResource.php @@ -2,7 +2,11 @@ namespace Vormkracht10\FilamentMails\Resources; -use Filament\Infolists\Infolist; +use Filament\Panel; +use Filament\Tables\Columns\TextColumn; +use Filament\Actions\Action; +use Filament\Actions\ViewAction; +use Filament\Schemas\Schema; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Table; @@ -19,7 +23,7 @@ class SuppressionResource extends Resource protected static bool $shouldRegisterNavigation = true; - public static function getSlug(): string + public static function getSlug(?Panel $panel = null): string { return config('filament-mails.resources.mail')::getSlug() . '/suppressions'; } @@ -103,12 +107,12 @@ public static function table(Table $table): Table return $table ->defaultSort('occurred_at', 'desc') ->columns([ - Tables\Columns\TextColumn::make('to') + TextColumn::make('to') ->label(__('Email address')) ->formatStateUsing(fn ($record) => key(json_decode($record->to ?? []))) ->searchable(['to']), - Tables\Columns\TextColumn::make('id') + TextColumn::make('id') ->label(__('Reason')) ->badge() ->formatStateUsing(fn ($record) => $record->type->value == EventType::COMPLAINED->value ? 'Complained' : 'Bounced') @@ -117,7 +121,7 @@ public static function table(Table $table): Table default => 'gray', }), - Tables\Columns\TextColumn::make('occurred_at') + TextColumn::make('occurred_at') ->label(__('Occurred At')) ->dateTime('d-m-Y H:i') ->since() @@ -125,22 +129,22 @@ public static function table(Table $table): Table ->sortable() ->searchable(), ]) - ->actions([ - Tables\Actions\Action::make('unsuppress') + ->recordActions([ + Action::make('unsuppress') ->label(__('Unsuppress')) ->action(function (MailEvent $record) { event(new MailUnsuppressed(key($record->mail->to), $record->mail->mailer == 'smtp' && filled($record->mail->transport) ? $record->mail->transport : $record->mail->mailer, $record->mail->stream_id ?? null)); }) ->visible(fn ($record) => Provider::tryFrom($record->mail->mailer == 'smtp' && filled($record->mail->transport) ? $record->mail->transport : $record->mail->mailer)), - Tables\Actions\ViewAction::make() + ViewAction::make() ->url(null) ->modal() ->slideOver() ->label(__('View')) ->hiddenLabel() ->tooltip(__('View')) - ->infolist(fn (Infolist $infolist) => EventResource::infolist($infolist)), + ->schema(fn (Schema $schema) => EventResource::infolist($schema)), ]); } From ceeb7a5e0aa1b811de2347fa50a1dbd712d50440 Mon Sep 17 00:00:00 2001 From: Baspa Date: Tue, 24 Jun 2025 10:11:50 +0200 Subject: [PATCH 03/10] Remove upgrade script --- composer.json | 1 - 1 file changed, 1 deletion(-) diff --git a/composer.json b/composer.json index 7bd6f1a..d79b94a 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,6 @@ "vormkracht10/laravel-mails": "^1.0" }, "require-dev": { - "filament/upgrade": "^4.0", "laravel/pint": "^1.16", "nunomaduro/collision": "^8.8.0", "orchestra/testbench": "^9.0|^10.0", From a290d5a32de7fa9b245f14bf15074afdc30ffa82 Mon Sep 17 00:00:00 2001 From: Baspa <10845460+Baspa@users.noreply.github.com> Date: Tue, 24 Jun 2025 08:12:17 +0000 Subject: [PATCH 04/10] Fix styling --- src/Controllers/MailDownloadController.php | 2 +- src/FilamentMailsPlugin.php | 6 +++--- src/Resources/EventResource.php | 13 ++++++------- .../EventResource/Pages/ListEvents.php | 2 +- src/Resources/MailResource.php | 19 +++++++++---------- .../MailResource/Pages/ListMails.php | 2 +- src/Resources/SuppressionResource.php | 7 +++---- 7 files changed, 24 insertions(+), 27 deletions(-) diff --git a/src/Controllers/MailDownloadController.php b/src/Controllers/MailDownloadController.php index 88af3de..795cc42 100644 --- a/src/Controllers/MailDownloadController.php +++ b/src/Controllers/MailDownloadController.php @@ -2,9 +2,9 @@ namespace Vormkracht10\FilamentMails\Controllers; -use Vormkracht10\Mails\Models\MailAttachment; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Config; +use Vormkracht10\Mails\Models\MailAttachment; class MailDownloadController extends Controller { diff --git a/src/FilamentMailsPlugin.php b/src/FilamentMailsPlugin.php index fcb11f6..c176d59 100644 --- a/src/FilamentMailsPlugin.php +++ b/src/FilamentMailsPlugin.php @@ -2,12 +2,12 @@ namespace Vormkracht10\FilamentMails; -use Vormkracht10\FilamentMails\Resources\MailResource; -use Vormkracht10\FilamentMails\Resources\EventResource; -use Vormkracht10\FilamentMails\Resources\SuppressionResource; use Filament\Contracts\Plugin; use Filament\Panel; use Filament\Support\Colors\Color; +use Vormkracht10\FilamentMails\Resources\EventResource; +use Vormkracht10\FilamentMails\Resources\MailResource; +use Vormkracht10\FilamentMails\Resources\SuppressionResource; class FilamentMailsPlugin implements Plugin { diff --git a/src/Resources/EventResource.php b/src/Resources/EventResource.php index e96f35c..2801010 100644 --- a/src/Resources/EventResource.php +++ b/src/Resources/EventResource.php @@ -2,17 +2,16 @@ namespace Vormkracht10\FilamentMails\Resources; -use Filament\Panel; -use Filament\Schemas\Schema; -use Filament\Schemas\Components\Section; -use Filament\Schemas\Components\Grid; -use Filament\Tables\Columns\TextColumn; -use Filament\Actions\ViewAction; use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteBulkAction; +use Filament\Actions\ViewAction; use Filament\Infolists\Components\TextEntry; +use Filament\Panel; use Filament\Resources\Resource; -use Filament\Tables; +use Filament\Schemas\Components\Grid; +use Filament\Schemas\Components\Section; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Vormkracht10\FilamentMails\Resources\EventResource\Pages\ListEvents; use Vormkracht10\FilamentMails\Resources\EventResource\Pages\ViewEvent; diff --git a/src/Resources/EventResource/Pages/ListEvents.php b/src/Resources/EventResource/Pages/ListEvents.php index be5d191..426f9b7 100644 --- a/src/Resources/EventResource/Pages/ListEvents.php +++ b/src/Resources/EventResource/Pages/ListEvents.php @@ -2,8 +2,8 @@ namespace Vormkracht10\FilamentMails\Resources\EventResource\Pages; -use Filament\Schemas\Components\Tabs\Tab; use Filament\Resources\Pages\ListRecords; +use Filament\Schemas\Components\Tabs\Tab; use Illuminate\Database\Eloquent\Builder; use Vormkracht10\FilamentMails\Resources\EventResource; use Vormkracht10\Mails\Enums\EventType; diff --git a/src/Resources/MailResource.php b/src/Resources/MailResource.php index ad095c5..7ba17ca 100644 --- a/src/Resources/MailResource.php +++ b/src/Resources/MailResource.php @@ -2,18 +2,11 @@ namespace Vormkracht10\FilamentMails\Resources; -use Filament\Schemas\Schema; -use Filament\Schemas\Components\Section; -use Filament\Schemas\Components\Tabs; -use Filament\Schemas\Components\Tabs\Tab; -use Filament\Schemas\Components\Grid; -use Filament\Tables\Columns\TextColumn; -use Filament\Tables\Columns\IconColumn; -use Filament\Actions\ViewAction; use Filament\Actions\Action; -use Filament\Actions\BulkActionGroup; use Filament\Actions\BulkAction; +use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteBulkAction; +use Filament\Actions\ViewAction; use Filament\Facades\Filament; use Filament\Forms\Components\TagsInput; use Filament\Infolists\Components\RepeatableEntry; @@ -21,7 +14,13 @@ use Filament\Infolists\Components\ViewEntry; use Filament\Notifications\Notification; use Filament\Resources\Resource; -use Filament\Tables; +use Filament\Schemas\Components\Grid; +use Filament\Schemas\Components\Section; +use Filament\Schemas\Components\Tabs; +use Filament\Schemas\Components\Tabs\Tab; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\IconColumn; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Carbon; diff --git a/src/Resources/MailResource/Pages/ListMails.php b/src/Resources/MailResource/Pages/ListMails.php index 75a8e18..10e5574 100644 --- a/src/Resources/MailResource/Pages/ListMails.php +++ b/src/Resources/MailResource/Pages/ListMails.php @@ -2,8 +2,8 @@ namespace Vormkracht10\FilamentMails\Resources\MailResource\Pages; -use Filament\Schemas\Components\Tabs\Tab; use Filament\Resources\Pages\ListRecords; +use Filament\Schemas\Components\Tabs\Tab; use Illuminate\Database\Eloquent\Builder; use Vormkracht10\FilamentMails\Resources\MailResource; use Vormkracht10\FilamentMails\Resources\MailResource\Widgets\MailStatsWidget; diff --git a/src/Resources/SuppressionResource.php b/src/Resources/SuppressionResource.php index e6f2532..ca14304 100644 --- a/src/Resources/SuppressionResource.php +++ b/src/Resources/SuppressionResource.php @@ -2,13 +2,12 @@ namespace Vormkracht10\FilamentMails\Resources; -use Filament\Panel; -use Filament\Tables\Columns\TextColumn; use Filament\Actions\Action; use Filament\Actions\ViewAction; -use Filament\Schemas\Schema; +use Filament\Panel; use Filament\Resources\Resource; -use Filament\Tables; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Vormkracht10\FilamentMails\Resources\SuppressionResource\Pages\ListSuppressions; From a5cd8e1199f7c5d3cacc90ba3b9ae74ffe854ed2 Mon Sep 17 00:00:00 2001 From: Baspa Date: Tue, 24 Jun 2025 10:15:25 +0200 Subject: [PATCH 05/10] Remove unused import --- src/Resources/EventResource.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Resources/EventResource.php b/src/Resources/EventResource.php index e96f35c..6f394d1 100644 --- a/src/Resources/EventResource.php +++ b/src/Resources/EventResource.php @@ -12,7 +12,6 @@ use Filament\Actions\DeleteBulkAction; use Filament\Infolists\Components\TextEntry; use Filament\Resources\Resource; -use Filament\Tables; use Filament\Tables\Table; use Vormkracht10\FilamentMails\Resources\EventResource\Pages\ListEvents; use Vormkracht10\FilamentMails\Resources\EventResource\Pages\ViewEvent; From 9974290b947092844b8cf89291ee1bec52fc9539 Mon Sep 17 00:00:00 2001 From: Baspa <10845460+Baspa@users.noreply.github.com> Date: Tue, 24 Jun 2025 08:16:11 +0000 Subject: [PATCH 06/10] Fix styling --- src/Resources/EventResource.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Resources/EventResource.php b/src/Resources/EventResource.php index 5608dc3..2801010 100644 --- a/src/Resources/EventResource.php +++ b/src/Resources/EventResource.php @@ -83,7 +83,7 @@ public static function infolist(Schema $schema): Schema TextEntry::make('type') ->label(__('Type')) ->badge() - ->color(fn(EventType $state): string => match ($state) { + ->color(fn (EventType $state): string => match ($state) { EventType::DELIVERED => 'success', EventType::CLICKED => 'clicked', EventType::OPENED => 'info', @@ -131,7 +131,7 @@ public static function infolist(Schema $schema): Schema ->default(__('Unknown')) ->label(__('User Agent')) ->limit(50) - ->tooltip(fn($state) => $state), + ->tooltip(fn ($state) => $state), ]), ]), Section::make(__('Location')) @@ -160,7 +160,7 @@ public static function infolist(Schema $schema): Schema ->default(__('Unknown')) ->label(__('Link')) ->limit(50) - ->url(fn($state) => $state) + ->url(fn ($state) => $state) ->openUrlInNewTab(), TextEntry::make('tag') ->default(__('Unknown')) @@ -209,7 +209,7 @@ public static function table(Table $table): Table ->label(__('Type')) ->sortable() ->badge() - ->color(fn(EventType $state): string => match ($state) { + ->color(fn (EventType $state): string => match ($state) { EventType::DELIVERED => 'success', EventType::CLICKED => 'clicked', EventType::OPENED => 'info', @@ -230,7 +230,7 @@ public static function table(Table $table): Table ->label(__('Occurred At')) ->dateTime('d-m-Y H:i') ->since() - ->tooltip(fn(MailEvent $record) => $record->occurred_at->format('d-m-Y H:i')) + ->tooltip(fn (MailEvent $record) => $record->occurred_at->format('d-m-Y H:i')) ->sortable() ->searchable(), ]) From 7f859cacb3078f14654f8413010e43f57a7c145d Mon Sep 17 00:00:00 2001 From: Baspa Date: Tue, 24 Jun 2025 10:25:28 +0200 Subject: [PATCH 07/10] Update namespaces --- .github/ISSUE_TEMPLATE/config.yml | 6 +-- CHANGELOG.md | 42 ++++++++-------- LICENSE.md | 2 +- README.md | 48 +++++++++---------- composer.json | 20 ++++---- config/filament-mails.php | 6 +-- phpunit.xml.dist | 2 +- src/Controllers/MailDownloadController.php | 4 +- src/Controllers/MailPreviewController.php | 4 +- src/Facades/FilamentMails.php | 6 +-- src/FilamentMails.php | 6 +-- src/FilamentMailsPlugin.php | 8 ++-- src/FilamentMailsServiceProvider.php | 8 ++-- src/Resources/EventResource.php | 10 ++-- .../EventResource/Pages/ListEvents.php | 8 ++-- .../EventResource/Pages/ViewEvent.php | 4 +- src/Resources/MailResource.php | 16 +++---- .../MailResource/Pages/ListMails.php | 8 ++-- src/Resources/MailResource/Pages/ViewMail.php | 4 +- .../MailResource/Widgets/MailStatsWidget.php | 2 +- src/Resources/SuppressionResource.php | 12 ++--- .../Pages/ListSuppressions.php | 4 +- src/Testing/TestsFilamentMails.php | 2 +- tests/Pest.php | 2 +- tests/TestCase.php | 6 +-- 25 files changed, 120 insertions(+), 120 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 122f326..465212e 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,11 +1,11 @@ blank_issues_enabled: false contact_links: - name: Ask a question - url: https://github.com/vormkracht10/filament-mails/discussions/new?category=q-a + url: https://github.com/backstagephp/filament-mails/discussions/new?category=q-a about: Ask the community for help - name: Request a feature - url: https://github.com/vormkracht10/filament-mails/discussions/new?category=ideas + url: https://github.com/backstagephp/filament-mails/discussions/new?category=ideas about: Share ideas for new features - name: Report a security issue - url: https://github.com/vormkracht10/filament-mails/security/policy + url: https://github.com/backstagephp/filament-mails/security/policy about: Learn how to notify us for sensitive bugs diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d48100..80163bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,38 +6,38 @@ All notable changes to `filament-mails` will be documented in this file. ### What's Changed -* Fix issue with navigation icons by @Skullbock in https://github.com/vormkracht10/filament-mails/pull/37 +* Fix issue with navigation icons by @Skullbock in https://github.com/backstagephp/filament-mails/pull/37 -**Full Changelog**: https://github.com/vormkracht10/filament-mails/compare/v2.3.4...v2.3.5 +**Full Changelog**: https://github.com/backstagephp/filament-mails/compare/v2.3.4...v2.3.5 ## New feature: Suppressions list with option to unsuppress email addresses - 2025-01-23 ### What's Changed -* Suppressions list by @markvaneijk in https://github.com/vormkracht10/filament-mails/pull/11 +* Suppressions list by @markvaneijk in https://github.com/backstagephp/filament-mails/pull/11 ### New Contributors -* @markvaneijk made their first contribution in https://github.com/vormkracht10/filament-mails/pull/11 +* @markvaneijk made their first contribution in https://github.com/backstagephp/filament-mails/pull/11 -**Full Changelog**: https://github.com/vormkracht10/filament-mails/compare/v2.1.0...v2.2.0 +**Full Changelog**: https://github.com/backstagephp/filament-mails/compare/v2.1.0...v2.2.0 ## v2.1.0 - 2025-01-22 ### What's Changed -* [Fix] Format text to prevent stripping line breaks by @Baspa in https://github.com/vormkracht10/filament-mails/pull/14 -* [Fix] Define nullable parameter as nullable by @Baspa in https://github.com/vormkracht10/filament-mails/pull/15 -* fix: Dynamically determine if tenant is set by @Baspa in https://github.com/vormkracht10/filament-mails/pull/16 -* [Fix] Return empty array when $record's to, cc or bcc is empty (#18) by @vincentvankekerix in https://github.com/vormkracht10/filament-mails/pull/19 -* Update Pages to reflect configured resource class name by @Skullbock in https://github.com/vormkracht10/filament-mails/pull/20 +* [Fix] Format text to prevent stripping line breaks by @Baspa in https://github.com/backstagephp/filament-mails/pull/14 +* [Fix] Define nullable parameter as nullable by @Baspa in https://github.com/backstagephp/filament-mails/pull/15 +* fix: Dynamically determine if tenant is set by @Baspa in https://github.com/backstagephp/filament-mails/pull/16 +* [Fix] Return empty array when $record's to, cc or bcc is empty (#18) by @vincentvankekerix in https://github.com/backstagephp/filament-mails/pull/19 +* Update Pages to reflect configured resource class name by @Skullbock in https://github.com/backstagephp/filament-mails/pull/20 ### New Contributors -* @vincentvankekerix made their first contribution in https://github.com/vormkracht10/filament-mails/pull/19 -* @Skullbock made their first contribution in https://github.com/vormkracht10/filament-mails/pull/20 +* @vincentvankekerix made their first contribution in https://github.com/backstagephp/filament-mails/pull/19 +* @Skullbock made their first contribution in https://github.com/backstagephp/filament-mails/pull/20 -**Full Changelog**: https://github.com/vormkracht10/filament-mails/compare/v2.0.0...v2.1.0 +**Full Changelog**: https://github.com/backstagephp/filament-mails/compare/v2.0.0...v2.1.0 ## v2.0.0 - 2025-01-03 @@ -47,18 +47,18 @@ All notable changes to `filament-mails` will be documented in this file. ### What's Changed -* Install latest version instead of dev-main by @Baspa in https://github.com/vormkracht10/filament-mails/pull/5 -* Use Model from Config for Resource by @iAmKevinMcKee in https://github.com/vormkracht10/filament-mails/pull/7 -* [Fix] PHPStan issues by @Baspa in https://github.com/vormkracht10/filament-mails/pull/6 -* [Fix] Let user specify (tenant aware) routes by @Baspa in https://github.com/vormkracht10/filament-mails/pull/9 -* [Fix] Logging and downloading attachments by @Baspa in https://github.com/vormkracht10/filament-mails/pull/9 +* Install latest version instead of dev-main by @Baspa in https://github.com/backstagephp/filament-mails/pull/5 +* Use Model from Config for Resource by @iAmKevinMcKee in https://github.com/backstagephp/filament-mails/pull/7 +* [Fix] PHPStan issues by @Baspa in https://github.com/backstagephp/filament-mails/pull/6 +* [Fix] Let user specify (tenant aware) routes by @Baspa in https://github.com/backstagephp/filament-mails/pull/9 +* [Fix] Logging and downloading attachments by @Baspa in https://github.com/backstagephp/filament-mails/pull/9 ### New Contributors -* @Baspa made their first contribution in https://github.com/vormkracht10/filament-mails/pull/5 -* @iAmKevinMcKee made their first contribution in https://github.com/vormkracht10/filament-mails/pull/7 +* @Baspa made their first contribution in https://github.com/backstagephp/filament-mails/pull/5 +* @iAmKevinMcKee made their first contribution in https://github.com/backstagephp/filament-mails/pull/7 -**Full Changelog**: https://github.com/vormkracht10/filament-mails/compare/v1.0.1...v2.0.0 +**Full Changelog**: https://github.com/backstagephp/filament-mails/compare/v1.0.1...v2.0.0 ## Bugfix - 2024-11-28 diff --git a/LICENSE.md b/LICENSE.md index cdcbb7a..cb719f5 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) vormkracht10 +Copyright (c) backstagephp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 15afbcb..04fd5de 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # Filament Mails -[![Latest Version on Packagist](https://img.shields.io/packagist/v/vormkracht10/filament-mails.svg?style=flat-square)](https://packagist.org/packages/vormkracht10/filament-mails) -[![GitHub Tests Action Status](https://img.shields.io/github/actions/workflow/status/vormkracht10/filament-mails/run-tests.yml?branch=main&label=tests&style=flat-square)](https://github.com/vormkracht10/filament-mails/actions?query=workflow%3Arun-tests+branch%3Amain) -[![GitHub Code Style Action Status](https://img.shields.io/github/actions/workflow/status/vormkracht10/filament-mails/fix-php-code-styling.yml?branch=main&label=code%20style&style=flat-square)](https://github.com/vormkracht10/filament-mails/actions?query=workflow%3A"Fix+PHP+code+styling"+branch%3Amain) -[![Total Downloads](https://img.shields.io/packagist/dt/vormkracht10/filament-mails.svg?style=flat-square)](https://packagist.org/packages/vormkracht10/filament-mails) +[![Latest Version on Packagist](https://img.shields.io/packagist/v/backstagephp/filament-mails.svg?style=flat-square)](https://packagist.org/packages/backstagephp/filament-mails) +[![GitHub Tests Action Status](https://img.shields.io/github/actions/workflow/status/backstagephp/filament-mails/run-tests.yml?branch=main&label=tests&style=flat-square)](https://github.com/backstagephp/filament-mails/actions?query=workflow%3Arun-tests+branch%3Amain) +[![GitHub Code Style Action Status](https://img.shields.io/github/actions/workflow/status/backstagephp/filament-mails/fix-php-code-styling.yml?branch=main&label=code%20style&style=flat-square)](https://github.com/backstagephp/filament-mails/actions?query=workflow%3A"Fix+PHP+code+styling"+branch%3Amain) +[![Total Downloads](https://img.shields.io/packagist/dt/backstagephp/filament-mails.svg?style=flat-square)](https://packagist.org/packages/backstagephp/filament-mails) -## Nice to meet you, we're [Vormkracht10](https://vormkracht10.nl) +## Nice to meet you, we're [Backstage](https://backstagephp.com) Hi! We are a web development agency from Nijmegen in the Netherlands and we use Laravel for everything: advanced websites with a lot of bells and whistles and large web applications. @@ -29,16 +29,16 @@ Filament Mails can collect everything you might want to track about the mails th Email as a protocol is very error prone. Succesfull email delivery is not guaranteed in any way, so it is best to monitor your email sending realtime. Using external services like Postmark, Mailgun or Resend email gets better by offering things like logging and delivery feedback, but it still needs your attention and can fail silently but horendously. Therefore we created Laravel Mails that fills in all the gaps. -The package is built on top of [Laravel Mails](https://github.com/vormkracht10/laravel-mails). +The package is built on top of [Laravel Mails](https://github.com/backstagephp/laravel-mails). -![Filament Mails](https://raw.githubusercontent.com/vormkracht10/filament-mails/main/docs/filament-mails.jpeg) +![Filament Mails](https://raw.githubusercontent.com/backstagephp/filament-mails/main/docs/filament-mails.jpeg) ## Installation You can install the package via composer: ```bash -composer require vormkracht10/filament-mails +composer require backstagephp/filament-mails ``` You can publish and run the migrations with: @@ -64,7 +64,7 @@ php artisan vendor:publish --tag="filament-mails-views" Add the routes to the PanelProvider using the `routes()` method, like this: ```php -use Vormkracht10\FilamentMails\Facades\FilamentMails; +use Backstage\FilamentMails\Facades\FilamentMails; public function panel(Panel $panel): Panel { @@ -76,7 +76,7 @@ public function panel(Panel $panel): Panel Then add the plugin to your `PanelProvider` ```php -use Vormkracht10\FilamentMails\FilamentMailsPlugin; +use Backstage\FilamentMails\FilamentMailsPlugin; public function panel(Panel $panel): Panel { @@ -90,8 +90,8 @@ public function panel(Panel $panel): Panel If you want to protect the mail routes with your (tenant) middleware, you can do so by adding the routes to the `tenantRoutes`: ```php -use Vormkracht10\FilamentMails\FilamentMailsPlugin; -use Vormkracht10\FilamentMails\Facades\FilamentMails; +use Backstage\FilamentMails\FilamentMailsPlugin; +use Backstage\FilamentMails\Facades\FilamentMails; public function panel(Panel $panel): Panel { @@ -102,7 +102,7 @@ public function panel(Panel $panel): Panel ``` > [!IMPORTANT] -> For setting up the webhooks to register mail events, please look into the README of [Laravel Mails](https://github.com/vormkracht10/laravel-mails), the underlying package that powers this package. +> For setting up the webhooks to register mail events, please look into the README of [Laravel Mails](https://github.com/backstagephp/laravel-mails), the underlying package that powers this package. ### Configuration @@ -123,34 +123,34 @@ return [ ### List with all sent emails and statistics The package provides a clear overview of all emails, including statistics and the ability to filter the data. -![Filament Mails](https://raw.githubusercontent.com/vormkracht10/filament-mails/main/docs/mails-list.png) +![Filament Mails](https://raw.githubusercontent.com/backstagephp/filament-mails/main/docs/mails-list.png) ### Resending emails You can resend emails to the same or another recipient(s). This is useful when your email has bounced and you want to resend it. -![Filament Mails](https://raw.githubusercontent.com/vormkracht10/filament-mails/main/docs/mail-resend.png) +![Filament Mails](https://raw.githubusercontent.com/backstagephp/filament-mails/main/docs/mail-resend.png) ### Information You can view all relevant information about the email, such as the subject, the body, the attachments, the from address, the to address(es), the cc address(es), the bcc address(es), the reply to address, metadata and much more. -![Filament Mails](https://raw.githubusercontent.com/vormkracht10/filament-mails/main/docs/mail-sender-information.png) -![Filament Mails](https://raw.githubusercontent.com/vormkracht10/filament-mails/main/docs/mail-statistics.png) -![Filament Mails](https://raw.githubusercontent.com/vormkracht10/filament-mails/main/docs/mail-events.png) -![Filament Mails](https://raw.githubusercontent.com/vormkracht10/filament-mails/main/docs/mail-attachments.png) +![Filament Mails](https://raw.githubusercontent.com/backstagephp/filament-mails/main/docs/mail-sender-information.png) +![Filament Mails](https://raw.githubusercontent.com/backstagephp/filament-mails/main/docs/mail-statistics.png) +![Filament Mails](https://raw.githubusercontent.com/backstagephp/filament-mails/main/docs/mail-events.png) +![Filament Mails](https://raw.githubusercontent.com/backstagephp/filament-mails/main/docs/mail-attachments.png) ### Preview email The package provides a preview of the email. This is useful to quickly check if the email is correct. -![Filament Mails](https://raw.githubusercontent.com/vormkracht10/filament-mails/main/docs/mail-preview.png) +![Filament Mails](https://raw.githubusercontent.com/backstagephp/filament-mails/main/docs/mail-preview.png) We also provide the raw HTML and plain text of the email. -![Filament Mails](https://raw.githubusercontent.com/vormkracht10/filament-mails/main/docs/mail-raw-html.png) +![Filament Mails](https://raw.githubusercontent.com/backstagephp/filament-mails/main/docs/mail-raw-html.png) ### Events The package also logs all events that are fired when an email is sent. This is useful to track the email sending process. -![Filament Mails](https://raw.githubusercontent.com/vormkracht10/filament-mails/main/docs/events-list.png) -![Filament Mails](https://raw.githubusercontent.com/vormkracht10/filament-mails/main/docs/event-details.png) +![Filament Mails](https://raw.githubusercontent.com/backstagephp/filament-mails/main/docs/events-list.png) +![Filament Mails](https://raw.githubusercontent.com/backstagephp/filament-mails/main/docs/event-details.png) ## Testing @@ -172,7 +172,7 @@ Please review [our security policy](../../security/policy) on how to report secu ## Credits -- [Baspa](https://github.com/vormkracht10) +- [Baspa](https://github.com/backstagephp) - [Mark van Eijk](https://github.com/markvaneijk) - [All Contributors](../../contributors) diff --git a/composer.json b/composer.json index d79b94a..1471e8c 100644 --- a/composer.json +++ b/composer.json @@ -1,15 +1,15 @@ { - "name": "vormkracht10/filament-mails", + "name": "backstagephp/filament-mails", "description": "View logged mails and events in a beautiful Filament UI.", "keywords": [ - "vormkracht10", + "backstagephp", "laravel", "filament-mails" ], - "homepage": "https://github.com/vormkracht10/filament-mails", + "homepage": "https://github.com/backstagephp/filament-mails", "support": { - "issues": "https://github.com/vormkracht10/filament-mails/issues", - "source": "https://github.com/vormkracht10/filament-mails" + "issues": "https://github.com/backstagephp/filament-mails/issues", + "source": "https://github.com/backstagephp/filament-mails" }, "license": "MIT", "authors": [ @@ -23,7 +23,7 @@ "php": "^8.2", "filament/filament": "^4.0", "spatie/laravel-package-tools": "^1.15.0", - "vormkracht10/laravel-mails": "^1.0" + "backstagephp/laravel-mails": "^1.0" }, "require-dev": { "laravel/pint": "^1.16", @@ -35,12 +35,12 @@ }, "autoload": { "psr-4": { - "Vormkracht10\\FilamentMails\\": "src/" + "Backstage\\FilamentMails\\": "src/" } }, "autoload-dev": { "psr-4": { - "Vormkracht10\\FilamentMails\\Tests\\": "tests/" + "Backstage\\FilamentMails\\Tests\\": "tests/" } }, "scripts": { @@ -61,10 +61,10 @@ "extra": { "laravel": { "providers": [ - "Vormkracht10\\FilamentMails\\FilamentMailsServiceProvider" + "Backstage\\FilamentMails\\FilamentMailsServiceProvider" ], "aliases": { - "FilamentMails": "Vormkracht10\\FilamentMails\\Facades\\FilamentMails" + "FilamentMails": "Backstage\\FilamentMails\\Facades\\FilamentMails" } } }, diff --git a/config/filament-mails.php b/config/filament-mails.php index 69da592..e2680ec 100644 --- a/config/filament-mails.php +++ b/config/filament-mails.php @@ -1,8 +1,8 @@ [ diff --git a/phpunit.xml.dist b/phpunit.xml.dist index f7d5428..ae36eaa 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -16,7 +16,7 @@ backupStaticProperties="false" > - + tests diff --git a/src/Controllers/MailDownloadController.php b/src/Controllers/MailDownloadController.php index 795cc42..7d2e28d 100644 --- a/src/Controllers/MailDownloadController.php +++ b/src/Controllers/MailDownloadController.php @@ -1,10 +1,10 @@ publishConfigFile() ->publishMigrations() ->askToRunMigrations() - ->askToStarRepoOnGitHub('vormkracht10/filament-mails'); + ->askToStarRepoOnGitHub('backstagephp/filament-mails'); }); $configFileName = $package->shortName(); @@ -87,7 +87,7 @@ public function packageBooted(): void protected function getAssetPackageName(): ?string { - return 'vormkracht10/filament-mails'; + return 'backstagephp/filament-mails'; } /** diff --git a/src/Resources/EventResource.php b/src/Resources/EventResource.php index 5608dc3..1723880 100644 --- a/src/Resources/EventResource.php +++ b/src/Resources/EventResource.php @@ -1,6 +1,6 @@ in(__DIR__); diff --git a/tests/TestCase.php b/tests/TestCase.php index 6cce5ee..405ff34 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -1,6 +1,6 @@ 'Vormkracht10\\FilamentMails\\Database\\Factories\\' . class_basename($modelName) . 'Factory' + fn (string $modelName) => 'Backstage\\FilamentMails\\Database\\Factories\\' . class_basename($modelName) . 'Factory' ); } From 56a466b8ab7dca59960d8a9f6d27e57241633976 Mon Sep 17 00:00:00 2001 From: Baspa Date: Tue, 24 Jun 2025 10:29:29 +0200 Subject: [PATCH 08/10] Update composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 1471e8c..be118bb 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "php": "^8.2", "filament/filament": "^4.0", "spatie/laravel-package-tools": "^1.15.0", - "backstagephp/laravel-mails": "^1.0" + "backstage/laravel-mails": "^1.0" }, "require-dev": { "laravel/pint": "^1.16", From 3b3dc666c9a925a3004080a0f3a23acb5afaca9e Mon Sep 17 00:00:00 2001 From: Baspa Date: Tue, 24 Jun 2025 11:06:21 +0200 Subject: [PATCH 09/10] update --- README.md | 2 +- composer.json | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 04fd5de..619b539 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ The package is built on top of [Laravel Mails](https://github.com/backstagephp/l You can install the package via composer: ```bash -composer require backstagephp/filament-mails +composer require backstage/filament-mails ``` You can publish and run the migrations with: diff --git a/composer.json b/composer.json index be118bb..c5b7ff8 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "backstagephp/filament-mails", + "name": "backstage/filament-mails", "description": "View logged mails and events in a beautiful Filament UI.", "keywords": [ "backstagephp", @@ -23,7 +23,7 @@ "php": "^8.2", "filament/filament": "^4.0", "spatie/laravel-package-tools": "^1.15.0", - "backstage/laravel-mails": "^1.0" + "backstage/laravel-mails": "^2.0" }, "require-dev": { "laravel/pint": "^1.16", @@ -69,5 +69,11 @@ } }, "minimum-stability": "dev", - "prefer-stable": true + "prefer-stable": true, + "repositories": { + "backstage/laravel-mails": { + "type": "vcs", + "url": "git@github.com:backstagephp/laravel-mails.git" + } + } } From ff9e17f555ca3b7ca72456ef8f43b3665163717b Mon Sep 17 00:00:00 2001 From: Baspa <10845460+Baspa@users.noreply.github.com> Date: Tue, 24 Jun 2025 09:06:44 +0000 Subject: [PATCH 10/10] Fix styling --- src/Controllers/MailDownloadController.php | 2 +- src/Controllers/MailPreviewController.php | 2 +- src/FilamentMails.php | 2 +- src/FilamentMailsPlugin.php | 6 +++--- src/FilamentMailsServiceProvider.php | 2 +- src/Resources/EventResource.php | 8 ++++---- src/Resources/EventResource/Pages/ListEvents.php | 6 +++--- src/Resources/EventResource/Pages/ViewEvent.php | 2 +- src/Resources/MailResource.php | 14 +++++++------- src/Resources/MailResource/Pages/ListMails.php | 6 +++--- src/Resources/MailResource/Pages/ViewMail.php | 2 +- src/Resources/SuppressionResource.php | 10 +++++----- .../SuppressionResource/Pages/ListSuppressions.php | 2 +- tests/TestCase.php | 2 +- 14 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/Controllers/MailDownloadController.php b/src/Controllers/MailDownloadController.php index 7d2e28d..7898a66 100644 --- a/src/Controllers/MailDownloadController.php +++ b/src/Controllers/MailDownloadController.php @@ -2,9 +2,9 @@ namespace Backstage\FilamentMails\Controllers; +use Backstage\Mails\Models\MailAttachment; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Config; -use Backstage\Mails\Models\MailAttachment; class MailDownloadController extends Controller { diff --git a/src/Controllers/MailPreviewController.php b/src/Controllers/MailPreviewController.php index 6f311b5..90e66fa 100644 --- a/src/Controllers/MailPreviewController.php +++ b/src/Controllers/MailPreviewController.php @@ -2,9 +2,9 @@ namespace Backstage\FilamentMails\Controllers; +use Backstage\Mails\Models\Mail; use Illuminate\Http\Request; use Illuminate\Routing\Controller; -use Backstage\Mails\Models\Mail; class MailPreviewController extends Controller { diff --git a/src/FilamentMails.php b/src/FilamentMails.php index fc458f0..397afc0 100644 --- a/src/FilamentMails.php +++ b/src/FilamentMails.php @@ -2,9 +2,9 @@ namespace Backstage\FilamentMails; -use Illuminate\Support\Facades\Route; use Backstage\FilamentMails\Controllers\MailDownloadController; use Backstage\FilamentMails\Controllers\MailPreviewController; +use Illuminate\Support\Facades\Route; class FilamentMails { diff --git a/src/FilamentMailsPlugin.php b/src/FilamentMailsPlugin.php index faa98e6..376c99c 100644 --- a/src/FilamentMailsPlugin.php +++ b/src/FilamentMailsPlugin.php @@ -2,12 +2,12 @@ namespace Backstage\FilamentMails; -use Filament\Contracts\Plugin; -use Filament\Panel; -use Filament\Support\Colors\Color; use Backstage\FilamentMails\Resources\EventResource; use Backstage\FilamentMails\Resources\MailResource; use Backstage\FilamentMails\Resources\SuppressionResource; +use Filament\Contracts\Plugin; +use Filament\Panel; +use Filament\Support\Colors\Color; class FilamentMailsPlugin implements Plugin { diff --git a/src/FilamentMailsServiceProvider.php b/src/FilamentMailsServiceProvider.php index 3a90ed9..b2f499f 100644 --- a/src/FilamentMailsServiceProvider.php +++ b/src/FilamentMailsServiceProvider.php @@ -2,6 +2,7 @@ namespace Backstage\FilamentMails; +use Backstage\FilamentMails\Testing\TestsFilamentMails; use Filament\Support\Assets\AlpineComponent; use Filament\Support\Assets\Asset; use Filament\Support\Assets\Css; @@ -13,7 +14,6 @@ use Spatie\LaravelPackageTools\Commands\InstallCommand; use Spatie\LaravelPackageTools\Package; use Spatie\LaravelPackageTools\PackageServiceProvider; -use Backstage\FilamentMails\Testing\TestsFilamentMails; class FilamentMailsServiceProvider extends PackageServiceProvider { diff --git a/src/Resources/EventResource.php b/src/Resources/EventResource.php index c9dc557..cd4c5fc 100644 --- a/src/Resources/EventResource.php +++ b/src/Resources/EventResource.php @@ -2,6 +2,10 @@ namespace Backstage\FilamentMails\Resources; +use Backstage\FilamentMails\Resources\EventResource\Pages\ListEvents; +use Backstage\FilamentMails\Resources\EventResource\Pages\ViewEvent; +use Backstage\Mails\Enums\EventType; +use Backstage\Mails\Models\MailEvent; use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteBulkAction; use Filament\Actions\ViewAction; @@ -13,10 +17,6 @@ use Filament\Schemas\Schema; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; -use Backstage\FilamentMails\Resources\EventResource\Pages\ListEvents; -use Backstage\FilamentMails\Resources\EventResource\Pages\ViewEvent; -use Backstage\Mails\Enums\EventType; -use Backstage\Mails\Models\MailEvent; class EventResource extends Resource { diff --git a/src/Resources/EventResource/Pages/ListEvents.php b/src/Resources/EventResource/Pages/ListEvents.php index c8580b0..cbb41fd 100644 --- a/src/Resources/EventResource/Pages/ListEvents.php +++ b/src/Resources/EventResource/Pages/ListEvents.php @@ -2,12 +2,12 @@ namespace Backstage\FilamentMails\Resources\EventResource\Pages; -use Filament\Resources\Pages\ListRecords; -use Filament\Schemas\Components\Tabs\Tab; -use Illuminate\Database\Eloquent\Builder; use Backstage\FilamentMails\Resources\EventResource; use Backstage\Mails\Enums\EventType; use Backstage\Mails\Models\MailEvent; +use Filament\Resources\Pages\ListRecords; +use Filament\Schemas\Components\Tabs\Tab; +use Illuminate\Database\Eloquent\Builder; class ListEvents extends ListRecords { diff --git a/src/Resources/EventResource/Pages/ViewEvent.php b/src/Resources/EventResource/Pages/ViewEvent.php index aaaaa3b..94c7358 100644 --- a/src/Resources/EventResource/Pages/ViewEvent.php +++ b/src/Resources/EventResource/Pages/ViewEvent.php @@ -2,8 +2,8 @@ namespace Backstage\FilamentMails\Resources\EventResource\Pages; -use Filament\Resources\Pages\ViewRecord; use Backstage\FilamentMails\Resources\EventResource; +use Filament\Resources\Pages\ViewRecord; class ViewEvent extends ViewRecord { diff --git a/src/Resources/MailResource.php b/src/Resources/MailResource.php index f57e938..9f83e34 100644 --- a/src/Resources/MailResource.php +++ b/src/Resources/MailResource.php @@ -2,6 +2,13 @@ namespace Backstage\FilamentMails\Resources; +use Backstage\FilamentMails\Resources\MailResource\Pages\ListMails; +use Backstage\FilamentMails\Resources\MailResource\Pages\ViewMail; +use Backstage\FilamentMails\Resources\MailResource\Widgets\MailStatsWidget; +use Backstage\Mails\Actions\ResendMail; +use Backstage\Mails\Enums\EventType; +use Backstage\Mails\Models\Mail; +use Backstage\Mails\Models\MailEvent; use Filament\Actions\Action; use Filament\Actions\BulkAction; use Filament\Actions\BulkActionGroup; @@ -27,13 +34,6 @@ use Illuminate\Support\Collection; use Illuminate\Support\HtmlString; use Illuminate\View\View; -use Backstage\FilamentMails\Resources\MailResource\Pages\ListMails; -use Backstage\FilamentMails\Resources\MailResource\Pages\ViewMail; -use Backstage\FilamentMails\Resources\MailResource\Widgets\MailStatsWidget; -use Backstage\Mails\Actions\ResendMail; -use Backstage\Mails\Enums\EventType; -use Backstage\Mails\Models\Mail; -use Backstage\Mails\Models\MailEvent; class MailResource extends Resource { diff --git a/src/Resources/MailResource/Pages/ListMails.php b/src/Resources/MailResource/Pages/ListMails.php index 94ae8ca..ae44853 100644 --- a/src/Resources/MailResource/Pages/ListMails.php +++ b/src/Resources/MailResource/Pages/ListMails.php @@ -2,12 +2,12 @@ namespace Backstage\FilamentMails\Resources\MailResource\Pages; -use Filament\Resources\Pages\ListRecords; -use Filament\Schemas\Components\Tabs\Tab; -use Illuminate\Database\Eloquent\Builder; use Backstage\FilamentMails\Resources\MailResource; use Backstage\FilamentMails\Resources\MailResource\Widgets\MailStatsWidget; use Backstage\Mails\Models\Mail; +use Filament\Resources\Pages\ListRecords; +use Filament\Schemas\Components\Tabs\Tab; +use Illuminate\Database\Eloquent\Builder; class ListMails extends ListRecords { diff --git a/src/Resources/MailResource/Pages/ViewMail.php b/src/Resources/MailResource/Pages/ViewMail.php index e5a00a5..06a3dd1 100644 --- a/src/Resources/MailResource/Pages/ViewMail.php +++ b/src/Resources/MailResource/Pages/ViewMail.php @@ -2,8 +2,8 @@ namespace Backstage\FilamentMails\Resources\MailResource\Pages; -use Filament\Resources\Pages\ViewRecord; use Backstage\FilamentMails\Resources\MailResource; +use Filament\Resources\Pages\ViewRecord; class ViewMail extends ViewRecord { diff --git a/src/Resources/SuppressionResource.php b/src/Resources/SuppressionResource.php index 0493c4d..3cd7ead 100644 --- a/src/Resources/SuppressionResource.php +++ b/src/Resources/SuppressionResource.php @@ -2,6 +2,11 @@ namespace Backstage\FilamentMails\Resources; +use Backstage\FilamentMails\Resources\SuppressionResource\Pages\ListSuppressions; +use Backstage\Mails\Enums\EventType; +use Backstage\Mails\Enums\Provider; +use Backstage\Mails\Events\MailUnsuppressed; +use Backstage\Mails\Models\MailEvent; use Filament\Actions\Action; use Filament\Actions\ViewAction; use Filament\Panel; @@ -10,11 +15,6 @@ use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; -use Backstage\FilamentMails\Resources\SuppressionResource\Pages\ListSuppressions; -use Backstage\Mails\Enums\EventType; -use Backstage\Mails\Enums\Provider; -use Backstage\Mails\Events\MailUnsuppressed; -use Backstage\Mails\Models\MailEvent; class SuppressionResource extends Resource { diff --git a/src/Resources/SuppressionResource/Pages/ListSuppressions.php b/src/Resources/SuppressionResource/Pages/ListSuppressions.php index 7b82780..03282a4 100644 --- a/src/Resources/SuppressionResource/Pages/ListSuppressions.php +++ b/src/Resources/SuppressionResource/Pages/ListSuppressions.php @@ -2,8 +2,8 @@ namespace Backstage\FilamentMails\Resources\SuppressionResource\Pages; -use Filament\Resources\Pages\ListRecords; use Backstage\FilamentMails\Resources\SuppressionResource; +use Filament\Resources\Pages\ListRecords; class ListSuppressions extends ListRecords { diff --git a/tests/TestCase.php b/tests/TestCase.php index 405ff34..c167eec 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -2,6 +2,7 @@ namespace Backstage\FilamentMails\Tests; +use Backstage\FilamentMails\FilamentMailsServiceProvider; use BladeUI\Heroicons\BladeHeroiconsServiceProvider; use BladeUI\Icons\BladeIconsServiceProvider; use Filament\Actions\ActionsServiceProvider; @@ -16,7 +17,6 @@ use Livewire\LivewireServiceProvider; use Orchestra\Testbench\TestCase as Orchestra; use RyanChandler\BladeCaptureDirective\BladeCaptureDirectiveServiceProvider; -use Backstage\FilamentMails\FilamentMailsServiceProvider; class TestCase extends Orchestra {