|
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