From 66d066fa5cc7586491f1b9e06945328856a97983 Mon Sep 17 00:00:00 2001 From: Thanatat Tamtan Date: Sun, 9 Mar 2025 20:55:26 +0700 Subject: [PATCH 1/3] domain: add downgrade page --- .../(project)/domain/cdn-downgrade/+page.js | 28 ++++ .../domain/cdn-downgrade/+page.svelte | 136 ++++++++++++++++++ .../(project)/domain/detail/+page.svelte | 24 +--- 3 files changed, 165 insertions(+), 23 deletions(-) create mode 100644 src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js create mode 100644 src/routes/(auth)/(project)/domain/cdn-downgrade/+page.svelte diff --git a/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js b/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js new file mode 100644 index 0000000..54b0be6 --- /dev/null +++ b/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js @@ -0,0 +1,28 @@ +import { redirect, error } from '@sveltejs/kit' +import api from '$lib/api/index.js' + +export async function load ({ url, parent, fetch }) { + const { project } = await parent() + const domainName = url.searchParams.get('domain') + + /** @type {Api.Response} */ + const domain = await api.invoke('domain.get', { project, domain: domainName }, fetch) + if (!domain.ok) { + if (domain.error?.notFound) redirect(302, `/domain?project=${project}`) + error(500, domain.error?.message) + } + if (!domain.result) redirect(302, `/domain?project=${project}`) + if (!domain.result.cdn) redirect(302, `/domain/detail?project=${project}&domain=${domainName}`) + + /** @type {Api.Response */ + const location = await api.invoke('location.get', { id: domain.result.location }, fetch) + if (!location.ok) { + error(500, location.error?.message) + } + if (!location.result) redirect(302, `/domain?project=${project}`) + + return { + domain: domain.result, + location: location.result + } +} diff --git a/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.svelte b/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.svelte new file mode 100644 index 0000000..343db0d --- /dev/null +++ b/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.svelte @@ -0,0 +1,136 @@ + + +
+
+
Domains
+
+ +
+
CDN Downgrade
+
+
+ +
+
+
+

+ CDN Downgrade +

+
+ +
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + +
+
+ +
+ {#if location.endpoint} +
+ + {#each [location.endpoint] as ip} +
+ + + + +
+ {/each} +
+ {/if} + + + + + + + + + + + + + + + {#if location.cname} +
+ + {#each [location.cname] as cname} +
+ + + + +
+ {/each} +
+ {/if} +
+ +
+
+
+ +
+
+
diff --git a/src/routes/(auth)/(project)/domain/detail/+page.svelte b/src/routes/(auth)/(project)/domain/detail/+page.svelte index d3056b5..2bcc4aa 100644 --- a/src/routes/(auth)/(project)/domain/detail/+page.svelte +++ b/src/routes/(auth)/(project)/domain/detail/+page.svelte @@ -197,28 +197,6 @@ } }) } - - function downgradeCdn () { - modal.confirm({ - html: `Remove CDN from "${domain.domain}" ?`, - yes: 'Downgrade', - callback: async () => { - const resp = await api.invoke('domain.create', { - project, - location: domain.location, - domain: domain.domain, - wildcard: domain.wildcard, - cdn: false - }, fetch) - if (!resp.ok) { - modal.error({ error: resp.error }) - return - } - await api.invalidate('domain.get') - handleReload() - } - }) - }
@@ -457,7 +435,7 @@
{#if domain.cdn}
- + Remove CDN (DDoS Protection)
{:else}
From ef31932776c3b46e89a269b0d0164b1bce9fb75a Mon Sep 17 00:00:00 2001 From: Thanatat Tamtan Date: Sun, 9 Mar 2025 20:56:27 +0700 Subject: [PATCH 2/3] cleanup --- src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js | 2 +- src/routes/(auth)/(project)/domain/cdn-downgrade/+page.svelte | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js b/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js index 54b0be6..097bfa8 100644 --- a/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js +++ b/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js @@ -1,5 +1,5 @@ import { redirect, error } from '@sveltejs/kit' -import api from '$lib/api/index.js' +import api from '$lib/api' export async function load ({ url, parent, fetch }) { const { project } = await parent() diff --git a/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.svelte b/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.svelte index 343db0d..e5e9f0e 100644 --- a/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.svelte +++ b/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.svelte @@ -2,8 +2,8 @@ import { onMount } from 'svelte' import ClipboardJS from 'clipboard' import { goto } from '$app/navigation' - import * as modal from '$lib/modal/index.js' - import api from '$lib/api/index.js' + import * as modal from '$lib/modal' + import api from '$lib/api' const { data } = $props() From 51d09e4b5d5686d6b38d5f338b4b290d085cd1d2 Mon Sep 17 00:00:00 2001 From: Thanatat Tamtan Date: Sun, 9 Mar 2025 20:57:14 +0700 Subject: [PATCH 3/3] fix jsdoc --- src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js b/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js index 097bfa8..78c7857 100644 --- a/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js +++ b/src/routes/(auth)/(project)/domain/cdn-downgrade/+page.js @@ -14,7 +14,7 @@ export async function load ({ url, parent, fetch }) { if (!domain.result) redirect(302, `/domain?project=${project}`) if (!domain.result.cdn) redirect(302, `/domain/detail?project=${project}&domain=${domainName}`) - /** @type {Api.Response */ + /** @type {Api.Response} */ const location = await api.invoke('location.get', { id: domain.result.location }, fetch) if (!location.ok) { error(500, location.error?.message)