Commit Graph

98 Commits

Author SHA1 Message Date
amwps290 820b8cd26f
feat(metadata): honor system schema visibility 2026-07-29 03:23:04 +08:00
二丫讲梵 ed9dd1072e
feat(desktop): show batch drop progress 2026-07-29 00:33:48 +08:00
zipg 8bd92e4f2c
fix(objects): avoid repeated object list reloads 2026-07-28 21:09:06 +08:00
Freedom 1cdbf4fa3d
fix(desktop): unify UI colors onto theme tokens 2026-07-28 11:24:10 +08:00
zipg 1d671ca698
fix(postgres): include owner and grants in displayed DDL 2026-07-27 21:45:35 +08:00
zipg 0b4b1f956f
fix(dameng): preserve cloned column comments 2026-07-27 14:53:13 +08:00
zhangsan 406b7acdbb
feat(sidebar): persist custom pinned item ordering 2026-07-26 10:30:09 +08:00
zipg 6ddfa8bd24
fix(postgres): improve view column save guidance 2026-07-24 15:51:27 +08:00
gggaiitx cdfcbad4e9
feat(objects): highlight active browser object 2026-07-21 17:25:48 +08:00
amwps290 727290fa32
fix(postgres): preserve overloaded routine signatures 2026-07-21 16:58:12 +08:00
二丫讲梵 2dad288907
fix(objects): align filter counts with search 2026-07-20 15:36:34 +08:00
二丫讲梵 85836f8e95
feat(sqlite): support attached database schema changes 2026-07-20 10:51:16 +08:00
t8y2 1e0c25d754 fix(objects): refresh object browser from shortcut 2026-07-17 22:54:33 +08:00
zipg f184bc3055
fix(objects): prevent idle object browser refresh 2026-07-17 21:15:08 +08:00
Elias 08cd8903f4
feat(xugu): expose programmable object metadata 2026-07-17 17:53:44 +08:00
LRcoding 17747f8a2d
feat(objects): search table fields by comment 2026-07-17 00:11:16 +08:00
LRcoding 63ea5f1fd8
feat(table-info): show column default values 2026-07-17 00:10:46 +08:00
gggaiitx 1b3f182202
统一表属性面板中编辑表结构图标为 PencilRuler (#3574) 2026-07-15 18:02:06 +08:00
Freedom 58466e049e
fix(objects): keep grid tile cards equal height 2026-07-14 19:03:35 +08:00
jischeng a9ca66a829
fix(doris): qualify external catalog tables 2026-07-13 23:56:53 +08:00
zipg d1cce3ed1e
fix(kingbase): quote MySQL-compatible identifiers 2026-07-13 18:51:32 +08:00
wuxiemian 130477c48c
fix(safety): guard object browser batch empty 2026-07-12 21:30:37 +08:00
gggaiitx 3c4c16dc06
fix: 修复双击模式下单击对象失效,右键查看DDL、源码等复用右侧面板 2026-07-12 10:07:13 +08:00
wuxiemian 1be66fb115
feat(safety): add production environment safeguards 2026-07-12 10:02:27 +08:00
zipg 8ff0f13bd4
fix: 兼容intel Mac旧版系统webview中样式问题
Co-authored-by: tangheng <tangheng@tanghengdeMacBook-Pro.local>
2026-07-11 21:53:29 +08:00
t8y2 361f7774e9 fix(objects): preserve database object source formatting 2026-07-11 21:38:24 +08:00
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
t8y2 0431fbea49 fix(ui): preserve tab scroll positions 2026-07-10 00:35:33 +08:00
Abeautifulsnow 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
t8y2 745f7f60b0 feat(postgres): add cascade table drop option 2026-07-06 15:45: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
一颗红心 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
zipg 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
zipg 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