feat: Refactor Filament resources and fix tenant admin login

This commit is contained in:
2025-09-09 21:21:47 +02:00
parent 04ac85107c
commit 9da6803eaa
29 changed files with 627 additions and 459 deletions

View File

@@ -7,12 +7,15 @@ use App\Models\Photo;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use UnitEnum;
use BackedEnum;
use Filament\Actions;
class PhotoResource extends Resource
{
protected static ?string $model = Photo::class;
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-photo';
protected static string|\UnitEnum|null $navigationGroup = 'Content';
protected static BackedEnum|string|null $navigationIcon = 'heroicon-o-photo';
protected static UnitEnum|string|null $navigationGroup = 'Content';
protected static ?int $navigationSort = 30;
public static function table(Table $table): Table
@@ -28,32 +31,29 @@ class PhotoResource extends Resource
])
->filters([])
->actions([
Tables\Actions\ViewAction::make(),
Tables\Actions\EditAction::make(),
Tables\Actions\Action::make('feature')
Actions\EditAction::make(),
Actions\Action::make('feature')
->label('Feature')
->visible(fn($record) => ! (bool)$record->is_featured)
->action(fn($record) => $record->update(['is_featured' => 1]))
->visible(fn($record) => !$record->is_featured)
->action(fn($record) => $record->update(['is_featured' => true]))
->icon('heroicon-o-star'),
Tables\Actions\Action::make('unfeature')
Actions\Action::make('unfeature')
->label('Unfeature')
->visible(fn($record) => (bool)$record->is_featured)
->action(fn($record) => $record->update(['is_featured' => 0]))
->visible(fn($record) => $record->is_featured)
->action(fn($record) => $record->update(['is_featured' => false]))
->icon('heroicon-o-star'),
Tables\Actions\DeleteAction::make(),
Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\BulkAction::make('feature')
->label('Feature selected')
->icon('heroicon-o-star')
->action(fn($records) => $records->each->update(['is_featured' => 1])),
Tables\Actions\BulkAction::make('unfeature')
->label('Unfeature selected')
->icon('heroicon-o-star')
->action(fn($records) => $records->each->update(['is_featured' => 0])),
Tables\Actions\DeleteBulkAction::make(),
]),
Actions\BulkAction::make('feature')
->label('Feature selected')
->icon('heroicon-o-star')
->action(fn($records) => $records->each->update(['is_featured' => true])),
Actions\BulkAction::make('unfeature')
->label('Unfeature selected')
->icon('heroicon-o-star')
->action(fn($records) => $records->each->update(['is_featured' => false])),
Actions\DeleteBulkAction::make(),
]);
}
@@ -65,26 +65,4 @@ class PhotoResource extends Resource
'edit' => Pages\EditPhoto::route('/{record}/edit'),
];
}
}
namespace App\Filament\Resources\PhotoResource\Pages;
use App\Filament\Resources\PhotoResource;
use Filament\Resources\Pages\ListRecords;
use Filament\Resources\Pages\ViewRecord;
use Filament\Resources\Pages\EditRecord;
class ListPhotos extends ListRecords
{
protected static string $resource = PhotoResource::class;
}
class ViewPhoto extends ViewRecord
{
protected static string $resource = PhotoResource::class;
}
class EditPhoto extends EditRecord
{
protected static string $resource = PhotoResource::class;
}
}