From 4e07887cd8fe18d3b889ede58b989ddee6ea60fb Mon Sep 17 00:00:00 2001 From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com> Date: Tue, 19 Aug 2025 13:00:03 +0530 Subject: [PATCH 1/5] fix: improved backup ui --- .../database-[database]/backups/+page.svelte | 6 +- .../backups/containerHeader.svelte | 1 + .../database-[database]/backups/policy.svelte | 4 +- .../database-[database]/backups/store.ts | 6 +- .../database-[database]/backups/table.svelte | 80 ++++++++++--------- 5 files changed, 52 insertions(+), 45 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/+page.svelte index ef597992c..1c164340c 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/+page.svelte @@ -178,7 +178,7 @@ -
+
{#if !isDisabled}
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte index 9df266290..e809f52b8 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte @@ -41,6 +41,7 @@
(showDropdown = true)}> diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/policy.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/policy.svelte index e4af56e16..e4ccd8b91 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/policy.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/policy.svelte @@ -198,7 +198,7 @@
-
+
Previous @@ -225,7 +225,7 @@
-
+
Next diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/store.ts b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/store.ts index dd4b9c133..43cc2552d 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/store.ts +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/store.ts @@ -30,8 +30,8 @@ export const presetPolicies = writable([ export const columns = writable([ { id: 'backups', title: 'Backups', type: 'string', width: { min: 180 } }, - { id: 'size', title: 'Size', type: 'integer', width: { min: 163 } }, + { id: 'size', title: 'Size', type: 'integer', width: { min: 100 } }, { id: 'status', title: 'Status', type: 'enum', width: { min: 163 } }, - { id: 'policy', title: 'Policy', type: 'string', width: { min: 163 } }, - { id: 'actions', title: '', type: 'string', width: 48 } + { id: 'policy', title: 'Policy', type: 'string', width: { min: 100 } }, + { id: 'actions', title: '', type: 'string', width: 64 } ]); diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/table.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/table.svelte index 1603ca8f4..689afe74f 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/table.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/table.svelte @@ -205,7 +205,7 @@ -
+
{policy?.name || 'Manual'} @@ -217,51 +217,53 @@
- - - - - - {#if backup.status === 'completed'} + +
+ + + + + {#if backup.status === 'completed'} + { + toggle(e); + showRestore = true; + selectedBackup = backup; + showDropdown[index] = false; + trackEvent(Click.BackupRestoreClick); + }}> + Restore + + {/if} { toggle(e); - showRestore = true; + copy(backup.$id); + showDropdown[index] = false; + trackEvent(Click.BackupCopyIdClick); + }}> + Copy ID + + { + toggle(e); + showDelete = true; selectedBackup = backup; showDropdown[index] = false; - trackEvent(Click.BackupRestoreClick); + trackEvent(Click.BackupDeleteClick); }}> - Restore + Delete - {/if} - { - toggle(e); - copy(backup.$id); - showDropdown[index] = false; - trackEvent(Click.BackupCopyIdClick); - }}> - Copy ID - - { - toggle(e); - showDelete = true; - selectedBackup = backup; - showDropdown[index] = false; - trackEvent(Click.BackupDeleteClick); - }}> - Delete - - - - + + + +
{/each} From 73f88720b04af8a1bd72714c22dd2a27dfec48b3 Mon Sep 17 00:00:00 2001 From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com> Date: Tue, 19 Aug 2025 17:24:41 +0530 Subject: [PATCH 2/5] fix: for pro plans added backups created badge to a tag --- .../backups/containerHeader.svelte | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte index e809f52b8..c7e0cda38 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte @@ -2,9 +2,11 @@ import { DropList } from '$lib/components'; import { Button } from '$lib/elements/forms'; import { IconInfo, IconPlus } from '@appwrite.io/pink-icons-svelte'; - import { Badge, Icon, Layout, Typography } from '@appwrite.io/pink-svelte'; + import { Badge, Icon, Layout, Tag, Typography } from '@appwrite.io/pink-svelte'; import { goto } from '$app/navigation'; import { upgradeURL } from '$lib/stores/billing'; + import { BillingPlan } from '$lib/constants'; + import { organization } from '$lib/stores/organization'; export let isFlex = true; export let title: string; @@ -40,13 +42,23 @@ {#if title === 'Policies' && policiesCreated >= maxPolicies}
- (showDropdown = true)}> - - + {#if $organization?.billingPlan === BillingPlan.PRO} + (showDropdown = true)}> + + {policiesCreated}/{maxPolicies} created + + {:else} + (showDropdown = true)}> + + + {/if} From 6276e2a7a8c8224df94ed07a63fba1564847665c Mon Sep 17 00:00:00 2001 From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com> Date: Tue, 19 Aug 2025 17:47:31 +0530 Subject: [PATCH 3/5] fix: spacing issues --- .../backups/containerHeader.svelte | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte index c7e0cda38..2e908e6da 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte @@ -41,7 +41,12 @@ {#if title === 'Policies' && policiesCreated >= maxPolicies}
- + {#if $organization?.billingPlan === BillingPlan.PRO} From c6351a2d64bb10f4e4b7b45caaa39ad0c937260e Mon Sep 17 00:00:00 2001 From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com> Date: Tue, 19 Aug 2025 18:07:22 +0530 Subject: [PATCH 4/5] fix: spacing issues added as props in droplist --- src/lib/components/dropList.svelte | 14 ++++++++++++-- .../backups/containerHeader.svelte | 16 ++++------------ 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/lib/components/dropList.svelte b/src/lib/components/dropList.svelte index 1b6d3edb7..4ef0542e1 100644 --- a/src/lib/components/dropList.svelte +++ b/src/lib/components/dropList.svelte @@ -14,6 +14,10 @@ export let wrapperFullWidth = false; export let position: 'relative' | 'static' = 'relative'; export let noMaxWidthList = false; + export let paddingBlock: string = undefined; + export let paddingInline: string = undefined; + export let resetListPadding: boolean = false; + export let gap: string = undefined; let classes: string = ''; export { classes as class }; @@ -34,14 +38,20 @@ class="drop is-no-arrow {classes}" class:u-max-width-100-percent={fullWidth} style:--drop-width-size-desktop={width ? `${width}rem` : ''} + style:margin-block-start={gap} style:position> {#if $$slots.list}
-
    + style={noMaxWidthList ? 'max-inline-size: 100%' : ''} + style:padding-block={paddingBlock} + style:padding-inline={paddingInline}> +
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte index 2e908e6da..d340d0f75 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/backups/containerHeader.svelte @@ -46,7 +46,10 @@ width="16" noArrow placement="bottom-start" - class="gap-popover policies-popover"> + gap="6px" + paddingBlock="var(--space-5, 12px)" + paddingInline="var(--space-6, 16px)" + resetListPadding> {#if $organization?.billingPlan === BillingPlan.PRO} From 8cd66cd1429c29547201993fc85444baaa53eaa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Fri, 5 Sep 2025 11:11:24 +0200 Subject: [PATCH 5/5] Deployment select attributes for speed-up --- .../functions/function-[function]/+page.ts | 8 ++++++++ .../project-[region]-[project]/sites/site-[site]/+page.ts | 6 ++++-- .../sites/site-[site]/deployments/+page.ts | 8 ++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/+page.ts b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/+page.ts index ea95a462d..01a7a633b 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/+page.ts @@ -34,6 +34,14 @@ export const load: PageLoad = async ({ params, depends, url, route, parent }) => Query.limit(limit), Query.offset(offset), Query.orderDesc(''), + Query.select([ + 'buildSize', + 'sourceSize', + 'totalSize', + 'buildDuration', + 'status', + 'type' + ]), ...parsedQueries.values() ] }) diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/+page.ts b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/+page.ts index 1af6eb759..a675b8806 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/+page.ts @@ -12,14 +12,16 @@ export const load = async ({ params, depends, parent }) => { const [deploymentList, prodReadyDeployments, proxyRuleList] = await Promise.all([ sdk.forProject(params.region, params.project).sites.listDeployments({ siteId: params.site, - queries: [Query.limit(4), Query.orderDesc('')] + queries: [Query.limit(4), Query.orderDesc(''), Query.select(['status', 'type'])] }), sdk.forProject(params.region, params.project).sites.listDeployments({ siteId: params.site, queries: [ Query.equal('status', 'ready'), Query.equal('activate', true), - Query.orderDesc('') + Query.limit(1), + Query.orderDesc(''), + Query.select(['buildDuration', 'totalSize', 'sourceSize', 'buildSize', 'type']) ] }), sdk.forProject(params.region, params.project).proxy.listRules({ diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/+page.ts b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/+page.ts index 72c5a16c2..38e7807a7 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/+page.ts @@ -22,6 +22,14 @@ export const load = async ({ params, depends, url, route, parent }) => { Query.limit(limit), Query.offset(offset), Query.orderDesc(''), + Query.select([ + 'buildSize', + 'sourceSize', + 'totalSize', + 'buildDuration', + 'status', + 'type' + ]), ...parsedQueries.values() ] }),