mirror of
https://github.com/KevinMidboe/infra-map.git
synced 2026-01-03 15:55:49 +00:00
55 lines
1.6 KiB
Svelte
55 lines
1.6 KiB
Svelte
<script lang="ts">
|
|
import Dialog from '$lib/components/Dialog.svelte';
|
|
import JsonViewer from '$lib/components/JsonViewer.svelte';
|
|
import PageHeader from '$lib/components/PageHeader.svelte';
|
|
import Table from '$lib/components/Table.svelte';
|
|
import Certificate from '$lib/icons/certificate.svelte';
|
|
import type { HttpEndpoint } from '$lib/interfaces/health';
|
|
import { daysUntil } from '$lib/utils/conversion';
|
|
import type { PageData } from './$types';
|
|
|
|
let { data }: { data: PageData } = $props();
|
|
|
|
const httpHealth: HttpEndpoint[] = data?.httpHealth;
|
|
let selectedSSL = $state(null);
|
|
</script>
|
|
|
|
<PageHeader>Health</PageHeader>
|
|
|
|
<Table
|
|
title="Domains list"
|
|
description="All of the verified domains below point to this application and are covered by free Cloudflare SSL certificates for a secure HTTPS connection. The DNS records for the domains must be set up correctly for them to work."
|
|
columns={['Domain', 'SSL', 'Status', 'Code']}
|
|
>
|
|
<tbody slot="tbody">
|
|
{#each httpHealth as row, i (row)}
|
|
<tr>
|
|
<td>{row.domain}</td>
|
|
<td>
|
|
{#if row['ssl']['valid_to']}
|
|
<div
|
|
on:click={() => (selectedSSL = row['ssl'])}
|
|
style="display: flex; cursor: pointer;"
|
|
>
|
|
<div style="height: 1.4rem; width: 1.4rem;">
|
|
<Certificate />
|
|
</div>
|
|
<span>{daysUntil(row['ssl']['valid_to'])} days left</span>
|
|
</div>
|
|
{:else}
|
|
<span>(none)</span>
|
|
{/if}
|
|
</td>
|
|
<td>{row.status}</td>
|
|
<td>{row.code}</td>
|
|
</tr>
|
|
{/each}
|
|
</tbody>
|
|
</Table>
|
|
|
|
{#if selectedSSL !== null}
|
|
<Dialog on:close={() => (selectedSSL = null)} title="SSL Certificate info">
|
|
<JsonViewer json={selectedSSL} />
|
|
</Dialog>
|
|
{/if}
|