Commit Graph
78 Commits
Author SHA1 Message Date
zipg 3747f08baa fix(table): refresh data tabs after clearing tables 2026-07-11 17:48:51 +08:00
zipg 085d7661af fix(objects): add safe object browser batch empty action 2026-07-11 17:48:45 +08:00
t8y2 a1b8174951 fix(doris): preserve external catalog in object browser 2026-07-11 13:34:18 +08:00
gggaiitx 5bcd24df1c feat(objects): open database objects in side panel 2026-07-11 12:48:57 +08:00
onlyc0302 903ab26c9b fix(postgres): allow extension dialog scrolling on desktop (#3107)
* fix(postgres): allow extension dialog scrolling

* feat(postgres): 优化安装插件弹窗高度响应式样式
对于issus#2989-pr#3033的补充修改。
2026-07-10 13:27:10 +08:00
t8y2 0431fbea49 fix(ui): preserve tab scroll positions 2026-07-10 00:35:33 +08:00
onlyc0302 5dfefbc0f5 fix(postgres): allow extension dialog scrolling 2026-07-09 18:19:40 +08:00
Abeautifulsnowanddbx-i18n-bot 2c2d9d7fef feat(objects): add checkbox multi-select and grid view for object browser
* feat(objects): add checkbox column toggle for object browser

- Add objectBrowserShowCheckbox setting (default: false) to EditorSettings
- Checkbox column hidden by default; auto-shows when any tables are selected
- Toolbar button toggles multi-select mode (active state highlighted in primary color)
- Clearing the toggle also clears all selections
- Add i18n key objects.toggleCheckbox in en/zh-CN

Closes #2748 (part 2)

* feat(objects): add grid view mode for object browser

- Add objectBrowserViewMode setting (list | grid, default: list) to EditorSettings
- Toolbar segmented control toggles between list and grid views, persisted across sessions
- Grid view renders cards (icon + name + type + row count) in a responsive auto-fill layout
- Reuses existing sort, search, filter, multi-select and context menu
- Partition children not expandable in grid mode (minimal version)
- Add i18n keys objects.viewList/objects.viewGrid across all locales
- Backfill objects.toggleCheckbox in es/it/ja/pt-BR/zh-TW (missed in prior commit)

Refs #2748

* fix(objects): redesign grid view cards for visual polish

- Center-align content (icon + name + metadata) for a proper tile look
- Enlarge type icons (h-7) so color coding is visible at a glance
- Merge type label and row count on one line with separator
- Reduce internal spacing (gap-1.5) and tighten padding
- Replace background hover with border glow + shadow for cleaner feedback
- Narrow min card width (150px) for denser grid, add align-content:start
- Softer rounded-lg corners

Refs #2748

* fix(objects): polish grid view card visual details

- Add colored circle background behind icons (type-matched opacity-10)
- Increase name font from text-xs to text-sm for better legibility
- Separate row count into a primary-tinted badge (only shown when > 0)
- Keep type label clean without mixing row count inline

Refs #2748

* fix(objects): refine grid card min-width, icon shadow, and type label size

* @
feat(object-browser): align tile/grid card metadata with list view columns

Add the metadata categories present in the list view but missing from
the tile/grid card view (objectBrowserViewMode === "grid"):
- Size pill (totalBytes) next to the existing rows pill in the stats row
- Timestamps row showing created_at · updated_at (per-row conditional)
- Comment row (truncated, per-row conditional, with hover tooltip)

Each card now shows: icon, name, type label, rows pill, size pill,
timestamps (when present), and comment (when present) — matching the
same metadata categories the list view displays across its 8 columns.

Also fix a pre-existing bug in the list view where the totalBytes
column tooltip (:title) used formatObjectBrowserCount instead of
formatObjectBrowserBytes, showing a count-formatted number instead
of a byte-formatted size string.
@

* @
feat(object-browser): add sort selector in toolbar for grid/list views

The list view has column header click-to-sort but the grid/tile view
had no way to change sort order. Add a compact sort selector in the
toolbar that works identically in both views:

- Native <select> dropdown with all 7 sort keys (name, type, rows,
  size, created, updated, comment) using existing column i18n labels
- ArrowUp/ArrowDown direction toggle button with localized tooltip
- Positioned between schema selector and view toggle in the toolbar
- Shares the existing sortKey/sortDirection/toggleSort logic — list
  view column headers continue to work as before
- Accessible: aria-label on select, title on direction button

i18n: added sortAsc/sortDesc/sortBy to en.ts and zh-CN.ts
@

* @
fix(object-browser): make sort key options reactive to available data

sortKeyOptions was a static array that always included created_at and
updated_at even when no row had data for those fields. Sorting by an
empty field is a no-op that silently confuses users.

Convert to a computed that mirrors the list view column visibility logic
(hasCreatedAt / hasUpdatedAt): the two time-based sort options only
appear when at least one loaded row has that field populated.

Follows design decision: sort selector remains visible in both list and
grid views (plan B), acting as a shared sort state indicator.
@

* @
fix(object-browser): reset sortKey when selected option disappears from options

When sortKeyOptions loses created_at or updated_at (e.g. after a schema
switch clears all rows), sortKey could remain set to a key no longer in
the dropdown, causing the <select> to show a blank selection.

Add a watch on sortKeyOptions that resets sortKey to "name" and
sortDirection to "asc" whenever the current key is no longer present.
@

* chore(i18n): autofill new translations

* perf(object-browser): virtualize tile/grid view with RecycleScroller

Replaces the flat v-for over filteredRows with a row-chunked
RecycleScroller, matching the list view. Previously, switching to tile
mode on a schema with thousands of tables mounted every card and its
CustomContextMenu at once, stalling the UI for several seconds.

Changes:
- gridRows computed: chunks filteredRows into rows of gridColumns cards
- ResizeObserver on the grid container drives gridColumns; initial read
  uses getComputedStyle to match contentRect.width and avoid a 1-frame
  column jump on mount
- objectGridRowHeight computed: item-size adapts to whether the dataset
  has timestamp/comment rows, minimising wasted row space
- watch(gridContainerRef) re-attaches the observer across list<->grid
  toggles; onBeforeUnmount cleans up
- scrollObjectsToTop() resets scroll position on sort, search,
  object-type filter and view-mode changes
- CSS: new .object-browser-grid-wrapper / -scroller / -row classes with
  will-change / contain parity with the list scroller

---------

Co-authored-by: dbx-i18n-bot <github-actions[bot]@users.noreply.github.com>
2026-07-09 11:59:25 +08:00
一颗红心 c60b23ffe7 fix: swap upload and download icons in various components for consistency 2026-07-07 14:17:33 +08:00
t8y2 1db11ea145 feat(postgres): support batch table cascade actions 2026-07-07 11:57:44 +08:00
zipg 668919a7c9 fix(gbase8s): make view source saves safer 2026-07-07 01:50:53 +08:00
zipgandzipg 26647ff755 fix(ddl-viewer): fix selection style visibility
Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
2026-07-06 17:10:50 +08:00
t8y2 745f7f60b0 feat(postgres): add cascade table drop option 2026-07-06 15:45:47 +08:00
zergmk2 f800d80f90 feat: add SSH config aliases and PostgreSQL extensions 2026-07-05 20:29:49 +08:00
zipgandstaff 5c35755219 Feature:新增多套应用配色主题 (#2559)
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-07-05 00:34:47 +08:00
t8y2 223ecbec20 fix(oracle): skip rowid for view data queries 2026-07-04 17:07:43 +08:00
t8y2 7e7c4944e9 refactor(desktop): organize lib modules by domain 2026-07-04 13:53:52 +08:00
t8y2 32a9496d2a fix(tabs): close dropped table tabs 2026-07-04 12:21:44 +08:00
二丫讲梵 90d2ede740 feat(sidebar): add connection copy paste shortcuts 2026-07-04 12:19:56 +08:00
t8y2 a36d3c8f71 fix(objects): expand object browser search field 2026-07-04 10:54:25 +08:00
一颗红心andCursor 97f107caac fix(app): unify import/export icons and clarify result archive tooltip
* fix(app): unify import and export icons across sidebar surfaces

Use Upload for import actions and Download for export actions in the
connection sidebar, object browser, connection tree menus, and table
toolbox so icon semantics match the rest of the app.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(i18n): rename import result archive tooltip label

Clarify the editor toolbar action as importing a saved result archive so
it pairs clearly with the save result archive action.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 23:45:02 +08:00
zipgandstaff bba23aa9d3 fix(objects): make object browser width responsive and scroll internally
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-07-01 17:55:38 +08:00
zipgandstaff 5e8af8df2e Feature:支持模式选择搜索
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-07-01 15:44:36 +08:00
miracle 0c91fecf5d feat(editor): add table copy/paste keyboard shortcuts
* feat: add table copy/paste with configurable structure and data options

- Implement Navicat-style table copy/paste functionality
- Support multi-table selection and batch operations
- Configurable paste modes: structure+data (default), structure only, data only
- Backend: add build_copy_table_data_sql API (INSERT INTO ... SELECT)
- TreeItem.vue: copy/paste context menus, paste dialog with mode selection
- ObjectBrowser.vue: batch toolbar buttons, context menu, paste dialog
- Refactor TreeClipboard type to support multi-table entries
- Add i18n keys for all 7 locale files (en, zh-CN, zh-TW, ja, es, it, pt-BR)

* Fix table paste shortcuts

* Fix Kafka MQ sidebar detection

* Restrict table paste scope

* Support data copy for primary SQL databases
2026-07-01 12:49:37 +08:00
onenewcode aae2cae068 fix(export): append semicolons to exported DDL statements 2026-06-30 18:00:44 +08:00
zipg 7091615f8a fix: 修复 PostgreSQL 重载过程显示重复 2026-06-29 19:58:01 +08:00
Abeautifulsnow 8094f4901d fix(browser): ensure connection before mount loads 2026-06-29 12:05:46 +08:00
t8y2 73120883b6 fix(dameng): separate materialized view metadata 2026-06-27 14:29:44 +08:00
kkk000111999 ff810f3058 fix(sql-format): format source and DDL with proper dialects 2026-06-27 12:36:13 +08:00
林剑凛 41f2468313 feat(objects): support object browser column resizing 2026-06-26 13:23:17 +08:00
t8y2 42541d1146 fix(export): align row limits and progress 2026-06-25 17:01:32 +08:00
t8y2 988b2ab3da feat(sqlserver): recognize readonly keyword 2026-06-22 17:56:49 +08:00
t8y2 d59997c090 feat(objects): add table statistics columns 2026-06-19 14:35:32 +08:00
ptma e7ee0c9ec1 fix(questdb): handle materialized views and unify table_type naming
* fix(questdb): handle materialized views

* fix(test): fix rust test problems
2026-06-18 11:40:57 +08:00
t8y2 22b8ba17bb fix(schema): handle view DDL object types 2026-06-17 19:29:24 +08:00
t8y2 4dbd1c7cc8 fix: convert source to editable form when opening view/procedure editor 2026-06-17 15:20:21 +08:00
lexmin0412 11b6fc2d74 feat(ui): add View DDL for tables in sidebar and object browser 2026-06-16 18:07:59 +08:00
t8y2 8d4a08c3d5 fix(desktop): sort batch table drop by foreign key dependency 2026-06-16 15:01:21 +08:00
John Jin 1afc271c18 feat: add QuestDB support
Thanks @ptma!
2026-06-14 22:58:05 +08:00
t8y2 cbc7f9b0db fix(gbase): support 8a and 8s profiles 2026-06-14 10:16:24 +08:00
t8y2 edba8214b5 feat: show username/password fields for Access database connections 2026-06-10 08:37:18 +08:00
t8y2 d08385e75f feat: add Turso/libSQL database support
Turso is a distributed SQLite database built on libSQL, offering HTTP-based
connectivity with auth token authentication. This change adds full support:

- New DatabaseType::Turso and PoolKind::Turso variants
- TursoClient driver using libSQL HTTP pipeline API (/v2/pipeline)
- Bearer token auth via password or url_params (auth_token=)
- Multi-statement batch pipeline for transactional integrity
- Standalone BEGIN/COMMIT/ROLLBACK treated as no-ops (pipeline is auto-commit)
- Full metadata support: tables, columns, indexes, foreign keys, triggers, DDL
- Frontend: connection form, SQL completion (SQLite syntax), capability sets
- Built-in databases (SQLite/Turso/DuckDB/RQLite/Access) placed first in selector
- Unit tests (15) + integration tests against live libsql-server (12)
- Single connection pool, skips TCP probe

Closes #948
2026-06-10 04:18:05 +08:00
t8y2 befee2fd4c feat(postgres): support sequence objects 2026-06-08 22:54:14 +08:00
t8y2 b226b445d6 fix(export): preserve MySQL bit literals in SQL export 2026-06-06 19:03:21 +08:00
Xudong Guo 9b15843e1a feat: add KWDB support 2026-06-05 16:55:38 +08:00
t8y2 0887b96236 feat: add rqlite database support 2026-06-05 01:02:07 +08:00
t8y2 120566b1fd fix: improve JDBC dialect handling 2026-06-04 19:40:52 +08:00
t8y2 9935f8e7fe fix: improve iris schema metadata completion 2026-06-04 15:09:56 +08:00
skyler ff2210e5a4 Merge pull request #702 from DengQingNian/optimize/export-pagination-orderby-batchsize
perf(ui): 优化数据导出的ui体验和性能
2026-06-03 21:42:38 +08:00
t8y2 2183c370dc fix(export): handle table export edge cases 2026-06-03 21:41:16 +08:00