|
3 | 3 | import { Link } from '$lib/elements';
|
4 | 4 | import { Button } from '$lib/elements/forms';
|
5 | 5 | import type { Models } from '@appwrite.io/console';
|
6 |
| - import { IconDotsHorizontal, IconRefresh, IconTrash } from '@appwrite.io/pink-icons-svelte'; |
| 6 | + import { |
| 7 | + IconDotsHorizontal, |
| 8 | + IconRefresh, |
| 9 | + IconTrash, |
| 10 | + IconTerminal |
| 11 | + } from '@appwrite.io/pink-icons-svelte'; |
7 | 12 | import {
|
8 | 13 | ActionMenu,
|
9 | 14 | Badge,
|
10 | 15 | Icon,
|
11 | 16 | Layout,
|
12 | 17 | Popover,
|
13 | 18 | Table,
|
14 |
| - Typography |
| 19 | + Typography, |
| 20 | + Divider |
15 | 21 | } from '@appwrite.io/pink-svelte';
|
16 | 22 | import DeleteDomainModal from './deleteDomainModal.svelte';
|
17 | 23 | import RetryDomainModal from './retryDomainModal.svelte';
|
| 24 | + import ViewLogsModal from './viewLogsModal.svelte'; |
18 | 25 | import { columns } from './store';
|
19 | 26 | import { regionalProtocol } from '$routes/(console)/project-[region]-[project]/store';
|
20 | 27 | import DnsRecordsAction from '$lib/components/domains/dnsRecordsAction.svelte';
|
|
29 | 36 |
|
30 | 37 | let showDelete = $state(false);
|
31 | 38 | let showRetry = $state(false);
|
| 39 | + let showLogs = $state(false); |
32 | 40 | let selectedProxyRule: Models.ProxyRule = $state(null);
|
33 | 41 |
|
34 | 42 | const proxyTarget = (proxy: Models.ProxyRule) => {
|
|
94 | 102 |
|
95 | 103 | <svelte:fragment slot="tooltip" let:toggle>
|
96 | 104 | <ActionMenu.Root>
|
| 105 | + {#if rule.logs && (rule.status === 'unverified' || rule.status === 'verifying')} |
| 106 | + <ActionMenu.Item.Button |
| 107 | + leadingIcon={IconTerminal} |
| 108 | + on:click={(e) => { |
| 109 | + selectedProxyRule = rule; |
| 110 | + showLogs = true; |
| 111 | + toggle(e); |
| 112 | + }}> |
| 113 | + View logs |
| 114 | + </ActionMenu.Item.Button> |
| 115 | + {/if} |
97 | 116 | {#if rule.status !== 'verified' && rule.status !== 'verifying'}
|
98 | 117 | <ActionMenu.Item.Button
|
99 | 118 | leadingIcon={IconRefresh}
|
|
106 | 125 | </ActionMenu.Item.Button>
|
107 | 126 | {/if}
|
108 | 127 | <DnsRecordsAction {rule} {organizationDomains} />
|
| 128 | + {#if rule.logs && (rule.status === 'unverified' || rule.status === 'verifying')} |
| 129 | + <div class="action-menu-divider"> |
| 130 | + <Divider /> |
| 131 | + </div> |
| 132 | + {/if} |
109 | 133 | <ActionMenu.Item.Button
|
110 | 134 | status="danger"
|
111 | 135 | leadingIcon={IconTrash}
|
|
135 | 159 | {#if showRetry}
|
136 | 160 | <RetryDomainModal bind:show={showRetry} {selectedProxyRule} />
|
137 | 161 | {/if}
|
| 162 | + |
| 163 | +{#if showLogs} |
| 164 | + <ViewLogsModal bind:show={showLogs} {selectedProxyRule} /> |
| 165 | +{/if} |
| 166 | + |
| 167 | +<style> |
| 168 | + .action-menu-divider { |
| 169 | + margin-inline: -1rem; |
| 170 | + padding-block-start: 0.25rem; |
| 171 | + padding-block-end: 0.25rem; |
| 172 | + } |
| 173 | +</style> |
0 commit comments