From e840aec099a7df9090df9589f754bc8d714ae8df Mon Sep 17 00:00:00 2001 From: Arman Date: Fri, 16 Sep 2022 14:59:49 +0200 Subject: [PATCH] feat: function page layout --- .../project-[project]/functions/+page.svelte | 16 +- .../function/[function]/+layout.svelte | 16 +- .../function/[function]/+page.svelte | 189 ++++++++++++++---- .../[function]/executions/+page.svelte | 0 .../functions/function/[function]/store.ts | 36 +++- .../project-[project]/functions/store.ts | 14 -- 6 files changed, 186 insertions(+), 85 deletions(-) create mode 100644 src/routes/console/project-[project]/functions/function/[function]/executions/+page.svelte diff --git a/src/routes/console/project-[project]/functions/+page.svelte b/src/routes/console/project-[project]/functions/+page.svelte index 7be6e2caa..df00d138a 100644 --- a/src/routes/console/project-[project]/functions/+page.svelte +++ b/src/routes/console/project-[project]/functions/+page.svelte @@ -44,7 +44,7 @@ -
+
technology
- {func.name} + {func.name}
@@ -69,18 +69,6 @@ }} /> {/if} - diff --git a/src/routes/console/project-[project]/functions/function/[function]/+layout.svelte b/src/routes/console/project-[project]/functions/function/[function]/+layout.svelte index f10b26ad7..5838c6da9 100644 --- a/src/routes/console/project-[project]/functions/function/[function]/+layout.svelte +++ b/src/routes/console/project-[project]/functions/function/[function]/+layout.svelte @@ -1,5 +1,6 @@ -

Overview

+
+

Deployments

- -

Function ID: {$func.$id}

-

Runtime: {$func.runtime}

-

Last Updated: {$func.$updatedAt}

-

Created: {$func.$createdAt}

-
+ +
-

Deployments

+
+

Active

+
+ {#if activeDeployment} + +
+
+ technology +
+
+

Function ID: {$func.$id}

+

Deployment ID: {$func.deployment}

+
+
+ +
+
+

Created at: {toLocaleDateTime($func.$createdAt)}

+

Updated at: {toLocaleDateTime($func.$updatedAt)}

+

Entrypoint: {activeDeployment?.entrypoint}

+
+ status +
+
- - - + + + + +
+ {:else} + +
+
+ +
+
+

+ Add a new deployment, or activate an existing one to see your function in + action. +

+

+ Learn more about deployments in our + Documentation. +

+
+
+
+ {/if} - {#await request} -
- {:then response} - - - ID - Active - - - {#each response.deployments as deployment} - - - {deployment.$id} - - {deployment.activate} - - {/each} - -
+
+

Inactive

+
- - {/await} + + + Deployment ID + Created + Status + Build time + Size + + + + {#each $deploymentList.deployments as deployment, index} + + + + + + + + {toLocaleDateTime(deployment.$createdAt)} + + {deployment.activate} + {deployment.entrypoint} + {deployment.size} + + + + + { + console.log('execute now'); + }}>Execute now + { + console.log('output'); + }}>Output + { + console.log('delete'); + }}>Delete + + + + + {/each} + +
- +
+

Total results: {$deploymentList?.total}

+ +
diff --git a/src/routes/console/project-[project]/functions/function/[function]/executions/+page.svelte b/src/routes/console/project-[project]/functions/function/[function]/executions/+page.svelte new file mode 100644 index 000000000..e69de29bb diff --git a/src/routes/console/project-[project]/functions/function/[function]/store.ts b/src/routes/console/project-[project]/functions/function/[function]/store.ts index 7763d1e7a..0dadaad60 100644 --- a/src/routes/console/project-[project]/functions/function/[function]/store.ts +++ b/src/routes/console/project-[project]/functions/function/[function]/store.ts @@ -1,17 +1,35 @@ +import { cachedStore } from '$lib/helpers/cache'; import { sdkForProject } from '$lib/stores/sdk'; import type { Models } from '@aw-labs/appwrite-console'; -import { writable } from 'svelte/store'; - -function createFunctionStore() { - const { subscribe, set } = writable(); +export const func = cachedStore< + Models.Function, + { + load: (functionId: string) => Promise; + } +>('func', function ({ set }) { return { - subscribe, - set, - load: async (functionId: string) => { + load: async (functionId) => { set(await sdkForProject.functions.get(functionId)); } }; -} +}); -export const func = createFunctionStore(); +export const deploymentList = cachedStore< + Models.DeploymentList, + { + load: (functionId: string, search: string, limit: number, offset: number) => Promise; + } +>('deploymentList', function ({ set }) { + return { + load: async (functionId, search, limit, offset) => { + const response = await sdkForProject.functions.listDeployments( + functionId, + search, + limit, + offset + ); + set(response); + } + }; +}); diff --git a/src/routes/console/project-[project]/functions/store.ts b/src/routes/console/project-[project]/functions/store.ts index 073e7eae0..ba401a7e0 100644 --- a/src/routes/console/project-[project]/functions/store.ts +++ b/src/routes/console/project-[project]/functions/store.ts @@ -15,17 +15,3 @@ export const functionList = cachedStore< } }; }); - -export const runtimeList = cachedStore< - Models.RuntimeList, - { - load: () => Promise; - } ->('runtimeList', function ({ set }) { - return { - load: async () => { - const response = await sdkForProject.functions.listRuntimes(); - set(response); - } - }; -});