diff --git a/src/lib/components/copyInput.svelte b/src/lib/components/copyInput.svelte index 507d69fcca..782e89c80c 100644 --- a/src/lib/components/copyInput.svelte +++ b/src/lib/components/copyInput.svelte @@ -4,6 +4,8 @@ import { addNotification } from '$lib/stores/notifications'; export let value: string; + export let label: string = null; + export let showLabel = false; let content = 'Click to copy'; @@ -21,17 +23,20 @@
- - + +
+ + +
diff --git a/src/lib/stores/project-services.ts b/src/lib/stores/project-services.ts new file mode 100644 index 0000000000..6f4a8cb0d7 --- /dev/null +++ b/src/lib/stores/project-services.ts @@ -0,0 +1,117 @@ +import { writable } from 'svelte/store'; +import type { Models } from '@aw-labs/appwrite-console'; + +export type Service = { + label: string; + method: string; + value: boolean | null; +}; + +function createServices() { + const { subscribe, set } = writable({ + list: [ + { + label: 'Account', + method: 'account', + value: null + }, + { + label: 'Avatars', + method: 'avatars', + value: null + }, + { + label: 'Databases', + method: 'databases', + value: null + }, + { + label: 'Functions', + method: 'functions', + value: null + }, + { + label: 'Health', + method: 'health', + value: null + }, + { + label: 'Locale', + method: 'locale', + value: null + }, + { + label: 'Storage', + method: 'storage', + value: null + }, + { + label: 'Teams', + method: 'teams', + value: null + }, + { + label: 'Users', + method: 'users', + value: null + } + ] + }); + + return { + subscribe, + set, + load: (project: Models.Project) => { + const list = [ + { + label: 'Account', + method: 'account', + value: project.serviceStatusForAccount + }, + { + label: 'Avatars', + method: 'avatars', + value: project.serviceStatusForAvatars + }, + { + label: 'Databases', + method: 'databases', + value: project.serviceStatusForDatabases + }, + { + label: 'Functions', + method: 'functions', + value: project.serviceStatusForFunctions + }, + { + label: 'Health', + method: 'health', + value: project.serviceStatusForHealth + }, + { + label: 'Locale', + method: 'locale', + value: project.serviceStatusForLocale + }, + { + label: 'Storage', + method: 'storage', + value: project.serviceStatusForStorage + }, + { + label: 'Teams', + method: 'teams', + value: project.serviceStatusForTeams + }, + { + label: 'Users', + method: 'users', + value: project.serviceStatusForUsers + } + ]; + set({ list }); + } + }; +} + +export const services = createServices(); diff --git a/src/routes/console/project-[project]/settings/__layout.svelte b/src/routes/console/project-[project]/settings/__layout.svelte index 5b0ab13eaf..133d65fbc9 100644 --- a/src/routes/console/project-[project]/settings/__layout.svelte +++ b/src/routes/console/project-[project]/settings/__layout.svelte @@ -29,10 +29,6 @@ { href: `${path}/domains`, title: 'Custom Domains' - }, - { - href: `${path}/members`, - title: 'Members' } ] }); diff --git a/src/routes/console/project-[project]/settings/_deleteProject.svelte b/src/routes/console/project-[project]/settings/_deleteProject.svelte new file mode 100644 index 0000000000..c57d5bf127 --- /dev/null +++ b/src/routes/console/project-[project]/settings/_deleteProject.svelte @@ -0,0 +1,70 @@ + + +
+ + Delete Project +

+ This project will be deleted, along with all of its metadata, stats, and other + resources. This action is irreversible. +

+ + + + + + + + + +
+
diff --git a/src/routes/console/project-[project]/settings/index.svelte b/src/routes/console/project-[project]/settings/index.svelte index d2fb3e02fa..6638570309 100644 --- a/src/routes/console/project-[project]/settings/index.svelte +++ b/src/routes/console/project-[project]/settings/index.svelte @@ -1,15 +1,55 @@ -

Overview

{#if $project} - -
- - - - - -
+
+ +
Update Name
+ + + + + + + + + + +
+
+ + +
API Credentials
+

+ Access Appwrite services using your API Endpoint and Project ID. You can connect + Appwrite to your applications and server-side code by integrating a new platform + or + creating an API key. +

+ + + + + + +
+ + +
Services
+

Choose services you wish to enable or disable.

+ + +
+
    + {#each $services.list as service} + { + serviceUpdate(service); + }} /> + {/each} +
+
+
+
+
+ + +
+
Delete Project
+
+

+ The project will be permanently deleted, including all the metadata, resources and + stats within it. This action is irreversible. +

+ + + +
{$project.name}
+
+

Last update: {toLocaleDateTime($project.$updatedAt)}

+
+
+ + + + +
{/if}
+ + diff --git a/src/routes/console/project-[project]/settings/members.svelte b/src/routes/console/project-[project]/settings/members.svelte deleted file mode 100644 index da6770b552..0000000000 --- a/src/routes/console/project-[project]/settings/members.svelte +++ /dev/null @@ -1,50 +0,0 @@ - - - -

Members

- {#await request} -
- {:then response} - {#if response} - - {#each response.memberships as membership} - - -

- - {membership.userName} - -

- {#each membership.roles as role} - {role} - {/each} - {#if !membership.confirm} - Pending Approval - {/if} -
- - {membership.userEmail} - - - - -
- {:else} -

No sessions available.

- {/each} -
- {/if} - {/await} -