Commit Graph
162 Commits
Author SHA1 Message Date
t8y2 05a98f6f4f feat: use Geist Variable 12.5px for data grid tables 2026-06-16 11:10:05 +08:00
t8y2 5f870be0d9 feat(editor): open table ddl panel from SQL 2026-06-16 00:51:34 +08:00
Libon 1991bf118b feat(infinite-scroll): implement infinite scroll feature with customizable max rows 2026-06-15 23:05:35 +08:00
t8y2 8ee5dd9d35 fix(grid): unify data grid scrollbars 2026-06-15 15:53:51 +08:00
t8y2 60e49128cb fix(grid): show data grid vertical scrollbar 2026-06-15 15:37:07 +08:00
t8y2 96a01a6050 fix(grid): align data grid editor fonts 2026-06-15 15:30:55 +08:00
t8y2 1a91cb7c77 feat(ui): add copy action to error banners 2026-06-15 12:47:54 +08:00
dbin0123 14e095215b feat(generate): fix date range persistence, add i18n for data generation
Thanks @dbin0123!
2026-06-14 22:54:11 +08:00
t8y2 8932b0a308 fix(mongo): align collection loading state 2026-06-14 17:04:56 +08:00
t8y2 48ba76bc9a feat(data-grid): add row numbering to table info columns tab 2026-06-13 17:02:49 +08:00
sweetwisdom ca3e3a2a56 fix: clamp canvas surface width to eliminate horizontal scrollbar flicker
Thanks for the fix!
2026-06-12 11:30:03 +08:00
t8y2 6081ba46f6 fix: prevent freeze when manually editing date cell and clicking away 2026-06-12 00:58:13 +08:00
t8y2 098d125bcb fix(ui): soften overflow scrollbars 2026-06-11 22:20:34 +08:00
t8y2 f969db571c fix(canvas): fallback to DOM scroller size when canvas viewport uninitialized 2026-06-11 20:58:52 +08:00
t8y2 514a01b3b1 feat: shared ErrorBanner component, CustomSaveHandler with preview, and cleanup 2026-06-11 20:24:56 +08:00
t8y2 bd3585f057 fix: draw selected cell left border for first visible column in canvas mode 2026-06-11 19:35:08 +08:00
t8y2 26d714909e feat(elasticsearch): model indices as first-class nodes 2026-06-11 12:52:47 +08:00
t8y2 521a3021c4 fix(clickhouse): load table index metadata 2026-06-11 12:23:28 +08:00
t8y2 2b7264a531 feat: data grid search also matches column names 2026-06-11 11:08:51 +08:00
t8y2 bd66904c86 fix(grid): suppress drawer context menu 2026-06-11 11:04:06 +08:00
Scars 215b0cf7d4 fix(desktop): show horizontal data grid scrollbar (#1018) 2026-06-10 22:35:38 +08:00
t8y2 9f0dae1754 fix(grid): preserve table filter builder state 2026-06-10 20:08:18 +08:00
t8y2 e3b4aac84c fix(desktop): tighten frontend transitions 2026-06-10 19:20:30 +08:00
t8y2 ca1d420d91 feat(grid): add enum column select editor for MySQL 2026-06-10 16:39:24 +08:00
t8y2 500d7c614b fix: resolve vue-tsc type errors in SqlPreviewPanel and DataGrid 2026-06-10 12:41:24 +08:00
t8y2 42a7ecdbed fix(grid): prevent scrollbar flicker during sidebar resize 2026-06-10 12:35:13 +08:00
t8y2 8599ab8200 feat(data-grid): add SQL preview panel for pending data changes 2026-06-10 12:06:36 +08:00
t8y2 edba8214b5 feat: show username/password fields for Access database connections 2026-06-10 08:37:18 +08:00
John Jin 354d21d086 feat(grid): 列是否可排序 (#935) 2026-06-09 16:43:53 +08:00
二丫讲梵 7798f2231e fix(grid): 修复右键菜单选择时的单元格清理逻辑
感谢 @eryajf 的贡献!
2026-06-09 15:45:20 +08:00
t8y2 9c8a1c62b7 fix(grid): preserve transpose view state on data refresh 2026-06-09 14:56:41 +08:00
t8y2 6bc3068069 fix(grid): row detail now respects hidden column state
Row detail dialog was using displayableColumnIndexes instead of
visibleColumnIndexes, causing columns hidden via "hide null columns"
or manual hiding to still appear in the detail view.
2026-06-09 14:43:42 +08:00
二丫讲梵 f8834aee09 feat(grid): 添加多行转置功能和相关界面支持 (#909)
- 新增多行转置状态管理
- 更新转置记录索引计算逻辑
- 增加多行转置切换开关及提示信息
- 更新国际化文件以支持多语言
2026-06-09 12:02:45 +08:00
DengQingNiananddqn 32164d5aea feat(grid): add layer preview for geometry columns with Leaflet map (#892)
* feat(grid): add layer preview for geometry columns with Leaflet map

* fix: restore dev:backend script with env vars and cargo watch

* chore: update pnpm-lock.yaml for leaflet and dom-to-image-more dependencies

---------

Co-authored-by: dqn <someonegdeng@qq.com>
2026-06-09 10:12:56 +08:00
t8y2 0ce6fde347 fix(grid): unify selected cell border thickness in DOM and canvas mode
DOM mode: replace box-shadow with outline to avoid stacking with row border-b.
Canvas mode: draw row border before selected cell overlay so selection uses
uniform color on all four sides; clamp top edge to prevent canvas clipping.
2026-06-09 01:01:50 +08:00
t8y2 5ec50ba15b fix(postgres): support editing array cells 2026-06-08 18:31:05 +08:00
Yong Studt 2628fb8374 feat(elasticsearch): add SQL-model execution with mapping-aware completion
- Route SELECT * FROM <index> through /_search for simple browses; aggregates/projections stay on /_sql
- Drive completion columns from /_mapping (flattened dotted fields, multi-fields)
- Switch editor completion to SQL when the active statement starts with SELECT/WITH on ES
- Skip generic SQL semantic diagnostics for ES (hyphenated wildcard indices caused 500s)
- Wire ES into server-side pagination plan; derive completion context from line blocks
- Fix result-grid pagination exceeding in-memory result sets (allRowsLoaded)
2026-06-08 17:53:05 +08:00
t8y2 03f273bb4d fix(grid): sharpen canvas rendering under ui zoom 2026-06-08 12:46:56 +08:00
54de28d583 feat(grid): show column data types in result header (#669) (#820)
The data grid header only showed column names, and column types were
available only via tableMeta (open-table view). Arbitrary query results
(e.g. `select * from pg_depend`) therefore showed no type at all, which
is exactly the case the reporter hit.

Backend: add `column_types` to QueryResult (serde-default, backward
compatible) and populate it for the native drivers where the type is
readily available — PostgreSQL, MySQL, SQL Server, ClickHouse. Other
drivers leave it empty for now (no behavior change); schemaless stores
(Mongo/Redis/ES) have no column types.

Frontend: render a type row under each column name in the grid header,
color-coded by type. The type is resolved from tableMeta first (richer,
includes precision) and falls back to the query result's column_types by
index. Add a `showColumnTypesInHeader` setting (default on) and keep the
msgpack tab-result cache compatible. The source-selection logic is
extracted to lib/dataGridColumnType.ts with unit tests.

Co-authored-by: vrustx <vrustx@vrustxdeMac-mini.local>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 22:45:46 +08:00
ff32e4b00f fix(grid): make cell-detail side panel resizable and unify value display (#723) (#809)
The bottom-docked cell detail side panel could not be resized and its
details view still used the old three-block "value / raw value / formatted
JSON" layout, causing the issues reported on macOS:

- bottom layout had no resize handle and a fixed, too-small height
- "value" showed the grid's (truncated) display value while "raw value"
  showed the original — redundant for JSON, and shown inconsistently
  (only when the two happened to differ)
- the "formatted value" block rendered the grid-truncated display value,
  which is incomplete and confusing inside the detail view

Changes:
- side panel bottom layout: add a top-edge row-resize handle and make the
  height adjustable (reuse clampCellDetailPanelSize, support vertical drag)
- unify the side panel details view with the cell-detail dialog: a single
  value area showing the original value plus a "format JSON" toggle button
- drop the redundant "raw value" / "formatted value" blocks in both the
  side panel and the dialog (the dialog change also addresses the #528
  follow-up where the truncated "formatted value" block was confusing)

Co-authored-by: vrustx <vrustx@vrustxdeMac-mini.local>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 13:00:14 +08:00
t8y2 1a4e59875b feat(grid): enhance canvas scrolling with acceleration and trackpad support 2026-06-07 12:11:55 +08:00
vrustxandClaude Opus 4.8 fe0f34a6d9 fix(grid): polish cell/row/column detail dialogs (#528)
Address the follow-up UI feedback on the data detail dialogs:

- cell detail: toggle between raw value and formatted JSON inside a single
  value area (via a "format JSON" button) instead of stacking the value,
  formatted value and formatted JSON blocks, removing the redundancy.
- kill horizontal scrollbars: add break-words to the formatted-value block,
  and constrain row/column detail value columns with w-full max-w-0 so long
  unbroken values wrap instead of overflowing the table.
- row detail: column name uses break-words instead of break-all to stop long
  names from wrapping character-by-character.
- unify footer button layout across the three detail dialogs (bulk-copy
  actions on the left, copy-name on the right).
- add a search box to row & column detail to filter fields by name / value /
  row number (filterDataGridDetailFields + unit tests).
- i18n: add detailSearchPlaceholder / detailSearchNoMatch for all 6 locales.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 01:48:05 +08:00
t8y2 0b07f05f72 fix(grid): prevent grid from intercepting clipboard in native inputs and cell detail
- Add data-native-clipboard to cell detail panel so Cmd+C copies selected text
- Skip onGridPaste when event target is a native input element
2026-06-06 20:49:32 +08:00
t8y2 2b5300722f feat: optimize tab result lifecycle caching 2026-06-06 20:30:35 +08:00
t8y2 b226b445d6 fix(export): preserve MySQL bit literals in SQL export 2026-06-06 19:03:21 +08:00
t8y2 e504d0c175 fix: sync transpose cell detail selection 2026-06-06 17:06:33 +08:00
t8y2 631584bed1 fix(mongo): align table grid controls 2026-06-06 15:41:18 +08:00
t8y2 6bcc85233c fix(grid): show local column filters in filter popover 2026-06-06 14:04:52 +08:00
t8y2 fecefb1589 fix(grid): refine total row counting 2026-06-06 11:13:47 +08:00
t8y2 012b03cac5 fix: prevent grid paste handler from intercepting paste in edit mode
When a cell is in edit mode, the native paste event was bubbling up to
the grid root's @paste handler, which called preventDefault() and wrote
values directly to the data model instead of the edit input. This caused
the "Pasted!" toast to appear but the input content remained unchanged.

Adding @paste.stop on edit inputs allows the browser's default paste
behavior to insert text into the input field, properly updating editValue
via v-model.
2026-06-06 00:34:09 +08:00