diff --git a/src/lib/components/domains/cnameTable.svelte b/src/lib/components/domains/cnameTable.svelte index ed7c8bd5e..fd90536aa 100644 --- a/src/lib/components/domains/cnameTable.svelte +++ b/src/lib/components/domains/cnameTable.svelte @@ -12,7 +12,7 @@ import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; export let domain: string; - export let verified = false; + export let verified = undefined; let subdomain = domain.split('.').slice(0, -2).join('.'); @@ -23,16 +23,10 @@ {domain} - {#if verified} - + {#if verified === true} + {:else if verified === false} - - {:else} - + {/if} diff --git a/src/lib/components/domains/nameserverTable.svelte b/src/lib/components/domains/nameserverTable.svelte index 9a9d17f15..55414d839 100644 --- a/src/lib/components/domains/nameserverTable.svelte +++ b/src/lib/components/domains/nameserverTable.svelte @@ -4,7 +4,7 @@ import { Badge, Layout, Typography, Table, InteractiveText } from '@appwrite.io/pink-svelte'; export let domain: string; - export let verified = false; + export let verified = undefined; const nameserverList = $regionalConsoleVariables?._APP_DOMAINS_NAMESERVERS ? $regionalConsoleVariables?._APP_DOMAINS_NAMESERVERS?.split(',') @@ -16,10 +16,10 @@ {domain} - {#if verified} + {#if verified === true} {:else if verified === false} - + {/if} diff --git a/src/lib/components/domains/recordTable.svelte b/src/lib/components/domains/recordTable.svelte index bf7fa7abf..1b58b1aa6 100644 --- a/src/lib/components/domains/recordTable.svelte +++ b/src/lib/components/domains/recordTable.svelte @@ -11,7 +11,7 @@ import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; export let domain: string; - export let verified = false; + export let verified = undefined; export let variant: 'cname' | 'a' | 'aaaa'; export let service: 'sites' | 'general' = 'general'; @@ -37,16 +37,10 @@ {domain} - {#if verified} + {#if verified === true} {:else if verified === false} - {:else} - {/if} diff --git a/src/lib/components/usageCard.svelte b/src/lib/components/usageCard.svelte index bebb1e131..86d853f9f 100644 --- a/src/lib/components/usageCard.svelte +++ b/src/lib/components/usageCard.svelte @@ -13,8 +13,9 @@ {#if value !== null && value !== undefined} - {value} + + {value} + {:else} {/if} diff --git a/src/routes/(console)/organization-[organization]/domains/+page.svelte b/src/routes/(console)/organization-[organization]/domains/+page.svelte index e970be7f6..b2726e561 100644 --- a/src/routes/(console)/organization-[organization]/domains/+page.svelte +++ b/src/routes/(console)/organization-[organization]/domains/+page.svelte @@ -41,7 +41,7 @@ let selectedDomain: Models.Domain = null; const isDomainVerified = (domain: Models.Domain) => { - return domain.nameservers.toLocaleLowerCase() === 'appwrite'; + return domain.nameservers.toLowerCase() === 'appwrite'; }; diff --git a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/+page.ts b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/+page.ts index 6c3990efa..f7f1c8caf 100644 --- a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/+page.ts +++ b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/+page.ts @@ -4,6 +4,7 @@ import { pageToOffset } from '$lib/helpers/load'; import { getLimit } from '$lib/helpers/load'; import { getPage } from '$lib/helpers/load'; import { sdk } from '$lib/stores/sdk.js'; +import { Query } from '@appwrite.io/console'; export const load = async ({ parent, depends, url, route }) => { depends(Dependencies.DOMAIN); @@ -15,7 +16,10 @@ export const load = async ({ parent, depends, url, route }) => { return { domain, - recordList: await sdk.forConsole.domains.listRecords(domain.$id), + recordList: await sdk.forConsole.domains.listRecords(domain.$id, [ + Query.offset(offset), + Query.limit(limit) + ]), offset, limit }; diff --git a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/domainMetrics.svelte b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/domainMetrics.svelte index 7d4a152a5..4b45f7261 100644 --- a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/domainMetrics.svelte +++ b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/domainMetrics.svelte @@ -8,7 +8,7 @@ let { domain, retryVerification }: { domain: Models.Domain; retryVerification: () => void } = $props(); - const isDomainVerified = domain.nameservers.toLocaleLowerCase() === 'appwrite'; + const isDomainVerified = domain.nameservers.toLowerCase() === 'appwrite'; const metrics = [ { @@ -29,7 +29,7 @@ }, { value: - domain?.registrar?.toLocaleLowerCase() === 'appwrite' + domain?.registrar?.toLowerCase() === 'appwrite' ? domain?.autoRenewal ? 'On' : 'Off' @@ -43,29 +43,26 @@ ]; - - - {#each metrics.slice(0, 3) as metric} - {#if metric.description === 'Status'} - - - + + {#each metrics.slice(0, 3) as metric} + {#if metric.description === 'Status'} + + + - {#if !isDomainVerified} - Retry - {/if} - - - {:else} - - {/if} - {/each} - - - {#each metrics.slice(3) as metric} + {#if !isDomainVerified} + Retry + {/if} + + + {:else} - {/each} - + {/if} + {/each} + {#each metrics.slice(3) as metric} + + {/each} diff --git a/src/routes/(console)/organization-[organization]/domains/recordsCard.svelte b/src/routes/(console)/organization-[organization]/domains/recordsCard.svelte index 0b6f45a31..a131eb5b2 100644 --- a/src/routes/(console)/organization-[organization]/domains/recordsCard.svelte +++ b/src/routes/(console)/organization-[organization]/domains/recordsCard.svelte @@ -35,7 +35,7 @@ async function verifyStatus() { try { domain = await sdk.forConsole.domains.updateNameservers(domain.$id); - verified = domain.nameservers === 'Appwrite'; + verified = domain.nameservers.toLowerCase() === 'appwrite'; if (verified) { addNotification({ type: 'success', @@ -46,7 +46,8 @@ } else { addNotification({ type: 'error', - message: 'Domain not verified' + message: + 'Domain verification failed. Please check your domain settings or try again later' }); } } catch (error) { @@ -68,8 +69,9 @@ - {domain.domain} + + {domain.domain} + {#if verified === false} - {:else} - + {:else if verified === true} + {/if} diff --git a/src/routes/(console)/organization-[organization]/domains/retryDomainModal.svelte b/src/routes/(console)/organization-[organization]/domains/retryDomainModal.svelte index 7d059b277..453cc79e0 100644 --- a/src/routes/(console)/organization-[organization]/domains/retryDomainModal.svelte +++ b/src/routes/(console)/organization-[organization]/domains/retryDomainModal.svelte @@ -23,7 +23,7 @@ try { const domain = await sdk.forConsole.domains.updateNameservers(selectedDomain.$id); show = false; - if (domain.nameservers === 'Appwrite') { + if (domain.nameservers.toLowerCase() === 'appwrite') { addNotification({ type: 'success', message: `${selectedDomain.domain} has been verified` @@ -31,13 +31,14 @@ } else { addNotification({ type: 'error', - message: `Domain verification failed. Please check your domain settings or try again later` + message: + 'Domain verification failed. Please check your domain settings or try again later' }); } await invalidate(Dependencies.DOMAINS); trackEvent(Submit.DomainUpdateVerification); } catch (e) { - error = e; + error = e.message; trackError(e, Submit.DomainUpdateVerification); } } diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte index c35e92fc0..2c931b0a9 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte @@ -82,7 +82,9 @@ await goto(routeBase); await invalidate(Dependencies.FUNCTION_DOMAINS); } else { - await goto(`${routeBase}/add-domain/verify-${domainName}?rule=${rule.$id}`); + await goto( + `${routeBase}/add-domain/verify-${domainName}?rule=${rule.$id}&domain=${domain.$id}` + ); await invalidate(Dependencies.FUNCTION_DOMAINS); } } catch (error) { diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte index c99378209..d8d044ef1 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte @@ -28,6 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); + const domainId = page.url.searchParams.get('domain'); const isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); @@ -42,14 +43,15 @@ selectedTab = 'nameserver'; } }); - let verified = $state(false); + let verified: boolean | undefined = $state(undefined); let routeBase = `${base}/project-${page.params.region}-${page.params.project}/functions/function-${page.params.function}/domains`; let isSubmitting = $state(writable(false)); async function verify() { const isNewDomain = - data.domainsList.domains.findIndex((rule) => rule.domain === page.params.domain) === -1; + data.domainsList.domains.find((rule) => rule.domain === page.params.domain) === + undefined; try { if (selectedTab !== 'nameserver') { const ruleData = await sdk @@ -61,7 +63,14 @@ $organization.$id, page.params.domain ); - verified = domainData.nameservers.toLocaleLowerCase() === 'appwrite'; + verified = domainData.nameservers.toLowerCase() === 'appwrite'; + } else if (!isNewDomain && isCloud) { + const domain = await sdk.forConsole.domains.updateNameservers(domainId); + verified = domain.nameservers.toLowerCase() === 'appwrite'; + if (!verified) + throw new Error( + 'Domain verification failed. Please check your domain settings or try again later' + ); } addNotification({ diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/retryDomainModal.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/retryDomainModal.svelte index 008c36553..5a4722e6a 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/retryDomainModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/retryDomainModal.svelte @@ -27,7 +27,7 @@ }); trackEvent(Submit.DomainUpdateVerification); } catch (e) { - error = e; + error = e.message; trackError(e, Submit.DomainUpdateVerification); } } diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte index 1dcb2baee..2bd90d1e0 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte @@ -94,7 +94,7 @@ - {#if proxyRule.status !== 'verified'} + {#if proxyRule.status !== 'verified' && proxyRule.status !== 'verifying'} { diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte index 781c68bb2..b9e50a3e8 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte @@ -52,7 +52,9 @@ await goto(routeBase); await invalidate(Dependencies.DOMAINS); } else { - await goto(`${routeBase}/add-domain/verify-${domainName}?rule=${rule.$id}`); + await goto( + `${routeBase}/add-domain/verify-${domainName}?rule=${rule.$id}&domain=${domain.$id}` + ); await invalidate(Dependencies.DOMAINS); } } catch (error) { diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte index f5793b327..594c4f4e2 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte @@ -28,6 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); + const domainId = page.url.searchParams.get('domain'); const isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); @@ -50,7 +51,8 @@ async function verify() { const isNewDomain = - data.domainsList.domains.findIndex((rule) => rule.domain === page.params.domain) === -1; + data.domainsList.domains.find((rule) => rule.domain === page.params.domain) === + undefined; try { if (selectedTab !== 'nameserver') { const ruleData = await sdk @@ -62,7 +64,14 @@ $organization.$id, page.params.domain ); - verified = domainData.nameservers.toLocaleLowerCase() === 'appwrite'; + verified = domainData.nameservers.toLowerCase() === 'appwrite'; + } else if (!isNewDomain && isCloud) { + const domain = await sdk.forConsole.domains.updateNameservers(domainId); + verified = domain.nameservers.toLowerCase() === 'appwrite'; + if (!verified) + throw new Error( + 'Domain verification failed. Please check your domain settings or try again later' + ); } addNotification({ diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/retryDomainModal.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/retryDomainModal.svelte index d0bf3861b..2cd8c7a51 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/retryDomainModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/retryDomainModal.svelte @@ -32,7 +32,7 @@ }); trackEvent(Submit.DomainUpdateVerification); } catch (e) { - error = e; + error = e.message; trackError(e, Submit.DomainUpdateVerification); } } diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/table.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/table.svelte index 0584a1961..70b5b62bf 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/table.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/table.svelte @@ -84,7 +84,7 @@ - {#if domain.status !== 'verified'} + {#if domain.status !== 'verified' && domain.status !== 'verifiying'} { diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte index b79ba129c..51ebc1552 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte @@ -58,12 +58,18 @@ .forProject(page.params.region, page.params.project) .proxy.updateRuleVerification(ruleId); verified = ruleData.status === 'verified'; + throw new Error( + 'Domain verification failed. Please check your domain settings or try again later' + ); } else if (isNewDomain && isCloud) { const domainData = await sdk.forConsole.domains.create( $organization.$id, page.params.domain ); - verified = domainData.nameservers.toLocaleLowerCase() === 'appwrite'; + verified = domainData.nameservers.toLowerCase() === 'appwrite'; + throw new Error( + 'Domain verification failed. Please check your domain settings or try again later' + ); } addNotification({ diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/createPreviewDomainModal.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/createPreviewDomainModal.svelte index 33db2ccee..fa23726b0 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/createPreviewDomainModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/createPreviewDomainModal.svelte @@ -36,7 +36,7 @@ }); trackEvent(Submit.DomainCreate); } catch (e) { - error = e; + error = e.message; trackError(e, Submit.DomainCreate); } } diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte index 352109247..37089a4da 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte @@ -56,7 +56,7 @@ }); trackEvent(Submit.DomainUpdateVerification); } catch (e) { - error = e; + error = e.message; trackError(e, Submit.DomainUpdateVerification); } } diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte index b98cf258c..8d118feb6 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte @@ -95,7 +95,7 @@ - {#if rule.status !== 'verified'} + {#if rule.status !== 'verified' && rule.status !== 'verifying'} {