diff --git a/web/app/Filament/Resources/HostingSubscriptionResource/Pages/ManageHostingSubscriptionBackups.php b/web/app/Filament/Resources/HostingSubscriptionResource/Pages/ManageHostingSubscriptionBackups.php
index 3ec5cf3..6730183 100644
--- a/web/app/Filament/Resources/HostingSubscriptionResource/Pages/ManageHostingSubscriptionBackups.php
+++ b/web/app/Filament/Resources/HostingSubscriptionResource/Pages/ManageHostingSubscriptionBackups.php
@@ -12,6 +12,7 @@ use App\Models\DatabaseUser;
use App\Models\HostingSubscriptionBackup;
use App\Models\RemoteDatabaseServer;
use Filament\Forms;
+use Filament\Forms\Components\TextInput;
use Filament\Forms\Form;
use Filament\Infolists\Components\IconEntry;
use Filament\Infolists\Components\TextEntry;
@@ -141,6 +142,19 @@ class ManageHostingSubscriptionBackups extends ManageRelatedRecords
return redirect($tempUrl);
}),
+
+ Tables\Actions\Action::make('viewLog')
+ ->label('View Log')
+ ->icon('heroicon-o-document')
+ ->modalContent(function (HostingSubscriptionBackup $backup) {
+ return view('filament.modals.view-livewire-component', [
+ 'component' => 'hosting-subscription-backup-log',
+ 'componentProps' => [
+ 'hostingSubscriptionBackupId' => $backup->id,
+ ],
+ ]);
+ }),
+
Tables\Actions\ViewAction::make(),
// Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
diff --git a/web/app/Livewire/HostingSubscriptionBackupLog.php b/web/app/Livewire/HostingSubscriptionBackupLog.php
new file mode 100644
index 0000000..13f5162
--- /dev/null
+++ b/web/app/Livewire/HostingSubscriptionBackupLog.php
@@ -0,0 +1,37 @@
+hostingSubscriptionBackupId)->first();
+ if ($findHsb) {
+ $backupLog = $findHsb->path . '/backup.log';
+ if (file_exists($backupLog)) {
+ $backupLogContent = file_get_contents($backupLog);
+ // Get last 1000 lines of the log
+ $backupLogContent = substr($backupLogContent, -5000, 5000);
+ $backupLogContent = str_replace("\n", "
", $backupLogContent);
+
+ $this->backupLog = $backupLogContent;
+ }
+ }
+ }
+ public function mount($hostingSubscriptionBackupId)
+ {
+ $this->hostingSubscriptionBackupId = $hostingSubscriptionBackupId;
+ }
+
+ public function view()
+ {
+ return view('livewire.hosting-subscription-backup-log');
+ }
+}
diff --git a/web/app/Providers/AppServiceProvider.php b/web/app/Providers/AppServiceProvider.php
index a517f51..b59af07 100644
--- a/web/app/Providers/AppServiceProvider.php
+++ b/web/app/Providers/AppServiceProvider.php
@@ -12,6 +12,7 @@ use App\Listeners\ModelDomainDeletingListener;
use App\Listeners\ModelHostingSubscriptionCreatingListener;
use App\Listeners\ModelHostingSubscriptionDeletingListener;
use App\Livewire\Components\QuickServiceRestartMenu;
+use App\Livewire\HostingSubscriptionBackupLog;
use App\Models\Domain;
use App\Models\HostingSubscription;
use App\Policies\CustomerPolicy;
@@ -63,6 +64,7 @@ class AppServiceProvider extends ServiceProvider
});
Livewire::component('quick-service-restart-menu', QuickServiceRestartMenu::class);
+ Livewire::component('hosting-subscription-backup-log', HostingSubscriptionBackupLog::class);
Gate::define('delete-customer', [CustomerPolicy::class, 'delete']);
diff --git a/web/resources/views/filament/modals/view-livewire-component.blade.php b/web/resources/views/filament/modals/view-livewire-component.blade.php
new file mode 100644
index 0000000..47b9a8c
--- /dev/null
+++ b/web/resources/views/filament/modals/view-livewire-component.blade.php
@@ -0,0 +1,3 @@
+