some progress
This commit is contained in:
@@ -0,0 +1,233 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'SSL Certificate - ' . $site->name)
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid">
|
||||
<!-- Page Header -->
|
||||
<div class="mb-4">
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="{{ route('ssl.index') }}">SSL Certificates</a></li>
|
||||
<li class="breadcrumb-item active">{{ $site->name }}</li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<h1 class="h2 mb-2">{{ $site->name }}</h1>
|
||||
<p class="text-muted">{{ $site->url }}</p>
|
||||
</div>
|
||||
@if($latestCert)
|
||||
@php
|
||||
$daysUntilExpiry = $latestCert->expires_at ? now()->diffInDays($latestCert->expires_at, false) : null;
|
||||
@endphp
|
||||
<div>
|
||||
@if($daysUntilExpiry === null)
|
||||
<span class="badge bg-secondary fs-6 px-3 py-2">Status Unknown</span>
|
||||
@elseif($daysUntilExpiry < 0)
|
||||
<span class="badge bg-danger fs-6 px-3 py-2">
|
||||
<i class="bi bi-shield-x"></i> Certificate Expired
|
||||
</span>
|
||||
@elseif($daysUntilExpiry < 30)
|
||||
<span class="badge bg-warning text-dark fs-6 px-3 py-2">
|
||||
<i class="bi bi-clock-history"></i> Expires in {{ $daysUntilExpiry }} days
|
||||
</span>
|
||||
@else
|
||||
<span class="badge bg-success fs-6 px-3 py-2">
|
||||
<i class="bi bi-shield-check"></i> Valid Certificate
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if($latestCert)
|
||||
<!-- Current Certificate Info -->
|
||||
<div class="row g-4 mb-4">
|
||||
<div class="col-md-6">
|
||||
<div class="card border-0 shadow-sm h-100">
|
||||
<div class="card-header bg-white">
|
||||
<h5 class="mb-0">
|
||||
<i class="bi bi-info-circle me-2"></i>
|
||||
Certificate Details
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="mb-3">
|
||||
<div class="text-muted small mb-1">Issuer</div>
|
||||
<div class="fw-semibold">{{ $latestCert->issuer ?? 'Unknown' }}</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<div class="text-muted small mb-1">Subject</div>
|
||||
<div class="fw-semibold">{{ $latestCert->subject ?? 'Unknown' }}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="text-muted small mb-1">Issued Date</div>
|
||||
<div class="fw-semibold">
|
||||
@if($latestCert->issued_at)
|
||||
{{ $latestCert->issued_at->format('M d, Y') }}
|
||||
@else
|
||||
—
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="text-muted small mb-1">Expiry Date</div>
|
||||
<div class="fw-semibold">
|
||||
@if($latestCert->expires_at)
|
||||
{{ $latestCert->expires_at->format('M d, Y') }}
|
||||
@else
|
||||
—
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="card border-0 shadow-sm h-100">
|
||||
<div class="card-header bg-white">
|
||||
<h5 class="mb-0">
|
||||
<i class="bi bi-calendar-check me-2"></i>
|
||||
Validity Information
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="mb-3">
|
||||
<div class="text-muted small mb-1">Days Remaining</div>
|
||||
<div class="h3 mb-0">
|
||||
@if($daysUntilExpiry !== null)
|
||||
@if($daysUntilExpiry < 0)
|
||||
<span class="text-danger">Expired {{ abs($daysUntilExpiry) }} days ago</span>
|
||||
@else
|
||||
<span class="text-{{ $daysUntilExpiry < 30 ? 'warning' : 'success' }}">{{ $daysUntilExpiry }} days</span>
|
||||
@endif
|
||||
@else
|
||||
—
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<div class="text-muted small mb-1">Validity Period</div>
|
||||
<div class="fw-semibold">
|
||||
@if($latestCert->issued_at && $latestCert->expires_at)
|
||||
{{ $latestCert->issued_at->diffInDays($latestCert->expires_at) }} days
|
||||
@else
|
||||
—
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-muted small mb-1">Last Checked</div>
|
||||
<div class="fw-semibold">
|
||||
{{ $latestCert->created_at->diffForHumans() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<div class="alert alert-info">
|
||||
<i class="bi bi-info-circle me-2"></i>
|
||||
No SSL certificate information available for this site yet.
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<!-- Certificate History -->
|
||||
<div class="card border-0 shadow-sm">
|
||||
<div class="card-header bg-white">
|
||||
<h5 class="mb-0">
|
||||
<i class="bi bi-clock-history me-2"></i>
|
||||
Certificate History
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body p-0">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover mb-0">
|
||||
<thead class="bg-light">
|
||||
<tr>
|
||||
<th>Checked At</th>
|
||||
<th>Issuer</th>
|
||||
<th>Issued Date</th>
|
||||
<th>Expiry Date</th>
|
||||
<th>Days Until Expiry</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse($sslCertificates as $cert)
|
||||
@php
|
||||
$daysUntilExpiry = $cert->expires_at ? now()->diffInDays($cert->expires_at, false) : null;
|
||||
@endphp
|
||||
<tr>
|
||||
<td>{{ $cert->created_at->format('M d, Y H:i:s') }}</td>
|
||||
<td>{{ Str::limit($cert->issuer ?? 'Unknown', 40) }}</td>
|
||||
<td>
|
||||
@if($cert->issued_at)
|
||||
{{ $cert->issued_at->format('M d, Y') }}
|
||||
@else
|
||||
—
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if($cert->expires_at)
|
||||
{{ $cert->expires_at->format('M d, Y') }}
|
||||
@else
|
||||
—
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if($daysUntilExpiry !== null)
|
||||
@if($daysUntilExpiry < 0)
|
||||
<span class="text-danger">{{ $daysUntilExpiry }} days</span>
|
||||
@elseif($daysUntilExpiry < 30)
|
||||
<span class="text-warning">{{ $daysUntilExpiry }} days</span>
|
||||
@else
|
||||
<span class="text-success">{{ $daysUntilExpiry }} days</span>
|
||||
@endif
|
||||
@else
|
||||
—
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if($daysUntilExpiry === null)
|
||||
<span class="badge bg-secondary">Unknown</span>
|
||||
@elseif($daysUntilExpiry < 0)
|
||||
<span class="badge bg-danger">
|
||||
<i class="bi bi-shield-x"></i> Expired
|
||||
</span>
|
||||
@elseif($daysUntilExpiry < 30)
|
||||
<span class="badge bg-warning text-dark">
|
||||
<i class="bi bi-clock-history"></i> Expiring
|
||||
</span>
|
||||
@else
|
||||
<span class="badge bg-success">
|
||||
<i class="bi bi-shield-check"></i> Valid
|
||||
</span>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="6" class="text-center py-4 text-muted">
|
||||
No SSL certificate checks recorded yet.
|
||||
</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@if($sslCertificates->hasPages())
|
||||
<div class="card-footer bg-white">
|
||||
{{ $sslCertificates->links() }}
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user