Fix schedule actions (#1992)

This commit is contained in:
Charles 2025-12-12 18:31:46 -05:00 committed by GitHub
parent 9449d78144
commit fdd9faaaa3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 28 additions and 29 deletions

View File

@ -123,7 +123,7 @@ class ListLogs extends BaseListLogs
} }
}), }),
DeleteAction::make() DeleteAction::make()
->icon('tabler-trash')->iconSize(IconSize::Medium)->iconButton(), ->iconSize(IconSize::Medium)->iconButton(),
]); ]);
} }
} }

View File

@ -22,7 +22,7 @@ class ViewLogs extends BaseViewLog
BackAction::make() BackAction::make()
->icon('tabler-arrow-left')->iconSize(IconSize::ExtraLarge)->iconButton(), ->icon('tabler-arrow-left')->iconSize(IconSize::ExtraLarge)->iconButton(),
DeleteAction::make(withTooltip: true) DeleteAction::make(withTooltip: true)
->icon('tabler-trash')->iconSize(IconSize::ExtraLarge)->iconButton(), ->iconSize(IconSize::ExtraLarge)->iconButton(),
DownloadAction::make(withTooltip: true) DownloadAction::make(withTooltip: true)
->icon('tabler-file-download')->iconSize(IconSize::ExtraLarge)->iconButton(), ->icon('tabler-file-download')->iconSize(IconSize::ExtraLarge)->iconButton(),
Action::make('uploadLogs') Action::make('uploadLogs')

View File

@ -24,7 +24,7 @@ class ExportEggAction extends Action
$this->iconButton(); $this->iconButton();
$this->icon('tabler-file-export'); $this->icon('tabler-download');
$this->tableIcon('tabler-download'); $this->tableIcon('tabler-download');

View File

@ -2,15 +2,19 @@
namespace App\Filament\Server\Resources\Schedules\Pages; namespace App\Filament\Server\Resources\Schedules\Pages;
use App\Enums\ScheduleStatus;
use App\Enums\SubuserPermission;
use App\Facades\Activity; use App\Facades\Activity;
use App\Filament\Components\Actions\ExportScheduleAction; use App\Filament\Components\Actions\ExportScheduleAction;
use App\Filament\Server\Resources\Schedules\ScheduleResource; use App\Filament\Server\Resources\Schedules\ScheduleResource;
use App\Models\Schedule; use App\Models\Schedule;
use App\Services\Schedules\ProcessScheduleService;
use App\Traits\Filament\CanCustomizeHeaderActions; use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets; use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action; use Filament\Actions\Action;
use Filament\Actions\ActionGroup; use Filament\Actions\ActionGroup;
use Filament\Actions\DeleteAction; use Filament\Actions\DeleteAction;
use Filament\Facades\Filament;
use Filament\Resources\Pages\EditRecord; use Filament\Resources\Pages\EditRecord;
use Filament\Support\Enums\IconSize; use Filament\Support\Enums\IconSize;
@ -49,22 +53,36 @@ class EditSchedule extends EditRecord
{ {
return [ return [
DeleteAction::make() DeleteAction::make()
->hiddenLabel()->iconButton()->iconSize(IconSize::ExtraLarge) ->hiddenLabel()
->iconButton()->iconSize(IconSize::ExtraLarge)
->tooltip(trans('server/schedule.delete')) ->tooltip(trans('server/schedule.delete'))
->after(function ($record) { ->after(function ($record) {
Activity::event('server:schedule.delete') Activity::event('server:schedule.delete')
->property('name', $record->name) ->property('name', $record->name)
->log(); ->log();
}), }),
Action::make('run_now')
->iconButton()->iconSize(IconSize::ExtraLarge)
->icon('tabler-run')
->authorize(fn () => user()?->can(SubuserPermission::ScheduleUpdate, Filament::getTenant()))
->tooltip(fn (Schedule $schedule) => $schedule->tasks->count() === 0 ? trans('server/schedule.no_tasks') : ($schedule->status === ScheduleStatus::Processing ? ScheduleStatus::Processing->getLabel() : trans('server/schedule.run_now')))
->color(fn (Schedule $schedule) => $schedule->tasks->count() === 0 || $schedule->status === ScheduleStatus::Processing ? 'warning' : 'primary')
->disabled(fn (Schedule $schedule) => $schedule->tasks->count() === 0 || $schedule->status === ScheduleStatus::Processing)
->action(function (ProcessScheduleService $service, Schedule $schedule) {
$service->handle($schedule, true);
Activity::event('server:schedule.execute')
->subject($schedule)
->property('name', $schedule->name)
->log();
$this->fillForm();
}),
ExportScheduleAction::make(), ExportScheduleAction::make(),
$this->getSaveFormAction()->formId('form') $this->getSaveFormAction()->formId('form')
->hiddenLabel()->iconButton()->iconSize(IconSize::ExtraLarge) ->hiddenLabel()->iconButton()->iconSize(IconSize::ExtraLarge)
->icon('tabler-device-floppy') ->icon('tabler-device-floppy')
->tooltip(trans('server/schedule.save')), ->tooltip(trans('server/schedule.save')),
$this->getCancelFormAction()->formId('form')
->hiddenLabel()->iconButton()->iconSize(IconSize::ExtraLarge)
->icon('tabler-arrow-left')
->tooltip(trans('server/schedule.cancel')),
]; ];
} }

