From 134a773ccfe6a39b77d80f1b389e029b9ff34740 Mon Sep 17 00:00:00 2001 From: Darshan Date: Tue, 2 Sep 2025 14:26:32 +0530 Subject: [PATCH 1/7] fix: spacing. --- .../table-[table]/sheetOptions.svelte | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/sheetOptions.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/sheetOptions.svelte index dc4b99607..3cf68e0e7 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/sheetOptions.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/sheetOptions.svelte @@ -163,7 +163,12 @@ {#each menuItems as item, index (index)} {#if item.divider} -
+ {@const isLastDivider = index === menuItems.length - 2} +
{:else if shouldShow(item)} @@ -181,7 +186,11 @@ From c7a77fe1ef9fb77da716415feffd3ee628daa3ca Mon Sep 17 00:00:00 2001 From: Darshan Date: Tue, 2 Sep 2025 16:47:58 +0530 Subject: [PATCH 2/7] add: sys cols filtering support. --- package.json | 4 ++-- pnpm-lock.yaml | 10 +++++----- .../table-[table]/+page.svelte | 15 ++++++++++++++- .../table-[table]/sheetOptions.svelte | 5 ++--- .../table-[table]/spreadsheet.svelte | 16 +--------------- 5 files changed, 24 insertions(+), 26 deletions(-) diff --git a/package.json b/package.json index 02cb4f171..225e5a051 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@2cf27e0", "@appwrite.io/pink-legacy": "^1.0.3", - "@appwrite.io/pink-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@2cf27e0", + "@appwrite.io/pink-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@a7a9b5d", "@faker-js/faker": "^9.9.0", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", @@ -95,5 +95,5 @@ "svelte-preprocess" ] }, - "packageManager": "pnpm@10.15.0" + "packageManager": "pnpm@10.15.1" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a6ff6011a..555ec886b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: specifier: ^1.0.3 version: 1.0.3 '@appwrite.io/pink-svelte': - specifier: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@2cf27e0 - version: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@2cf27e0(svelte@5.25.3) + specifier: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@a7a9b5d + version: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@a7a9b5d(svelte@5.25.3) '@faker-js/faker': specifier: ^9.9.0 version: 9.9.0 @@ -284,8 +284,8 @@ packages: '@appwrite.io/pink-legacy@1.0.3': resolution: {integrity: sha512-GGde5fmPhs+s6/3aFeMPc/kKADG/gTFkYQSy6oBN8pK0y0XNCLrZZgBv+EBbdhwdtqVEWXa0X85Mv9w7jcIlwQ==} - '@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@2cf27e0': - resolution: {tarball: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@2cf27e0} + '@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@a7a9b5d': + resolution: {tarball: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@a7a9b5d} version: 2.0.0-RC.2 peerDependencies: svelte: ^4.0.0 @@ -3719,7 +3719,7 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@2cf27e0(svelte@5.25.3)': + '@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@a7a9b5d(svelte@5.25.3)': dependencies: '@appwrite.io/pink-icons-svelte': 2.0.0-RC.1(svelte@5.25.3) '@floating-ui/dom': 1.6.13 diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte index 7439aa097..7a52f59e9 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte @@ -51,12 +51,25 @@ })); } + function createFilterableColumns(columns: Column[], selected: string[] = []): Column[] { + const idColumn = [{ id: '$id', title: '$id', type: 'string' as ColumnType }].filter( + (col) => !selected.includes(col.id) + ); + + const systemColumns = [ + { id: '$createdAt', title: '$createdAt', type: 'datetime' as ColumnType }, + { id: '$updatedAt', title: '$updatedAt', type: 'datetime' as ColumnType } + ].filter((col) => !!selected.includes(col.id)); + + return [...idColumn, ...columns.filter((column) => !column.isAction), ...systemColumns]; + } + $: selected = preferences.getCustomTableColumns(page.params.table); $: if ($table.columns) { const freshColumns = createTableColumns($table.columns, selected); tableColumns.set(freshColumns); - filterColumns.set(freshColumns.filter((column) => !column.isAction)); + filterColumns.set(createFilterableColumns(freshColumns, selected)); } $: hasColumns = !!$table.columns.length; diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/sheetOptions.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/sheetOptions.svelte index 3cf68e0e7..34585a4fb 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/sheetOptions.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/sheetOptions.svelte @@ -163,12 +163,11 @@ {#each menuItems as item, index (index)} {#if item.divider} - {@const isLastDivider = index === menuItems.length - 2} + {@const isLastDivider = index === menuItems.length - 2}
+ style:padding-block-end={isLastDivider ? '0.25rem' : '0.5rem'}>
{:else if shouldShow(item)} diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte index 3a03032bf..ee2e82dd9 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte @@ -106,15 +106,6 @@ const minimumWidth = 168; const emptyCellsLimit = $isSmallViewport ? 12 : 18; - const SYSTEM_KEYS = new Set([ - '$tableId', - '$databaseId', - '$permissions', - '$createdAt', - '$updatedAt', - '$id', - '$sequence' - ]); /* TODO: should be fixed at the sdk level! */ let selectedRows = []; let spreadsheetContainer: SpreadsheetContainer; @@ -576,16 +567,11 @@ async function updateRowContents(row: Models.Row) { try { - const onlyData = Object.fromEntries( - Object.entries(row).filter(([key]) => !SYSTEM_KEYS.has(key)) - ); - - // TODO | BUG: related rows still have `system` columns atm! await sdk.forProject(page.params.region, page.params.project).tablesDB.updateRow({ databaseId, tableId: $table.$id, rowId: row.$id, - data: onlyData, + data: row, permissions: row.$permissions }); From c6cf2a853ea36531662098ec1d418d6ffcf9a6f8 Mon Sep 17 00:00:00 2001 From: Darshan Date: Tue, 2 Sep 2025 17:25:34 +0530 Subject: [PATCH 3/7] fix: deletion message. --- src/lib/components/confirm.svelte | 3 ++- .../table-[table]/columns/deleteColumn.svelte | 23 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/lib/components/confirm.svelte b/src/lib/components/confirm.svelte index fa23d1b71..d6488ff00 100644 --- a/src/lib/components/confirm.svelte +++ b/src/lib/components/confirm.svelte @@ -10,6 +10,7 @@ export let disabled: boolean = false; export let submissionLoader = false; export let confirmDeletion: boolean = false; + export let confirmDeletionLabel: string = 'I understand and confirm'; export let onSubmit: (e: SubmitEvent) => Promise | void = function () { return; }; @@ -46,7 +47,7 @@ required id={checkboxId} bind:checked={confirm} - label="I understand and confirm" /> + label={confirmDeletionLabel} /> {/if} diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/deleteColumn.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/deleteColumn.svelte index 8eab71181..f201bb202 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/deleteColumn.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/deleteColumn.svelte @@ -1,7 +1,6 @@ + {confirmDeletionLabel}> {#if selectedColumns.length === 1}

Are you sure you want to delete {selectedKeys[0]} from @@ -98,19 +104,12 @@ {#if requiresTwoWayConfirm} - {@const column = getAsRelationship(selectedColumns[0])}

This is a two way relationship and the corresponding relationship will also be deleted.

This action is irreversible.

-
    - - Delete relationship between {column.key} to - {column.twoWayKey} - -
{/if}
From 22b3deeff6b10ce7a75cb4e6e17ecce6cb0b88da Mon Sep 17 00:00:00 2001 From: Darshan Date: Tue, 2 Sep 2025 17:25:42 +0530 Subject: [PATCH 4/7] update: misc. --- .../database-[database]/table-[table]/columns/+page.svelte | 4 ++-- .../database-[database]/table-[table]/rows/edit.svelte | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/+page.svelte index 643e77376..59df944c3 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/+page.svelte @@ -71,7 +71,7 @@ key: '$createdAt', type: 'datetime', required: true, - name: 'createdAt', + name: '$createdAt', selectable: false, system: true } as Models.ColumnDatetime & { @@ -83,7 +83,7 @@ key: '$updatedAt', type: 'datetime', required: true, - name: 'updatedAt', + name: '$updatedAt', selectable: false, system: true } as Models.ColumnDatetime & { diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/edit.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/edit.svelte index c659808fd..9baf79697 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/edit.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/edit.svelte @@ -168,7 +168,7 @@
{:else if $table.columns?.length && work}
- + {#each $table.columns as column} {@const label = column.key} Date: Tue, 2 Sep 2025 17:34:25 +0530 Subject: [PATCH 5/7] fix: the display names. --- .../table-[table]/rows/columns/types/relationship.svelte | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/relationship.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/relationship.svelte index 10da4abbf..c191442ff 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/relationship.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/relationship.svelte @@ -139,15 +139,11 @@ .map((name) => row?.[name]) .filter((value) => value != null && typeof value === 'string' && value !== ''); - const displayValues = !editing - ? values - : values.map((value) => (value.length > 5 ? value.slice(0, 5) + '...' : value)); - let label: string; if (!values.length) { label = row.$id; } else { - label = `${row.$id} (${displayValues.join(' | ')})`; + label = `${values.join(' | ')} (...${row.$id.slice(-5)})`; } return { From f411af7fa8f40457588535dd2a1db2c9b64180c2 Mon Sep 17 00:00:00 2001 From: Darshan Date: Tue, 2 Sep 2025 17:35:22 +0530 Subject: [PATCH 6/7] lint. --- .../table-[table]/rows/columns/types/relationship.svelte | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/relationship.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/relationship.svelte index c191442ff..f6ac70c3d 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/relationship.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/relationship.svelte @@ -122,8 +122,7 @@ function generateOptions( loading: boolean, rows: Models.Row[] | undefined, - column: Models.ColumnRelationship, - editing: boolean + column: Models.ColumnRelationship ): SelectOption[] { if (loading) { return [{ label: 'Loading...', value: null, disabled: true }]; @@ -179,7 +178,7 @@ $: totalCount = relatedList?.length ?? 0; - $: options = generateOptions(loadingRelationships, rowList?.rows, column, editing); + $: options = generateOptions(loadingRelationships, rowList?.rows, column); $: hasItems = totalCount > 0; From 8809d3a415143d63a7ba541539a52ed48495c9ab Mon Sep 17 00:00:00 2001 From: Darshan Date: Tue, 2 Sep 2025 17:55:10 +0530 Subject: [PATCH 7/7] lint. --- package.json | 2 +- pnpm-lock.yaml | 10 ++-- .../billing/planSummary.svelte | 46 +++---------------- 3 files changed, 13 insertions(+), 45 deletions(-) diff --git a/package.json b/package.json index 225e5a051..46c84699b 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@2cf27e0", "@appwrite.io/pink-legacy": "^1.0.3", - "@appwrite.io/pink-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@a7a9b5d", + "@appwrite.io/pink-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@40fb564", "@faker-js/faker": "^9.9.0", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 555ec886b..4e44e1e73 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: specifier: ^1.0.3 version: 1.0.3 '@appwrite.io/pink-svelte': - specifier: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@a7a9b5d - version: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@a7a9b5d(svelte@5.25.3) + specifier: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@40fb564 + version: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@40fb564(svelte@5.25.3) '@faker-js/faker': specifier: ^9.9.0 version: 9.9.0 @@ -284,8 +284,8 @@ packages: '@appwrite.io/pink-legacy@1.0.3': resolution: {integrity: sha512-GGde5fmPhs+s6/3aFeMPc/kKADG/gTFkYQSy6oBN8pK0y0XNCLrZZgBv+EBbdhwdtqVEWXa0X85Mv9w7jcIlwQ==} - '@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@a7a9b5d': - resolution: {tarball: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@a7a9b5d} + '@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@40fb564': + resolution: {tarball: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@40fb564} version: 2.0.0-RC.2 peerDependencies: svelte: ^4.0.0 @@ -3719,7 +3719,7 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@a7a9b5d(svelte@5.25.3)': + '@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@40fb564(svelte@5.25.3)': dependencies: '@appwrite.io/pink-icons-svelte': 2.0.0-RC.1(svelte@5.25.3) '@floating-ui/dom': 1.6.13 diff --git a/src/routes/(console)/organization-[organization]/billing/planSummary.svelte b/src/routes/(console)/organization-[organization]/billing/planSummary.svelte index c00c762d1..3221bdd38 100644 --- a/src/routes/(console)/organization-[organization]/billing/planSummary.svelte +++ b/src/routes/(console)/organization-[organization]/billing/planSummary.svelte @@ -360,9 +360,7 @@ root.toggle(row.id)}> + expandable={row.expandable ?? false}> {#if col.id === 'item'}
@@ -453,12 +451,7 @@ {/each} {#if availableCredit > 0} - {}}> + Credits - {}}> + - {}}> + -{formatCurrency(creditsApplied)} @@ -494,31 +477,16 @@ {/if} - {}}> + Total - {}}> + - {}}> + {formatCurrency(totalAmount)}