From 968054e3109b4a785ed40d000d7149bbc8583c68 Mon Sep 17 00:00:00 2001 From: David Gu Date: Fri, 9 May 2025 19:10:52 -0600 Subject: [PATCH 1/3] fix: use expandable cards for group columns form --- .../svelte/consumers/GroupColumnsForm.svelte | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/assets/svelte/consumers/GroupColumnsForm.svelte b/assets/svelte/consumers/GroupColumnsForm.svelte index 151f55270..883c0d705 100644 --- a/assets/svelte/consumers/GroupColumnsForm.svelte +++ b/assets/svelte/consumers/GroupColumnsForm.svelte @@ -65,13 +65,12 @@ {#if isEditMode} - - -
- Message grouping -
-
- + + + Message grouping + + + {#if !useCustomGrouping && !selectedTable.is_event_table}

Using primary keys for grouping. @@ -83,16 +82,23 @@ readonly={true} /> {/if} - - + + {:else if selectedTable && defaultGroupColumns.length === 0} - - + + Message grouping - - + + + +

+ {summaryText} +

+
+ +

No primary keys available. Custom grouping is required.

@@ -104,16 +110,14 @@ {#if groupColumnError}

{groupColumnError}

{/if} -
-
+ + {:else} -
- Message grouping -
+ Message grouping
From f857be3fd287ae36be0c5278d139aecd74411248 Mon Sep 17 00:00:00 2001 From: David Gu Date: Fri, 9 May 2025 22:14:23 -0600 Subject: [PATCH 2/3] feat: add tooltip for group message cards for existing sinks --- .../ui/card/expandable-card-header.svelte | 34 +++++++++++++ .../components/ui/card/expandable-card.svelte | 50 +++++++++---------- .../svelte/consumers/GroupColumnsForm.svelte | 7 ++- 3 files changed, 64 insertions(+), 27 deletions(-) create mode 100644 assets/svelte/components/ui/card/expandable-card-header.svelte diff --git a/assets/svelte/components/ui/card/expandable-card-header.svelte b/assets/svelte/components/ui/card/expandable-card-header.svelte new file mode 100644 index 000000000..4fee5203a --- /dev/null +++ b/assets/svelte/components/ui/card/expandable-card-header.svelte @@ -0,0 +1,34 @@ + + + + + + + +
+ +
+
+
diff --git a/assets/svelte/components/ui/card/expandable-card.svelte b/assets/svelte/components/ui/card/expandable-card.svelte index 022aeb4b6..3561d548a 100644 --- a/assets/svelte/components/ui/card/expandable-card.svelte +++ b/assets/svelte/components/ui/card/expandable-card.svelte @@ -1,36 +1,36 @@ - - - + + + + + + +

+ {titleTooltip} +

+
+ + {:else} + + + + {/if}
diff --git a/assets/svelte/consumers/GroupColumnsForm.svelte b/assets/svelte/consumers/GroupColumnsForm.svelte index 883c0d705..8556f9451 100644 --- a/assets/svelte/consumers/GroupColumnsForm.svelte +++ b/assets/svelte/consumers/GroupColumnsForm.svelte @@ -65,7 +65,10 @@ {#if isEditMode} - + Message grouping @@ -87,7 +90,7 @@ {:else if selectedTable && defaultGroupColumns.length === 0} - + Message grouping From 60370051cc25fbad4d3fea428780b9b9ae827967 Mon Sep 17 00:00:00 2001 From: David Gu Date: Mon, 12 May 2025 18:35:52 -0600 Subject: [PATCH 3/3] fix: misc fixes to sink forms, and expandable cards - The default state for tables with no primary keys is to expand the card, and show the option to select which column to group on. And disabled the collapsing behavior from the card as a column *must* be selected. - Made a change on ExpandableCards to allow this extra customization of disabling a card in either collapsed or expanded state. Previously a disabled card forced the state to be collapsed. - Added `type="button"` to the `ExpandableCardHeader` otherwise was causing some UX issues like submitting the form or showing form validation results unexpectedly. --- .../ui/card/expandable-card-header.svelte | 1 + .../components/ui/card/expandable-card.svelte | 2 +- assets/svelte/consumers/GroupColumnsForm.svelte | 12 ++++++++---- assets/svelte/consumers/SinkConsumerForm.svelte | 16 +++++++++++++--- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/assets/svelte/components/ui/card/expandable-card-header.svelte b/assets/svelte/components/ui/card/expandable-card-header.svelte index 4fee5203a..d9e80cdf2 100644 --- a/assets/svelte/components/ui/card/expandable-card-header.svelte +++ b/assets/svelte/components/ui/card/expandable-card-header.svelte @@ -17,6 +17,7 @@ diff --git a/assets/svelte/components/ui/card/expandable-card.svelte b/assets/svelte/components/ui/card/expandable-card.svelte index 3561d548a..5a02dff55 100644 --- a/assets/svelte/components/ui/card/expandable-card.svelte +++ b/assets/svelte/components/ui/card/expandable-card.svelte @@ -34,7 +34,7 @@
- {#if disabled || !expanded} + {#if !expanded} {:else} diff --git a/assets/svelte/consumers/GroupColumnsForm.svelte b/assets/svelte/consumers/GroupColumnsForm.svelte index 8556f9451..a390fc4de 100644 --- a/assets/svelte/consumers/GroupColumnsForm.svelte +++ b/assets/svelte/consumers/GroupColumnsForm.svelte @@ -17,7 +17,6 @@ let defaultGroupColumns = selectedTable?.default_group_columns || []; let groupColumnError: string | null = null; let useCustomGrouping = false; - let isExpanded = false; $: groupColumnError = errors.sequence_filter?.group_column_attnums?.[0]; $: defaultGroupColumns = selectedTable?.default_group_columns || []; @@ -60,7 +59,9 @@ .join(", ")}` : selectedTable?.is_event_table ? "Using source_database_id, source_table_oid, and record_pk for grouping, which is the default" - : "Using primary keys for grouping, which is the default"; + : defaultGroupColumns.length === 0 + ? "No primary keys available. Custom grouping is required." + : "Using primary keys for grouping, which is the default"; @@ -90,7 +91,10 @@ {:else if selectedTable && defaultGroupColumns.length === 0} - + Message grouping @@ -118,7 +122,7 @@ {:else} - + Message grouping diff --git a/assets/svelte/consumers/SinkConsumerForm.svelte b/assets/svelte/consumers/SinkConsumerForm.svelte index 73dd7461a..a418fccb8 100644 --- a/assets/svelte/consumers/SinkConsumerForm.svelte +++ b/assets/svelte/consumers/SinkConsumerForm.svelte @@ -354,15 +354,19 @@ }); } - let backfillSectionExpanded = false; let showMessageTypeExampleModal = false; let selectedExampleType: "change" | "record" = "change"; let transformSectionEnabled = false; + let transformSectionExpanded = false; let backfillSectionEnabled = false; + let backfillSectionExpanded = false; $: { transformSectionEnabled = selectedTable && consumer.type !== "redis_stream"; + transformSectionExpanded = transformSectionEnabled && !isEditMode; + backfillSectionEnabled = selectedTable && !isEditMode; + backfillSectionExpanded = backfillSectionEnabled && !isEditMode; } let transformRefreshState: "idle" | "refreshing" | "done" = "idle"; @@ -521,7 +525,10 @@ - + Transforms @@ -582,7 +589,10 @@ {#if !isEditMode} - + Initial backfill