Files
persegi/app/Filament/Widgets/ActivityLogWidget.php
T

40 lines
1.4 KiB
PHP

<?php
namespace App\Filament\Widgets;
use App\Models\ActivityLog;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Filament\Widgets\TableWidget as BaseWidget;
use Illuminate\Database\Eloquent\Builder;
class ActivityLogWidget extends BaseWidget
{
protected static ?int $sort = 2;
protected int|string|array $columnSpan = 'full';
protected static ?string $heading = 'Aktivitas Terbaru';
public function table(Table $table): Table
{
return $table
->query(ActivityLog::with('user')->latest()->limit(15))
->columns([
TextColumn::make('created_at')->label('Waktu')
->dateTime('d M Y H:i')->sortable(),
TextColumn::make('user.name')->label('Oleh')->default('Sistem'),
TextColumn::make('action')->label('Aksi')->badge()
->color(fn ($state) => match ($state) {
'created' => 'success',
'verified' => 'info',
'approved' => 'success',
'rejected' => 'danger',
'status_changed' => 'warning',
'voted' => 'info',
default => 'gray',
}),
TextColumn::make('description')->label('Keterangan')->wrap(),
])
->paginated(false);
}
}