chore(ui): improve valid until handling

This commit is contained in:
peaklabs-dev
2025-02-03 23:21:09 +01:00
parent 53510928d2
commit fd5b7492f8
2 changed files with 32 additions and 33 deletions

View File

@@ -25,6 +25,8 @@ class General extends Component
public ?string $db_url_public = null; public ?string $db_url_public = null;
public $certificateValidUntil = null;
public function getListeners() public function getListeners()
{ {
return [ return [
@@ -78,6 +80,14 @@ class General extends Component
$this->db_url = $this->database->internal_db_url; $this->db_url = $this->database->internal_db_url;
$this->db_url_public = $this->database->external_db_url; $this->db_url_public = $this->database->external_db_url;
$this->server = data_get($this->database, 'destination.server'); $this->server = data_get($this->database, 'destination.server');
$existingCert = SslCertificate::where('resource_type', $this->database->getMorphClass())
->where('resource_id', $this->database->id)
->first();
if ($existingCert) {
$this->certificateValidUntil = $existingCert->valid_until;
}
} }
public function instantSaveAdvanced() public function instantSaveAdvanced()
@@ -112,12 +122,6 @@ class General extends Component
public function regenerateSslCertificate() public function regenerateSslCertificate()
{ {
try { try {
if (! $this->database->enable_ssl) {
$this->dispatch('error', 'SSL is not enabled for this database.');
return;
}
$server = $this->database->destination->server; $server = $this->database->destination->server;
$existingCert = SslCertificate::where('resource_type', $this->database->getMorphClass()) $existingCert = SslCertificate::where('resource_type', $this->database->getMorphClass())

View File

@@ -75,38 +75,33 @@
</div> </div>
<div class="flex flex-col gap-2"> <div class="flex flex-col gap-2">
<div class="flex items-center justify-between py-2"> <div class="flex items-center justify-between py-2">
<div class="flex flex-col gap-1"> <div class="flex items-center justify-between w-full">
<h3>SSL Configuration</h3> <h3>SSL Configuration</h3>
@if($database->enable_ssl) @if($database->enable_ssl)
@php <x-modal-confirmation
$cert = \App\Models\SslCertificate::where('resource_type', $database->getMorphClass()) title="Regenerate SSL Certificates"
->where('resource_id', $database->id) buttonTitle="Regenerate SSL Certificates"
->first(); :actions="['The SSL certificate of this database will be regenerated.','You must restart the database after regenerating the certificate to start using the new certificate.']"
@endphp submitAction="regenerateSslCertificate"
@if($cert) :confirmWithText="false"
<span class="text-sm">Valid until: :confirmWithPassword="false"
@if(now()->gt($cert->valid_until)) />
<span class="text-red-500">{{ $cert->valid_until->format('d.m.Y H:i:s') }} - Expired</span>
@elseif(now()->addDays(30)->gt($cert->valid_until))
<span class="text-red-500">{{ $cert->valid_until->format('d.m.Y H:i:s') }} - Expiring soon</span>
@else
<span>{{ $cert->valid_until->format('d.m.Y H:i:s') }}</span>
@endif
</span>
@endif
@endif @endif
</div> </div>
@if($database->enable_ssl)
<x-modal-confirmation
title="Regenerate SSL Certificates"
buttonTitle="Regenerate SSL Certificates"
:actions="['The SSL certificate of this database will be regenerated.','You must restart the database after regenerating the certificate to start using the new certificate.']"
submitAction="regenerateSslCertificate"
:confirmWithText="false"
:confirmWithPassword="false"
/>
@endif
</div> </div>
@if($database->enable_ssl)
<span class="text-sm">Valid until:
@if(now()->gt($certificateValidUntil))
<span class="text-red-500">{{ $certificateValidUntil->format('d.m.Y H:i:s') }} - Expired</span>
@elseif(now()->addDays(30)->gt($certificateValidUntil))
<span class="text-red-500">{{ $certificateValidUntil->format('d.m.Y H:i:s') }} - Expiring soon</span>
@else
<span>{{ $certificateValidUntil->format('d.m.Y H:i:s') }}</span>
@endif
</span>
@endif
</div>
<div class="flex flex-col gap-2">
<div class="flex flex-col gap-2"> <div class="flex flex-col gap-2">
<x-forms.checkbox id="database.enable_ssl" label="Enable SSL" wire:model.live="database.enable_ssl" instantSave="instantSaveSSL" /> <x-forms.checkbox id="database.enable_ssl" label="Enable SSL" wire:model.live="database.enable_ssl" instantSave="instantSaveSSL" />
@if($database->enable_ssl) @if($database->enable_ssl)