diff --git a/src/routes/(console)/project-[project]/sites/(components)/deploymentCreatedBy.svelte b/src/lib/components/git/deploymentCreatedBy.svelte
similarity index 100%
rename from src/routes/(console)/project-[project]/sites/(components)/deploymentCreatedBy.svelte
rename to src/lib/components/git/deploymentCreatedBy.svelte
diff --git a/src/routes/(console)/project-[project]/sites/(components)/deploymentSource.svelte b/src/lib/components/git/deploymentSource.svelte
similarity index 100%
rename from src/routes/(console)/project-[project]/sites/(components)/deploymentSource.svelte
rename to src/lib/components/git/deploymentSource.svelte
diff --git a/src/lib/components/git/index.ts b/src/lib/components/git/index.ts
index bdf0c7563..c0979a9da 100644
--- a/src/lib/components/git/index.ts
+++ b/src/lib/components/git/index.ts
@@ -2,3 +2,5 @@ export { default as Repositories } from './repositories.svelte';
export { default as ConnectGit } from './connectGit.svelte';
export { default as NewRepository } from './newRepository.svelte';
export { default as RepositoryBehaviour } from './repositoryBehaviour.svelte';
+export { default as DeploymentCreatedBy } from './deploymentCreatedBy.svelte';
+export { default as DeploymentSource } from './deploymentSource.svelte';
diff --git a/src/routes/(console)/project-[project]/functions/create-function/template-[template]/+page.svelte b/src/routes/(console)/project-[project]/functions/create-function/template-[template]/+page.svelte
index b462c1cb0..9676d5706 100644
--- a/src/routes/(console)/project-[project]/functions/create-function/template-[template]/+page.svelte
+++ b/src/routes/(console)/project-[project]/functions/create-function/template-[template]/+page.svelte
@@ -16,7 +16,7 @@
import ConnectBehaviour from './connectBehaviour.svelte';
import ProductionBranch from '$lib/components/git/productionBranchFieldset.svelte';
import Configuration from './configuration.svelte';
- import { ID, Runtime, Type, type Models } from '@appwrite.io/console';
+ import { ID, Runtime, type Models } from '@appwrite.io/console';
import { NewRepository, Repositories, RepositoryBehaviour } from '$lib/components/git';
import { consoleVariables } from '$routes/(console)/store';
import Details from '../(components)/details.svelte';
@@ -105,6 +105,8 @@
return;
} else {
try {
+ const rt = data.template.runtimes.find((r) => r.name === runtime);
+
const func = await sdk.forProject.functions.create(
id,
name,
@@ -115,11 +117,11 @@
data.template.timeout ? data.template.timeout : undefined,
undefined,
undefined,
- entrypoint,
+ entrypoint || rt.entrypoint,
undefined,
selectedScopes?.length ? selectedScopes : undefined,
- $installation.$id,
- $repository.id,
+ connectBehaviour === 'later' ? undefined : $installation?.$id || undefined,
+ connectBehaviour === 'later' ? undefined : $repository?.id || undefined,
branch,
silentMode,
rootDir,
@@ -145,10 +147,12 @@
);
await Promise.all(promises);
- await sdk.forProject.functions.createVcsDeployment(
+ await sdk.forProject.functions.createTemplateDeployment(
func.$id,
- Type.Branch,
- branch,
+ data.template.providerRepositoryId || undefined,
+ data.template.providerOwner || undefined,
+ rt?.providerRootDirectory || undefined,
+ data.template.providerVersion || undefined,
true
);
diff --git a/src/routes/(console)/project-[project]/functions/function-[function]/cancel.svelte b/src/routes/(console)/project-[project]/functions/function-[function]/(modals)/cancel.svelte
similarity index 100%
rename from src/routes/(console)/project-[project]/functions/function-[function]/cancel.svelte
rename to src/routes/(console)/project-[project]/functions/function-[function]/(modals)/cancel.svelte
diff --git a/src/routes/(console)/project-[project]/functions/function-[function]/createCli.svelte b/src/routes/(console)/project-[project]/functions/function-[function]/(modals)/createCli.svelte
similarity index 99%
rename from src/routes/(console)/project-[project]/functions/function-[function]/createCli.svelte
rename to src/routes/(console)/project-[project]/functions/function-[function]/(modals)/createCli.svelte
index d745ccc0e..7ba79ec20 100644
--- a/src/routes/(console)/project-[project]/functions/function-[function]/createCli.svelte
+++ b/src/routes/(console)/project-[project]/functions/function-[function]/(modals)/createCli.svelte
@@ -3,7 +3,7 @@
import { Modal, Code, Alert } from '$lib/components';
import { onMount } from 'svelte';
import { page } from '$app/stores';
- import { func } from './store';
+ import { func } from '../store';
import SecondaryTabs from '$lib/components/secondaryTabs.svelte';
import SecondaryTabsItem from '$lib/components/secondaryTabsItem.svelte';
diff --git a/src/routes/(console)/project-[project]/functions/function-[function]/createGit.svelte b/src/routes/(console)/project-[project]/functions/function-[function]/(modals)/createGit.svelte
similarity index 99%
rename from src/routes/(console)/project-[project]/functions/function-[function]/createGit.svelte
rename to src/routes/(console)/project-[project]/functions/function-[function]/(modals)/createGit.svelte
index 9e6f79549..9e67b10bd 100644
--- a/src/routes/(console)/project-[project]/functions/function-[function]/createGit.svelte
+++ b/src/routes/(console)/project-[project]/functions/function-[function]/(modals)/createGit.svelte
@@ -1,7 +1,7 @@
-
+
{#if $canWriteFunctions}
-
+
diff --git a/src/routes/(console)/project-[project]/functions/function-[function]/deployment-[deployment]/+page.svelte b/src/routes/(console)/project-[project]/functions/function-[function]/deployment-[deployment]/+page.svelte
index 4815cd33e..2ee177d31 100644
--- a/src/routes/(console)/project-[project]/functions/function-[function]/deployment-[deployment]/+page.svelte
+++ b/src/routes/(console)/project-[project]/functions/function-[function]/deployment-[deployment]/+page.svelte
@@ -12,10 +12,10 @@
import { deployment } from './store';
import BoxAvatar from '$lib/components/boxAvatar.svelte';
import { toLocaleDateTime } from '$lib/helpers/date';
- import Delete from '../delete.svelte';
import Activate from '../activate.svelte';
- import Cancel from '../cancel.svelte';
+ import Cancel from '../(modals)/cancel.svelte';
import DeploymentCard from '../deploymentCard.svelte';
+ import Delete from '../(modals)/delete.svelte';
export let data;
diff --git a/src/routes/(console)/project-[project]/functions/function-[function]/deploymentCard.svelte b/src/routes/(console)/project-[project]/functions/function-[function]/deploymentCard.svelte
index a87c83a90..b26e1becf 100644
--- a/src/routes/(console)/project-[project]/functions/function-[function]/deploymentCard.svelte
+++ b/src/routes/(console)/project-[project]/functions/function-[function]/deploymentCard.svelte
@@ -5,11 +5,10 @@
import { Pill } from '$lib/elements';
import { humanFileSize } from '$lib/helpers/sizeConvertion';
import { calculateTime } from '$lib/helpers/timeConversion';
- import DeploymentCreatedBy from './deploymentCreatedBy.svelte';
- import DeploymentSource from './deploymentSource.svelte';
import DeploymentDomains from './deploymentDomains.svelte';
import { Tooltip } from '@appwrite.io/pink-svelte';
+ import { DeploymentCreatedBy, DeploymentSource } from '$lib/components/git';
export let deployment: Models.Deployment;
diff --git a/src/routes/(console)/project-[project]/functions/function-[function]/deploymentCreatedBy.svelte b/src/routes/(console)/project-[project]/functions/function-[function]/deploymentCreatedBy.svelte
deleted file mode 100644
index 15e429722..000000000
--- a/src/routes/(console)/project-[project]/functions/function-[function]/deploymentCreatedBy.svelte
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-{timeFromNow(deployment.$updatedAt)}
-{#if deployment.providerCommitAuthor}
- by {deployment.providerCommitAuthor}
-{/if}
diff --git a/src/routes/(console)/project-[project]/functions/function-[function]/deploymentSource.svelte b/src/routes/(console)/project-[project]/functions/function-[function]/deploymentSource.svelte
deleted file mode 100644
index c81332f21..000000000
--- a/src/routes/(console)/project-[project]/functions/function-[function]/deploymentSource.svelte
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-{#if deployment.type === 'vcs'}
-
- (showDropdown = !showDropdown)}
- type="button"
- class="u-flex u-gap-4 u-cross-center">
- GitHub
-
-
-
-
-
- {deployment.providerRepositoryOwner}/{deployment.providerRepositoryName}
-
-
-
-
- {deployment.providerBranch}
-
- {#if deployment?.providerCommitMessage && deployment?.providerCommitHash && deployment?.providerCommitUrl}
-
-
-
- {deployment?.providerCommitHash?.substring(0, 7)}
- {deployment.providerCommitMessage}
-
-
-
- {/if}
-
-
-{:else if deployment.type === 'manual'}
- Manual
-{:else if deployment.type === 'cli'}
- CLI
-{/if}
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 b38f241a9..ef87f8297 100644
--- a/src/routes/(console)/project-[project]/functions/function-[function]/store.ts
+++ b/src/routes/(console)/project-[project]/functions/function-[function]/store.ts
@@ -1,6 +1,7 @@
import { page } from '$app/stores';
import { derived, writable, type Writable } from 'svelte/store';
import type { Models } from '@appwrite.io/console';
+import type { Column } from '$lib/helpers/types';
export const func = derived(page, ($page) => $page.data.function as Models.Function);
export const deploymentList = derived(
@@ -23,3 +24,91 @@ export const repositories: Writable<{
});
export const showCreateDeployment: Writable = writable(false);
+
+export const columns = writable([
+ { id: '$id', title: 'Deployment ID', type: 'string', show: true, width: 150 },
+ {
+ id: 'status',
+ title: 'Status',
+ type: 'enum',
+ show: true,
+ width: 110,
+ array: true,
+ format: 'enum',
+ elements: ['ready', 'processing', 'building', 'waiting', 'cancelled', 'failed'],
+ filter: false
+ },
+ {
+ id: 'type',
+ title: 'Source',
+ type: 'string',
+ show: true,
+ width: 90,
+ array: true,
+ format: 'enum',
+ elements: [
+ { value: 'manual', label: 'Manual' },
+ { value: 'cli', label: 'CLI' },
+ { value: 'vcs', label: 'Git' }
+ ]
+ },
+ {
+ id: '$updatedAt',
+ title: 'Updated',
+ type: 'datetime',
+ show: true,
+ width: 150,
+ format: 'datetime'
+ },
+ {
+ id: 'buildTime',
+ title: 'Build time',
+ type: 'integer',
+ show: true,
+ width: 90,
+ elements: [
+ {
+ value: 15,
+ label: 'more than 15 seconds'
+ },
+ {
+ value: 60,
+ label: 'more than 1 minute'
+ },
+ {
+ value: 5 * 60,
+ label: 'more than 5 minutes'
+ }
+ ],
+ filter: false
+ },
+ {
+ id: 'size',
+ title: 'Source size',
+ type: 'integer',
+ show: true,
+ width: 140,
+ elements: [
+ {
+ value: 2 * 1000 * 1000,
+ label: 'more than 2MB'
+ },
+ {
+ value: 10 * 1000 * 1000,
+ label: 'more than 10MB'
+ },
+ {
+ value: 50 * 1000 * 1000,
+ label: 'more than 50MB'
+ }
+ ]
+ },
+ {
+ id: 'buildSize',
+ title: 'Build size',
+ type: 'integer',
+ show: false,
+ filter: false,
+ width: 80
+ }
+]);
diff --git a/src/routes/(console)/project-[project]/functions/function-[function]/table.svelte b/src/routes/(console)/project-[project]/functions/function-[function]/table.svelte
index 16a08f212..168219e30 100644
--- a/src/routes/(console)/project-[project]/functions/function-[function]/table.svelte
+++ b/src/routes/(console)/project-[project]/functions/function-[function]/table.svelte
@@ -1,26 +1,27 @@