diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/cell/edit.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/cell/edit.svelte
index e50ca76c63..4f1689ea39 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/cell/edit.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/cell/edit.svelte
@@ -10,11 +10,13 @@
row = $bindable(null),
onChange = null,
onRevert = null,
+ noInlineEdit = false,
openSideSheet = null,
onRowStructureUpdate = null
}: {
row: Models.Row;
column: Columns;
+ noInlineEdit?: boolean;
openSideSheet?: () => void;
onChange?: (row: Models.DefaultRow) => void;
onRevert?: (row: Models.DefaultRow) => void;
@@ -27,6 +29,11 @@
onMount(() => {
original = structuredClone(row);
+ if (noInlineEdit) {
+ openSideSheet?.();
+ return;
+ }
+
const trigger = wrapperEl.querySelector('button.input') as HTMLButtonElement;
if (trigger) {
trigger.click();
@@ -62,5 +69,5 @@
fromSpreadsheet
label={undefined}
bind:formValues={row}
- on:click={openSideSheet} />
+ on:click={() => openSideSheet?.()} />
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/integer.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/integer.svelte
index e8da1e99e4..23e19cd3b5 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/integer.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/integer.svelte
@@ -15,7 +15,7 @@
label = undefined;
}
- $: if (limited) {
+ $: {
column.min = isWithinSafeRange(column.min) ? column.min : Number.MIN_SAFE_INTEGER;
column.max = isWithinSafeRange(column.max) ? column.max : Number.MAX_SAFE_INTEGER;
}
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/store.ts b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/store.ts
index 97e6694c53..76ffa95caf 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/store.ts
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/store.ts
@@ -2,8 +2,12 @@ import { page } from '$app/state';
import type { Columns } from '../store';
import { type Models, Query } from '@appwrite.io/console';
-export function isRelationshipToMany(column: Models.ColumnRelationship) {
- if (!column) return false;
+export function isRelationshipToMany(col: Columns) {
+ if (!col) return false;
+ if (!isRelationship(col)) return false;
+
+ const column = col as Models.ColumnRelationship;
+
if (!column?.relationType) return false;
if (column?.side === 'child') {
return !['oneToOne', 'oneToMany'].includes(column?.relationType);
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 ee2e82dd9b..0677a94987 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
@@ -459,6 +459,12 @@
}
}
+ function openSideSheetForRelationsToMany(tableId: string, rows: string | Models.Row[]) {
+ $databaseRelatedRowSheetOptions.tableId = tableId;
+ $databaseRelatedRowSheetOptions.rows = rows;
+ $databaseRelatedRowSheetOptions.show = true;
+ }
+
async function onSelectSheetOption(
action: HeaderCellAction | RowCellAction,
columnId: string,
@@ -885,18 +891,10 @@
{/if}
{:else}
{@const itemsNum = row[columnId]?.length}
- {
- $databaseRelatedRowSheetOptions.show = true;
- $databaseRelatedRowSheetOptions.rows =
- row[columnId];
- $databaseRelatedRowSheetOptions.tableId = columnId;
- }}>
- Items
-
+ Items
{/if}
{:else}
{@const value = row[columnId]}
@@ -946,11 +944,20 @@
{row}
column={rowColumn}
onRowStructureUpdate={updateRowContents}
+ noInlineEdit={isRelationshipToMany(rowColumn)}
onChange={(row) => paginatedRows.update(index, row)}
onRevert={(row) => paginatedRows.update(index, row)}
openSideSheet={() => {
close(); /* closes the editor */
- onSelectSheetOption('update', null, 'row', row);
+
+ if (isRelationshipToMany(rowColumn)) {
+ openSideSheetForRelationsToMany(
+ columnId,
+ row[columnId]
+ );
+ } else {
+ onSelectSheetOption('update', null, 'row', row);
+ }
}} />