Skip to content

Commit a4c28d4

Browse files
committed
fix: resolving dep. issues when migrating to filamentphpv4
1 parent f1a6079 commit a4c28d4

File tree

20 files changed

+198
-208
lines changed

20 files changed

+198
-208
lines changed

.lando.dist.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
22
name: eclipsephp-cms
33
services:
44
appserver:
5-
type: php:custom
5+
type: php:8.3
66
xdebug: "debug,develop,coverage"
77
via: cli
8-
overrides:
9-
image: slimdeluxe/php:8.2-v1.2
108
tooling:
119
php:
1210
service: appserver

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@
4141
}
4242
},
4343
"require": {
44-
"php": "^8.2",
44+
"php": "^8.3",
4545
"bezhansalleh/filament-shield": "^4.0",
4646
"datalinx/php-utils": "^2.5",
4747
"eclipsephp/common": "dev-main",
4848
"filament/filament": "^4.0",
49-
"filament/spatie-laravel-translatable-plugin": "^3.3",
49+
"lara-zeus/spatie-translatable": "^1.0",
5050
"spatie/image": "^3.8",
51-
"solution-forest/filament-tree": "^2.1",
51+
"solution-forest/filament-tree": "^3.0",
5252
"spatie/laravel-package-tools": "^1.19"
5353
},
5454
"require-dev": {

database/seeders/BannerSeeder.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ private function addImages($banner, $type, $suffix): void
5858

5959
$banner->images()->create([
6060
'type_id' => $type->id,
61-
'file' => $hidpiFilename,
61+
'file' => ['en' => $hidpiFilename, 'sl' => $hidpiFilename],
6262
'image_width' => $hidpiWidth,
6363
'image_height' => $hidpiHeight,
6464
'is_hidpi' => true,
@@ -74,7 +74,7 @@ private function addImages($banner, $type, $suffix): void
7474

7575
$banner->images()->create([
7676
'type_id' => $type->id,
77-
'file' => $regularFilename,
77+
'file' => ['en' => $regularFilename, 'sl' => $regularFilename],
7878
'image_width' => $type->image_width,
7979
'image_height' => $type->image_height,
8080
'is_hidpi' => false,

src/Admin/Filament/Resources/BannerPositionResource.php

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,26 @@
55
use BezhanSalleh\FilamentShield\Contracts\HasShieldPermissions;
66
use Eclipse\Cms\Admin\Filament\Resources\BannerPositionResource\Pages;
77
use Eclipse\Cms\Models\Banner\Position as BannerPosition;
8+
use Filament\Actions;
89
use Filament\Forms;
9-
use Filament\Forms\Form;
10-
use Filament\Resources\Concerns\Translatable;
1110
use Filament\Resources\Resource;
11+
use Filament\Schemas\Components\Section;
12+
use Filament\Schemas\Schema;
1213
use Filament\Tables;
1314
use Filament\Tables\Table;
1415
use Illuminate\Database\Eloquent\Builder;
1516
use Illuminate\Database\Eloquent\SoftDeletingScope;
17+
use LaraZeus\SpatieTranslatable\Resources\Concerns\Translatable;
1618

1719
class BannerPositionResource extends Resource implements HasShieldPermissions
1820
{
1921
use Translatable;
2022

2123
protected static ?string $model = BannerPosition::class;
2224

23-
protected static ?string $navigationIcon = 'heroicon-o-photo';
25+
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-photo';
2426

25-
protected static ?string $navigationGroup = 'CMS';
27+
protected static string|\UnitEnum|null $navigationGroup = 'CMS';
2628

2729
protected static ?string $modelLabel = 'Banner';
2830

@@ -44,11 +46,12 @@ public static function getPermissionPrefixes(): array
4446
];
4547
}
4648

47-
public static function form(Form $form): Form
49+
public static function form(Schema $schema): Schema
4850
{
49-
return $form
50-
->schema([
51-
Forms\Components\Section::make('Position')
51+
return $schema
52+
->components([
53+
Section::make('Position')
54+
->columnSpanFull()
5255
->hidden(
5356
fn (string $context): bool => ($context === 'view')
5457
)
@@ -64,7 +67,8 @@ public static function form(Form $form): Form
6467
->alphaDash(),
6568
]),
6669

67-
Forms\Components\Section::make('Image Types')
70+
Section::make('Image Types')
71+
->columnSpanFull()
6872
->hidden(
6973
fn (string $context): bool => ($context === 'view')
7074
)
@@ -131,17 +135,17 @@ public static function table(Table $table): Table
131135
->filters([
132136
Tables\Filters\TrashedFilter::make(),
133137
])
134-
->actions([
135-
Tables\Actions\ViewAction::make()
138+
->recordActions([
139+
Actions\ViewAction::make()
136140
->label('Manage banners'),
137-
Tables\Actions\EditAction::make()
141+
Actions\EditAction::make()
138142
->label('Edit position'),
139-
Tables\Actions\DeleteAction::make()
143+
Actions\DeleteAction::make()
140144
->label('Delete position'),
141145
])
142-
->bulkActions([
143-
Tables\Actions\BulkActionGroup::make([
144-
Tables\Actions\DeleteBulkAction::make(),
146+
->toolbarActions([
147+
Actions\BulkActionGroup::make([
148+
Actions\DeleteBulkAction::make(),
145149
]),
146150
]);
147151
}

src/Admin/Filament/Resources/BannerPositionResource/Pages/CreateBannerPosition.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
namespace Eclipse\Cms\Admin\Filament\Resources\BannerPositionResource\Pages;
44

55
use Eclipse\Cms\Admin\Filament\Resources\BannerPositionResource;
6-
use Filament\Actions;
76
use Filament\Resources\Pages\CreateRecord;
7+
use LaraZeus\SpatieTranslatable\Actions\LocaleSwitcher;
8+
use LaraZeus\SpatieTranslatable\Resources\Pages\CreateRecord\Concerns\Translatable;
89

910
class CreateBannerPosition extends CreateRecord
1011
{
11-
use CreateRecord\Concerns\Translatable;
12+
use Translatable;
1213

1314
protected static string $resource = BannerPositionResource::class;
1415

@@ -22,7 +23,7 @@ protected function getRedirectUrl(): string
2223
protected function getHeaderActions(): array
2324
{
2425
return [
25-
Actions\LocaleSwitcher::make(),
26+
LocaleSwitcher::make(),
2627
];
2728
}
2829
}

src/Admin/Filament/Resources/BannerPositionResource/Pages/EditBannerPosition.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
use Eclipse\Cms\Admin\Filament\Resources\BannerPositionResource;
66
use Filament\Actions;
77
use Filament\Resources\Pages\EditRecord;
8+
use LaraZeus\SpatieTranslatable\Actions\LocaleSwitcher;
9+
use LaraZeus\SpatieTranslatable\Resources\Pages\EditRecord\Concerns\Translatable;
810

911
class EditBannerPosition extends EditRecord
1012
{
11-
use EditRecord\Concerns\Translatable;
13+
use Translatable;
1214

1315
protected static ?string $breadcrumb = 'Edit Position';
1416

@@ -17,14 +19,14 @@ class EditBannerPosition extends EditRecord
1719
protected function getHeaderActions(): array
1820
{
1921
return [
22+
LocaleSwitcher::make(),
2023
Actions\ViewAction::make()
2124
->color('primary')
2225
->icon('heroicon-o-photo')
2326
->label('Manage Banners'),
2427
Actions\DeleteAction::make()
2528
->icon('heroicon-o-trash')
2629
->label('Delete Position'),
27-
Actions\LocaleSwitcher::make(),
2830
];
2931
}
3032
}

src/Admin/Filament/Resources/BannerPositionResource/Pages/ListBannerPositions.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,22 @@
55
use Eclipse\Cms\Admin\Filament\Resources\BannerPositionResource;
66
use Filament\Actions;
77
use Filament\Resources\Pages\ListRecords;
8+
use LaraZeus\SpatieTranslatable\Actions\LocaleSwitcher;
9+
use LaraZeus\SpatieTranslatable\Resources\Pages\ListRecords\Concerns\Translatable;
810

911
class ListBannerPositions extends ListRecords
1012
{
11-
use ListRecords\Concerns\Translatable;
13+
use Translatable;
1214

1315
protected static string $resource = BannerPositionResource::class;
1416

1517
protected function getHeaderActions(): array
1618
{
1719
return [
20+
LocaleSwitcher::make(),
1821
Actions\CreateAction::make()
1922
->icon('heroicon-o-plus-circle')
2023
->label('New Position'),
21-
Actions\LocaleSwitcher::make(),
2224
];
2325
}
2426
}

src/Admin/Filament/Resources/BannerPositionResource/Pages/ViewBannerPosition.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
use Eclipse\Cms\Admin\Filament\Resources\BannerPositionResource;
66
use Filament\Actions;
77
use Filament\Resources\Pages\ViewRecord;
8+
use LaraZeus\SpatieTranslatable\Resources\Pages\ViewRecord\Concerns\Translatable;
89

910
class ViewBannerPosition extends ViewRecord
1011
{
11-
use ViewRecord\Concerns\Translatable;
12+
use Translatable;
1213

1314
protected static ?string $breadcrumb = 'Manage Banners';
1415

src/Admin/Filament/Resources/BannerPositionResource/RelationManagers/BannerRelationManager.php

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,19 @@
66
use Eclipse\Cms\Rules\BannerImageDimensionRule;
77
use Eclipse\Common\Filament\Tables\Columns\ImageColumn;
88
use Eclipse\Common\Helpers\MediaHelper;
9+
use Filament\Actions;
910
use Filament\Forms;
10-
use Filament\Forms\Components\FileUpload;
11-
use Filament\Forms\Form;
12-
use Filament\Forms\Get;
1311
use Filament\Infolists;
14-
use Filament\Infolists\Infolist;
15-
use Filament\Resources\RelationManagers\Concerns\Translatable;
1612
use Filament\Resources\RelationManagers\RelationManager;
13+
use Filament\Schemas\Components\Grid;
14+
use Filament\Schemas\Components\Utilities\Get;
15+
use Filament\Schemas\Schema;
1716
use Filament\Tables;
1817
use Filament\Tables\Table;
1918
use Illuminate\Database\Eloquent\Builder;
2019
use Illuminate\Database\Eloquent\SoftDeletingScope;
20+
use LaraZeus\SpatieTranslatable\Actions\LocaleSwitcher;
21+
use LaraZeus\SpatieTranslatable\Resources\RelationManagers\Concerns\Translatable;
2122

2223
class BannerRelationManager extends RelationManager
2324
{
@@ -49,11 +50,10 @@ protected function getDynamicImageColumns(): array
4950
$locale = $this->activeLocale ?? app()->getLocale();
5051
$image = $record->images->where('type_id', $imageType->id)->first();
5152

52-
if ($image && $image->getTranslation('file', $locale)) {
53+
if ($image?->getTranslation('file', $locale)) {
5354
return $image->getTranslation('file', $locale);
5455
}
5556

56-
// Fallback for test environment when MediaHelper is not autoloaded
5757
if (class_exists(MediaHelper::class)) {
5858
return MediaHelper::getPlaceholderImageUrl(
5959
'Not Found',
@@ -74,12 +74,12 @@ protected function getDynamicImageColumns(): array
7474
})->toArray();
7575
}
7676

77-
public function form(Form $form): Form
77+
public function form(Schema $schema): Schema
7878
{
79-
return $form
80-
->schema([
81-
Forms\Components\Section::make()
82-
->compact()
79+
return $schema
80+
->components([
81+
Grid::make()
82+
->columnSpanFull()
8383
->schema([
8484
Forms\Components\TextInput::make('name')
8585
->required()
@@ -106,7 +106,7 @@ public function form(Form $form): Form
106106
Forms\Components\Hidden::make('is_hidpi'),
107107
Forms\Components\Hidden::make('image_width'),
108108
Forms\Components\Hidden::make('image_height'),
109-
FileUpload::make('file')
109+
Forms\Components\FileUpload::make('file')
110110
->hiddenLabel()
111111
->image()
112112
->directory('banners')
@@ -213,10 +213,10 @@ function (Get $get): BannerImageDimensionRule|string {
213213
]);
214214
}
215215

216-
public function infolist(Infolist $infolist): Infolist
216+
public function infolist(Schema $schema): Schema
217217
{
218-
return $infolist
219-
->schema([
218+
return $schema
219+
->components([
220220
Infolists\Components\TextEntry::make('name'),
221221

222222
Infolists\Components\TextEntry::make('link')
@@ -230,15 +230,14 @@ public function infolist(Infolist $infolist): Infolist
230230
->boolean()
231231
->label('Open in new tab'),
232232

233-
Infolists\Components\Grid::make()
233+
Grid::make()
234234
->columnSpanFull()
235235
->schema(
236236
fn (Banner $record) => $this->getOwnerRecord()->imageTypes()->get()
237237
->map(function ($imageType) use ($record) {
238238
$locale = app()->getLocale();
239239
$image = $record->images->where('type_id', $imageType->id)->first();
240240

241-
// Only show image entry if there's an actual image
242241
if (! $image || ! $image->getTranslation('file', $locale)) {
243242
return null;
244243
}
@@ -250,7 +249,7 @@ public function infolist(Infolist $infolist): Infolist
250249
->height('auto')
251250
->getStateUsing(fn () => $image->getTranslation('file', $locale));
252251
})
253-
->filter() // Remove null entries
252+
->filter()
254253
->toArray()
255254
),
256255
]);
@@ -306,8 +305,8 @@ public function table(Table $table): Table
306305
])
307306
->reorderable('sort')
308307
->headerActions([
309-
Tables\Actions\LocaleSwitcher::make(),
310-
Tables\Actions\CreateAction::make()
308+
LocaleSwitcher::make(),
309+
Actions\CreateAction::make()
311310
->icon('heroicon-o-plus-circle')
312311
->label('Add banner')
313312
->mutateFormDataUsing(function (array $data): array {
@@ -319,13 +318,13 @@ public function table(Table $table): Table
319318
}),
320319
])
321320
->actions([
322-
Tables\Actions\ViewAction::make(),
323-
Tables\Actions\EditAction::make(),
324-
Tables\Actions\DeleteAction::make(),
321+
Actions\ViewAction::make(),
322+
Actions\EditAction::make(),
323+
Actions\DeleteAction::make(),
325324
])
326325
->bulkActions([
327-
Tables\Actions\BulkActionGroup::make([
328-
Tables\Actions\DeleteBulkAction::make(),
326+
Actions\BulkActionGroup::make([
327+
Actions\DeleteBulkAction::make(),
329328
]),
330329
])
331330
->modifyQueryUsing(

0 commit comments

Comments
 (0)