View File

@ -2,18 +2,12 @@
namespace App\Filament\Server\Resources\Schedules\Pages; namespace App\Filament\Server\Resources\Schedules\Pages;
use App\Enums\ScheduleStatus;
use App\Enums\SubuserPermission;
use App\Facades\Activity;
use App\Filament\Server\Resources\Schedules\ScheduleResource; use App\Filament\Server\Resources\Schedules\ScheduleResource;
use App\Models\Schedule;
use App\Services\Schedules\ProcessScheduleService;
use App\Traits\Filament\CanCustomizeHeaderActions; use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets; use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action; use Filament\Actions\Action;
use Filament\Actions\ActionGroup; use Filament\Actions\ActionGroup;
use Filament\Actions\EditAction; use Filament\Actions\EditAction;
use Filament\Facades\Filament;
use Filament\Resources\Pages\ViewRecord; use Filament\Resources\Pages\ViewRecord;
use Filament\Support\Enums\IconSize; use Filament\Support\Enums\IconSize;
@ -28,21 +22,6 @@ class ViewSchedule extends ViewRecord
protected function getDefaultHeaderActions(): array protected function getDefaultHeaderActions(): array
{ {
return [ return [
Action::make('run_now')
->authorize(fn () => user()?->can(SubuserPermission::ScheduleUpdate, Filament::getTenant()))
->label(fn (Schedule $schedule) => $schedule->tasks->count() === 0 ? trans('server/schedule.no_tasks') : ($schedule->status === ScheduleStatus::Processing ? ScheduleStatus::Processing->getLabel() : trans('server/schedule.run_now')))
->color(fn (Schedule $schedule) => $schedule->tasks->count() === 0 || $schedule->status === ScheduleStatus::Processing ? 'warning' : 'primary')
->disabled(fn (Schedule $schedule) => $schedule->tasks->count() === 0 || $schedule->status === ScheduleStatus::Processing)
->action(function (ProcessScheduleService $service, Schedule $schedule) {
$service->handle($schedule, true);
Activity::event('server:schedule.execute')
->subject($schedule)
->property('name', $schedule->name)
->log();
$this->fillForm();
}),
EditAction::make() EditAction::make()
->hiddenLabel()->iconButton()->iconSize(IconSize::ExtraLarge) ->hiddenLabel()->iconButton()->iconSize(IconSize::ExtraLarge)
->icon('tabler-calendar-code') ->icon('tabler-calendar-code')

View File

@ -2,6 +2,7 @@
namespace App\Providers\Filament; namespace App\Providers\Filament;
use Filament\Actions\DeleteAction;
use Filament\Actions\View\ActionsIconAlias; use Filament\Actions\View\ActionsIconAlias;
use Filament\Forms\Components\Field; use Filament\Forms\Components\Field;
use Filament\Forms\Components\Select; use Filament\Forms\Components\Select;
@ -84,6 +85,7 @@ class FilamentServiceProvider extends ServiceProvider
}); });
Select::configureUsing(fn (Select $select) => $select->native(false)); Select::configureUsing(fn (Select $select) => $select->native(false));
DeleteAction::configureUsing(fn (DeleteAction $action) => $action->icon('tabler-trash'));
FilamentIcon::register([ FilamentIcon::register([
ActionsIconAlias::DELETE_ACTION => 'tabler-trash', ActionsIconAlias::DELETE_ACTION => 'tabler-trash',