diff --git a/app/Filament/Resources/ResultResource.php b/app/Filament/Resources/ResultResource.php index a80cd87b7..36f06d412 100644 --- a/app/Filament/Resources/ResultResource.php +++ b/app/Filament/Resources/ResultResource.php @@ -8,6 +8,7 @@ use App\Filament\Resources\ResultResource\Pages; use App\Helpers\Number; use App\Helpers\TimeZoneHelper; +use App\Jobs\TruncateResults; use App\Models\Result; use App\Settings\DataMigrationSettings; use App\Settings\GeneralSettings; @@ -316,6 +317,16 @@ public static function table(Table $table): Table ->modalHeading('Migrate History') ->modalDescription(new HtmlString('
v0.16.0 archived the old "results" table, to migrate your history click the button below.
For more information read the docs.
')) ->modalSubmitActionLabel('Yes, migrate it'), + Tables\Actions\ActionGroup::make([ + Tables\Actions\Action::make('truncate') + ->action(fn () => TruncateResults::dispatch(Auth::user())) + ->requiresConfirmation() + ->modalHeading('Truncate Results') + ->modalDescription('Are you sure you want to truncate all results data? This can\'t be undone.') + ->color('danger') + ->icon('heroicon-o-trash') + ->hidden(fn (): bool => ! Auth::user()->is_admin), + ])->dropdownPlacement('bottom-end'), ]) ->defaultSort('created_at', 'desc') ->paginated([5, 15, 25, 50, 100]) diff --git a/app/Jobs/TruncateResults.php b/app/Jobs/TruncateResults.php new file mode 100644 index 000000000..b3202a800 --- /dev/null +++ b/app/Jobs/TruncateResults.php @@ -0,0 +1,48 @@ +truncate(); + } catch (\Throwable $th) { + $this->fail($th); + + return; + } + + Notification::make() + ->title('Results table truncated!') + ->success() + ->sendToDatabase($this->user); + } +}