diff --git a/package.json b/package.json index 1a46b84ec..ed9d85101 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. .", "test": "vitest run", "test:ui": "vitest --ui", - "test:watch": "vitetest watch", + "test:watch": "vitest watch", "e2e": "playwright test tests/e2e" }, "dependencies": { diff --git a/src/lib/components/gridItem1.svelte b/src/lib/components/gridItem1.svelte index 8220f6429..e5041f9da 100644 --- a/src/lib/components/gridItem1.svelte +++ b/src/lib/components/gridItem1.svelte @@ -1,4 +1,5 @@ @@ -6,7 +7,7 @@
-

+
diff --git a/src/lib/components/heading.svelte b/src/lib/components/heading.svelte new file mode 100644 index 000000000..2fe797c81 --- /dev/null +++ b/src/lib/components/heading.svelte @@ -0,0 +1,8 @@ + + + + + diff --git a/src/lib/components/index.ts b/src/lib/components/index.ts index 606c2f68e..babc43e66 100644 --- a/src/lib/components/index.ts +++ b/src/lib/components/index.ts @@ -39,3 +39,4 @@ export { default as Tab } from './tab.svelte'; export { default as EventModal } from './eventModal.svelte'; export { default as Status } from './status.svelte'; export { default as Logs } from './logs.svelte'; +export { default as Heading } from './heading.svelte'; diff --git a/src/lib/components/modal.svelte b/src/lib/components/modal.svelte index d2ff5b89c..4a42b7533 100644 --- a/src/lib/components/modal.svelte +++ b/src/lib/components/modal.svelte @@ -2,7 +2,7 @@ import { browser } from '$app/environment'; import { createEventDispatcher } from 'svelte'; import { fade, fly, type FadeParams, type FlyParams } from 'svelte/transition'; - import { Alert } from '$lib/components'; + import { Alert, Heading } from '$lib/components'; import { clickOnEnter } from '$lib/helpers/a11y'; export let show = false; @@ -76,9 +76,9 @@
{/if} -

+ -

