Sometimes, the simplest solution to manage records can be a Kanban board. It lets users quickly drag and drop database entries between multiple statuses or people columns.
To create the Kanban board, you have to make a custom page like this:
php artisan make:filament-page ManageClientStatus
Once this is done, we have to add the following code to it:
app/Filament/Pages/ManageClientStatus.php
use App\Enums\ClientStatus;use App\Models\Client;use Filament\Notifications\Notification;use Filament\Pages\Page;use Illuminate\Support\Collection;use Livewire\Attributes\On; class ManageClientStatus extends Page{ protected static ?string $navigationIcon = 'heroicon-o-document-text'; protected static string $view = 'filament.pages.manage-client-status'; #[On('statusChangeEvent')] public function changeRecordStatus($id, ClientStatus $status): void { $client = Client::find($id); $client->status = $status; $client->save(); $clientName = $client->name; Notification::make() ->title($clientName . ' Status Updated') ->success() ->send(); } protected function getViewData(): array { // ...
This example is based on our Customer Management CRM