From c14a60439391fb5b531fcb2bca48d1cf3571e03e Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 4 Jan 2026 13:58:47 +0000 Subject: [PATCH 1/2] Improve Manual Input UX for better scaling - Add minimum column width (140px) to prevent text truncation - Add sticky header row for better navigation when scrolling - Move controls to top with column/row count badges - Add row numbers column with sticky positioning - Merge delete button into column header for cleaner layout - Hide row delete buttons until row is hovered - Add select-on-focus for input fields - Add Tab key navigation (creates new row when tabbing from last cell) - Improve focus states with visible outlines - Better scrollbar styling and corner handling - Improved JSON editor section with header and hints --- .../elements/manualInput/ManualInput.vue | 469 ++++++++++++++---- 1 file changed, 380 insertions(+), 89 deletions(-) diff --git a/flowfile_frontend/src/renderer/app/components/nodes/node-types/elements/manualInput/ManualInput.vue b/flowfile_frontend/src/renderer/app/components/nodes/node-types/elements/manualInput/ManualInput.vue index e6001e6af..6ba764891 100644 --- a/flowfile_frontend/src/renderer/app/components/nodes/node-types/elements/manualInput/ManualInput.vue +++ b/flowfile_frontend/src/renderer/app/components/nodes/node-types/elements/manualInput/ManualInput.vue @@ -2,75 +2,121 @@
+ +
+
+ + + Add Column + + + + Add Row + + + + {{ showRawData ? "Hide JSON" : "Edit JSON" }} + +
+
+ {{ columns.length }} columns + {{ rows.length }} rows +
+
+
- - - - - + + + - - + + -
-
+
#
- - - + - + +
+
+ + + +
- +
{{ rowIndex + 1 }} + - +
- -
-
- - - Add Column - - - - Add Row - - - - {{ showRawData ? "Hide" : "Show" }} Raw Data - -
-
-
+
+ JSON Editor + Edit the data as JSON array +
- Update Table + + Apply JSON to Table
@@ -271,6 +317,31 @@ const toggleRawData = () => { showRawData.value = !showRawData.value; }; +const selectAll = (event: FocusEvent) => { + const target = event.target as HTMLInputElement; + target.select(); +}; + +const handleCellKeydown = (event: KeyboardEvent, row: Row, col: Column) => { + if (event.key === "Tab" && !event.shiftKey) { + const colIndex = columns.value.findIndex((c) => c.id === col.id); + const rowIndex = rows.value.findIndex((r) => r.id === row.id); + + // If last column and last row, add new row + if (colIndex === columns.value.length - 1 && rowIndex === rows.value.length - 1) { + event.preventDefault(); + addRow(); + // Focus first cell of new row after Vue updates DOM + setTimeout(() => { + const newRowCells = document.querySelectorAll('.data-row:last-child .input-cell'); + if (newRowCells.length > 0) { + (newRowCells[0] as HTMLInputElement).focus(); + } + }, 0); + } + } +}; + const updateTableFromRawData = () => { try { const newData = JSON.parse(rawDataString.value); @@ -319,115 +390,335 @@ defineExpose({ From e45a70eada15b27d7a62b727b6d7b2989f87e90d Mon Sep 17 00:00:00 2001 From: edwardvaneechoud Date: Sun, 4 Jan 2026 15:20:07 +0100 Subject: [PATCH 2/2] only run codeql.yaml on schedule and manual trigger --- .github/workflows/codeql.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index 1e83cca3b..c57baf24d 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -1,10 +1,6 @@ name: "CodeQL" on: - push: - branches: [main] - pull_request: - branches: [main] schedule: - cron: '0 6 * * 1' # Weekly scan workflow_dispatch: # Manual trigger