Changes
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Pages;
|
||||
|
||||
use App\Jobs\RunBackup;
|
||||
use Filament\Actions\Action;
|
||||
use Filament\Notifications\Notification;
|
||||
use Filament\Pages\Page;
|
||||
use Illuminate\Contracts\Support\Htmlable;
|
||||
use ShuvroRoy\FilamentSpatieLaravelBackup\FilamentSpatieLaravelBackupPlugin;
|
||||
|
||||
use ShuvroRoy\FilamentSpatieLaravelBackup\Pages\Backups as BaseBackups;
|
||||
|
||||
|
||||
class Backups extends BaseBackups
|
||||
{
|
||||
protected static ?string $navigationIcon = 'heroicon-o-cog';
|
||||
|
||||
protected static string $view = 'filament.pages.backup';
|
||||
|
||||
public function getHeading(): string | Htmlable
|
||||
{
|
||||
return __('filament-spatie-backup::backup.pages.backups.heading');
|
||||
}
|
||||
|
||||
public static function getNavigationGroup(): ?string
|
||||
{
|
||||
return 'Settings';
|
||||
}
|
||||
|
||||
public static function getNavigationLabel(): string
|
||||
{
|
||||
return __('filament-spatie-backup::backup.pages.backups.navigation.label');
|
||||
}
|
||||
|
||||
protected function getActions(): array
|
||||
{
|
||||
return [
|
||||
Action::make('Create Backup')
|
||||
->button()
|
||||
->label(__('filament-spatie-backup::backup.pages.backups.actions.create_backup'))
|
||||
->action('create'),
|
||||
];
|
||||
}
|
||||
|
||||
public function openOptionModal(): void
|
||||
{
|
||||
$this->dispatch('open-modal', id: 'backup-option');
|
||||
}
|
||||
|
||||
public function create(string $option = ''): void
|
||||
{
|
||||
RunBackup::dispatch();
|
||||
|
||||
Notification::make()
|
||||
->title('Резервная копия создается в фоновом режиме')
|
||||
->success()
|
||||
->send();
|
||||
|
||||
$this->dispatch('close-modal', id: 'backup-option');
|
||||
}
|
||||
|
||||
public function shouldDisplayStatusListRecords(): bool
|
||||
{
|
||||
/** @var FilamentSpatieLaravelBackupPlugin $plugin */
|
||||
$plugin = filament()->getPlugin('filament-spatie-backup');
|
||||
|
||||
return $plugin->hasStatusListRecordsTable();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace App\Jobs;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class RunBackup implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
*/
|
||||
public function handle(): void
|
||||
{
|
||||
$exitCode = Artisan::call('backup:run', [
|
||||
'--quiet' => true, // Уберите это, если хотите видеть более подробный вывод
|
||||
]);
|
||||
|
||||
// Логируем вывод
|
||||
Log::info('Backup command output: ' . Artisan::output());
|
||||
Log::error('Backup command exit code: ' . $exitCode);
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Providers\Filament;
|
||||
|
||||
use App\Filament\Pages\Backups;
|
||||
use Filament\Http\Middleware\Authenticate;
|
||||
use Filament\Http\Middleware\DisableBladeIconComponents;
|
||||
use Filament\Http\Middleware\DispatchServingFilamentEvent;
|
||||
@@ -17,6 +18,7 @@ use Illuminate\Routing\Middleware\SubstituteBindings;
|
||||
use Illuminate\Session\Middleware\AuthenticateSession;
|
||||
use Illuminate\Session\Middleware\StartSession;
|
||||
use Illuminate\View\Middleware\ShareErrorsFromSession;
|
||||
use ShuvroRoy\FilamentSpatieLaravelBackup\FilamentSpatieLaravelBackupPlugin;
|
||||
|
||||
class AdminPanelProvider extends PanelProvider
|
||||
|
||||
@@ -58,7 +60,8 @@ class AdminPanelProvider extends PanelProvider
|
||||
Authenticate::class,
|
||||
])
|
||||
->plugins([
|
||||
\BezhanSalleh\FilamentShield\FilamentShieldPlugin::make()
|
||||
\BezhanSalleh\FilamentShield\FilamentShieldPlugin::make(),
|
||||
FilamentSpatieLaravelBackupPlugin::make()->usingPage(Backups::class),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user