Feat: recent backups UI

This commit is contained in:
ayntk-ai 2024-08-16 21:06:36 +02:00
parent 789adc77fd
commit 62ecc45f21
No known key found for this signature in database
2 changed files with 49 additions and 4 deletions

View File

@ -8,9 +8,8 @@
class BackupExecutions extends Component class BackupExecutions extends Component
{ {
public ?ScheduledDatabaseBackup $backup = null; public ?ScheduledDatabaseBackup $backup = null;
public $database;
public $executions = []; public $executions = [];
public $setDeletableBackup; public $setDeletableBackup;
public function getListeners() public function getListeners()
@ -61,4 +60,50 @@ public function refreshBackupExecutions(): void
$this->executions = $this->backup->executions()->get()->sortBy('created_at'); $this->executions = $this->backup->executions()->get()->sortBy('created_at');
} }
} }
public function mount(ScheduledDatabaseBackup $backup)
{
$this->backup = $backup;
$this->database = $backup->database;
$this->refreshBackupExecutions();
}
public function server()
{
if ($this->database) {
$server = null;
if ($this->database instanceof \App\Models\ServiceDatabase) {
$server = $this->database->service->destination->server;
} elseif ($this->database->destination && $this->database->destination->server) {
$server = $this->database->destination->server;
}
if ($server) {
return $server;
}
}
return null;
}
public function getServerTimezone()
{
$server = $this->server();
if (!$server) {
return 'UTC';
}
$serverTimezone = $server->settings->server_timezone;
return $serverTimezone;
}
public function formatDateInServerTimezone($date)
{
$serverTimezone = $this->getServerTimezone();
$dateObj = new \DateTime($date);
try {
$dateObj->setTimezone(new \DateTimeZone($serverTimezone));
} catch (\Exception $e) {
$dateObj->setTimezone(new \DateTimeZone('UTC'));
}
return $dateObj->format('Y-m-d H:i:s T');
}
} }

View File

@ -19,7 +19,7 @@ class="relative flex flex-col p-4 bg-white box-without-bg dark:bg-coolgray-100"
@endif @endif
<div>Database: {{ data_get($execution, 'database_name', 'N/A') }}</div> <div>Database: {{ data_get($execution, 'database_name', 'N/A') }}</div>
<div>Status: {{ data_get($execution, 'status') }}</div> <div>Status: {{ data_get($execution, 'status') }}</div>
<div>Started At: {{ data_get($execution, 'created_at') }}</div> <div>Started At: {{ $this->formatDateInServerTimezone(data_get($execution, 'created_at')) }}</div>
@if (data_get($execution, 'message')) @if (data_get($execution, 'message'))
<div>Message: {{ data_get($execution, 'message') }}</div> <div>Message: {{ data_get($execution, 'message') }}</div>
@endif @endif
@ -54,4 +54,4 @@ function download_file(executionId) {
</script> </script>
@endisset @endisset
</div> </div>