+ {#if closable} {#each $titleDropdown as org} @@ -148,9 +149,9 @@
{:else} -

+ {$title ? $title : '-'} -

+ {/if} {#if $page.url.pathname.includes('/console/account')}
diff --git a/src/lib/layout/usage.svelte b/src/lib/layout/usage.svelte index 7f3b15f66..979f70e2b 100644 --- a/src/lib/layout/usage.svelte +++ b/src/lib/layout/usage.svelte @@ -5,7 +5,7 @@
-

+ -

+ {#if $$slots.subtitle}

diff --git a/src/routes/console/account/+page.svelte b/src/routes/console/account/+page.svelte index d4d0ab560..2baf8035c 100644 --- a/src/routes/console/account/+page.svelte +++ b/src/routes/console/account/+page.svelte @@ -1,6 +1,6 @@ -

Update Data
+ Update Data

Update document data based on the attributes created earlier.

diff --git a/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/settings/+page.svelte b/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/settings/+page.svelte index e7991b3a0..352eb14ea 100644 --- a/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/settings/+page.svelte +++ b/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/settings/+page.svelte @@ -1,5 +1,5 @@
-

API Keys

+ API Keys - - - - diff --git a/src/routes/console/project-[project]/settings/domains/+page.svelte b/src/routes/console/project-[project]/settings/domains/+page.svelte index d0e8be1e3..fb620a449 100644 --- a/src/routes/console/project-[project]/settings/domains/+page.svelte +++ b/src/routes/console/project-[project]/settings/domains/+page.svelte @@ -1,64 +1,161 @@ -

Custom Domains

- {#await request} -
- {:then response} - - - - Domain - TLS - - - {#each response.domains as domain} - - - - {domain.verification ? 'verified' : 'unverified'} - - - - {domain.domain} - - - {#if domain.certificateId} - Verified - {:else if domain.verification} - In Progress - {:else} - Pending Verification - {/if} - - - {/each} - -
- {/await} +
+

Custom Domains

- + +
+ {#await domainList.load(projectId)} +
+ {:then} + {#if $domainList.total} + + + + Domain Name + TLS + + + + {#each $domainList.domains as domain, i} + + + + {domain.verification ? 'verified' : 'unverified'} + + + + {domain.domain} + + + {#if domain.certificateId} + enabled + {:else} + + + {!domain.verification + ? 'pending verification' + : 'in progress'} + + + {/if} + + +
+ {#if isVerifying[domain.$id]} + +
+ {:else if !domain.certificateId} + + + {/if} + + +
+ + + {/each} + +
+ {:else} + +
+
+

Create your first Domain to get started

+
+
+ + +
+
+
+ {/if} + {/await} - (request = listDomains())} /> + diff --git a/src/routes/console/project-[project]/settings/domains/_create.svelte b/src/routes/console/project-[project]/settings/domains/_create.svelte new file mode 100644 index 000000000..6a0faa7cd --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/_create.svelte @@ -0,0 +1,44 @@ + + + diff --git a/src/routes/console/project-[project]/settings/domains/_delete.svelte b/src/routes/console/project-[project]/settings/domains/_delete.svelte new file mode 100644 index 000000000..3c37bfe66 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/_delete.svelte @@ -0,0 +1,42 @@ + + +
+ + Delete Domain +

+ Are you sure you want to delete {selectedDomain.domain} from '{$project.name}'? +

+ + + + +
+
diff --git a/src/routes/console/project-[project]/settings/domains/store.ts b/src/routes/console/project-[project]/settings/domains/store.ts new file mode 100644 index 000000000..712e7c319 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/store.ts @@ -0,0 +1,17 @@ +import { sdkForConsole } from '$lib/stores/sdk'; +import type { Models } from '@aw-labs/appwrite-console'; +import { cachedStore } from '$lib/helpers/cache'; + +export const domainList = cachedStore< + Models.DomainList, + { + load: (projectId: string) => Promise; + } +>('domainList', function ({ set }) { + return { + load: async (projectId) => { + const response = await sdkForConsole.projects.listDomains(projectId); + set(response); + } + }; +}); diff --git a/src/routes/console/project-[project]/settings/domains/wizard/_cnameTable.svelte b/src/routes/console/project-[project]/settings/domains/wizard/_cnameTable.svelte new file mode 100644 index 000000000..0c5d31bf0 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/_cnameTable.svelte @@ -0,0 +1,39 @@ + + + + + Type + Name + Value + + + + CNAME + {cnameValue} + +
+ {$domain.name} + + +
+
+
+
+
diff --git a/src/routes/console/project-[project]/settings/domains/wizard/_verificationBox.svelte b/src/routes/console/project-[project]/settings/domains/wizard/_verificationBox.svelte new file mode 100644 index 000000000..0cd32690f --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/_verificationBox.svelte @@ -0,0 +1,51 @@ + + +
+ {#if isVerifying} +
+ {:else} +
diff --git a/src/routes/console/project-[project]/settings/domains/wizard/step1.svelte b/src/routes/console/project-[project]/settings/domains/wizard/step1.svelte new file mode 100644 index 000000000..2287f0dd6 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/step1.svelte @@ -0,0 +1,64 @@ + + + + Add your domain + + Use your self-owned domain as the endpoint of your Appwrite API. + + + + + +
+

+ You can find a list of domain providers and their DNS setting documentation here. If your domain provider isn't listed, please contact us, and we'll include their + settings as well. +

+
+
diff --git a/src/routes/console/project-[project]/settings/domains/wizard/step2.svelte b/src/routes/console/project-[project]/settings/domains/wizard/step2.svelte new file mode 100644 index 000000000..581fb9923 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/step2.svelte @@ -0,0 +1,13 @@ + + + + Add a CNAME record + + In order to continue, set the following record on your DNS provider + + + + diff --git a/src/routes/console/project-[project]/settings/domains/wizard/step3.svelte b/src/routes/console/project-[project]/settings/domains/wizard/step3.svelte new file mode 100644 index 000000000..da6f43392 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/step3.svelte @@ -0,0 +1,25 @@ + + + + Add a CNAME record + + In order to continue, set the following record on your DNS provider + + + + +
+

Changes may take some time to take effect depending on your provider.

+ +
+ +
+
+
diff --git a/src/routes/console/project-[project]/settings/domains/wizard/step4.svelte b/src/routes/console/project-[project]/settings/domains/wizard/step4.svelte new file mode 100644 index 000000000..34ef5073f --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/step4.svelte @@ -0,0 +1,58 @@ + + + + Add a CNAME record + + In order to continue, set the following record on your DNS provider + + + + +
+ +
+
+ {#if !certificate} +
+ {:else} +
+
+
+ diff --git a/src/routes/console/project-[project]/settings/domains/wizard/store.ts b/src/routes/console/project-[project]/settings/domains/wizard/store.ts new file mode 100644 index 000000000..88d0de932 --- /dev/null +++ b/src/routes/console/project-[project]/settings/domains/wizard/store.ts @@ -0,0 +1,3 @@ +import { writable } from 'svelte/store'; + +export const domain = writable<{ id: string; name: string }>({ id: '', name: '' }); diff --git a/src/routes/console/project-[project]/storage/+page.svelte b/src/routes/console/project-[project]/storage/+page.svelte index 9df27dda3..fae4f5930 100644 --- a/src/routes/console/project-[project]/storage/+page.svelte +++ b/src/routes/console/project-[project]/storage/+page.svelte @@ -2,7 +2,7 @@ import { page } from '$app/stores'; import { goto } from '$app/navigation'; import { Button } from '$lib/elements/forms'; - import { Empty, Pagination, Copy, GridItem1, CardContainer } from '$lib/components'; + import { Empty, Pagination, Copy, GridItem1, CardContainer, Heading } from '$lib/components'; import { Pill } from '$lib/elements'; import { Query, type Models } from '@aw-labs/appwrite-console'; import Create from './_create.svelte'; @@ -32,7 +32,7 @@
-

Buckets

+ Buckets