From 3680972816663fa5637ee3483f56f1496532020f Mon Sep 17 00:00:00 2001 From: Diego Imbert Date: Sat, 20 Jun 2026 17:20:06 +0200 Subject: [PATCH] compare paeg --- .../lib/components/CompareWorkspaces.svelte | 4 +- .../lib/components/DatatableSchemaDiff.svelte | 195 ++++++++++-------- 2 files changed, 105 insertions(+), 94 deletions(-) diff --git a/frontend/src/lib/components/CompareWorkspaces.svelte b/frontend/src/lib/components/CompareWorkspaces.svelte index 06d787095e..5b62e1bf22 100644 --- a/frontend/src/lib/components/CompareWorkspaces.svelte +++ b/frontend/src/lib/components/CompareWorkspaces.svelte @@ -1094,9 +1094,7 @@ /> -
- -
+ diff --git a/frontend/src/lib/components/DatatableSchemaDiff.svelte b/frontend/src/lib/components/DatatableSchemaDiff.svelte index 037dc0acd5..aa3d255e70 100644 --- a/frontend/src/lib/components/DatatableSchemaDiff.svelte +++ b/frontend/src/lib/components/DatatableSchemaDiff.svelte @@ -213,6 +213,11 @@ let loading = $state(true) let error: string | undefined = $state(undefined) let diffs: DatatableDiff[] = $state([]) + // Number of forked datatables this schema-diff section applies to: those that + // have NOT opted in to the migrations feature. When a datatable enables + // migrations, its changes flow through the normal item diff instead, so it is + // excluded here and the whole section hides once none remain. + let applicableCount = $state(0) let expandedDatatables: Set = $state(new Set()) // Drawer state @@ -233,7 +238,10 @@ workspace: currentWorkspaceId }) const datatables = forkSettings.datatable?.datatables ?? {} - const forkedEntries = Object.entries(datatables).filter(([_, dt]) => dt.forked_from != null) + const forkedEntries = Object.entries(datatables).filter( + ([_, dt]) => dt.forked_from != null && dt.migrations_enabled !== true + ) + applicableCount = forkedEntries.length if (forkedEntries.length === 0) { loading = false return @@ -394,102 +402,107 @@ } -

Datatable schema changes

-{#if loading} -
- Loading datatable diffs... -
-{:else if error} -
Failed to load datatable diffs: {error}
-{:else if diffs.length > 0} -
- {#each diffs as diff} - - +{#if applicableCount > 0} +
+

Datatable schema changes

+ {#if loading} +
+ Loading datatable diffs... +
+ {:else if error} +
Failed to load datatable diffs: {error}
+ {:else if diffs.length > 0} +
+ {#each diffs as diff} + + - {#if expandedDatatables.has(diff.datatableName)} -
- {#if diff.aheadChanges.length > 0} -
-
Fork changes (ahead)
- {#each diff.aheadChanges as change} -
- {#if change.kind === 'added'} - - {:else if change.kind === 'removed'} - - {:else} - - {/if} - {change.schemaName}. - {change.tableName} - {operationSummary(change)} - + {#each diff.aheadChanges as change} +
+ {#if change.kind === 'added'} + + {:else if change.kind === 'removed'} + + {:else} + + {/if} + {change.schemaName}. + {change.tableName} + {operationSummary(change)} + +
+ {/each}
- {/each} + {/if} + {#if diff.behindChanges.length > 0} +
+
+ Parent changes (behind) +
+ {#each diff.behindChanges as change} +
+ {#if change.kind === 'added'} + + {:else if change.kind === 'removed'} + + {:else} + + {/if} + {change.schemaName}. + {change.tableName} + {operationSummary(change)} + +
+ {/each} +
+ {/if}
{/if} - {#if diff.behindChanges.length > 0} -
-
- Parent changes (behind) -
- {#each diff.behindChanges as change} -
- {#if change.kind === 'added'} - - {:else if change.kind === 'removed'} - - {:else} - - {/if} - {change.schemaName}. - {change.tableName} - {operationSummary(change)} - -
- {/each} -
- {/if} -
- {/if} -
- {/each} + + {/each} +
+ {:else} + No changes detected + {/if}
-{:else} - No changes detected {/if}