From f1476a5e9472a2e19dc1754f94200c0091bb7a37 Mon Sep 17 00:00:00 2001 From: BrajamohanDas-afk Date: Sun, 18 Jan 2026 17:14:41 +0530 Subject: [PATCH 1/3] fix(ui): add numbered pagination and row numbers to ION file preview. --- ui/src/components/ListPreview.vue | 196 ++++++++++++++++--- ui/src/components/executions/FilePreview.vue | 6 +- ui/src/translations/en.json | 10 +- 3 files changed, 178 insertions(+), 34 deletions(-) diff --git a/ui/src/components/ListPreview.vue b/ui/src/components/ListPreview.vue index 87a3768d409..20ab1326a2f 100644 --- a/ui/src/components/ListPreview.vue +++ b/ui/src/components/ListPreview.vue @@ -1,22 +1,51 @@ \ No newline at end of file diff --git a/ui/src/components/executions/FilePreview.vue b/ui/src/components/executions/FilePreview.vue index 097baa5192d..9b796bfc309 100644 --- a/ui/src/components/executions/FilePreview.vue +++ b/ui/src/components/executions/FilePreview.vue @@ -161,15 +161,15 @@ ]; const configPreviewInitialRows = (): number => { - return miscStore.configs?.preview.initial || 50; + return miscStore.configs?.preview.initial || 500; }; const configPreviewMaxRows = (): number => { - return miscStore.configs?.preview.max || 5000; + return miscStore.configs?.preview.max || 5000; }; const maxPreviewOptions = computed(() => { - return [10, 25, 50, 100, 500, 1000, 5000, 10000, 25000, 50000].filter( + return [50, 100, 250, 500, 1000, 5000, 10000, 25000, 50000].filter( value => value <= configPreviewMaxRows() ); }); diff --git a/ui/src/translations/en.json b/ui/src/translations/en.json index f6b63aa8390..c6a9b2929b2 100644 --- a/ui/src/translations/en.json +++ b/ui/src/translations/en.json @@ -1605,7 +1605,15 @@ "label": "Preview", "force-editor": "Enforce editor view", "auto-view": "Auto view", - "view": "View" + "view": "View", + "rows_truncated": "Showing {shown} of {total} rows. Download the file to view all data.", + "pagination_info": "Showing rows {start}-{end} of {total}.", + "showing_rows": "Showing rows {start}-{end} of {total}", + "expand": "Expand", + "collapse": "Collapse", + "previous": "Previous", + "next": "Next", + "page_of": "Page {current} of {total}" }, "filter": { "update": "Update", From 161066319bdd39a2349b95c50acb841833ffc861 Mon Sep 17 00:00:00 2001 From: BrajamohanDas-afk Date: Tue, 27 Jan 2026 12:23:18 +0530 Subject: [PATCH 2/3] Optimized list preview pagination and column stability --- ui/src/components/ListPreview.vue | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ui/src/components/ListPreview.vue b/ui/src/components/ListPreview.vue index 20ab1326a2f..f85aa734ddc 100644 --- a/ui/src/components/ListPreview.vue +++ b/ui/src/components/ListPreview.vue @@ -90,14 +90,17 @@ const generateTableColumns = computed(() => { const allKeys = new Set(); - previewData.value.forEach(item => { - Object.keys(item).forEach(key => allKeys.add(key)); + props.value.forEach(item => { + if (item && typeof item === "object") { + Object.keys(item).forEach(key => allKeys.add(key)); + } }); return Array.from(allKeys); }); + const isComplex = (data: any): boolean => { - return data instanceof Array || data instanceof Object; + return data !== null && typeof data === "object"; }; const getCellKey = (rowIndex: number, column: string): string => { From 15a79935347020b91710206ddb9d4e56b9f6c21a Mon Sep 17 00:00:00 2001 From: BrajamohanDas-afk Date: Mon, 2 Feb 2026 20:15:02 +0530 Subject: [PATCH 3/3] refactor(ui): reuse shared Pagination component in ListPreview --- ui/src/components/ListPreview.vue | 80 ++++++++++--------------------- 1 file changed, 26 insertions(+), 54 deletions(-) diff --git a/ui/src/components/ListPreview.vue b/ui/src/components/ListPreview.vue index f85aa734ddc..90f535244e8 100644 --- a/ui/src/components/ListPreview.vue +++ b/ui/src/components/ListPreview.vue @@ -26,26 +26,21 @@ -
- -
- {{ $t('preview.showing_rows', {start: startRow, end: endRow, total: props.value.length}) }} -
-
+