t8y2
e984f698b2
fix(ui): 优化表格与 SQL 文件弹窗布局
2026-05-09 17:54:38 +08:00
t8y2
36b1ac8eda
fix(grid): 翻页后重置表格滚动位置
2026-05-09 17:39:20 +08:00
t8y2
5c52560368
feat(schema): 增加数据库对象列表缓存
2026-05-09 17:36:20 +08:00
t8y2
1fd1cb10eb
perf(sidebar): 优化侧边栏搜索匹配性能
2026-05-09 17:36:09 +08:00
t8y2
de6fecb18b
fix: restore workspace build and refine grid menu
2026-05-09 17:07:52 +08:00
t8y2
40a3c13961
feat(grid): improve table context menu
2026-05-09 16:36:12 +08:00
t8y2
6a5dd3b51b
feat(sidebar): create connections from group menu
2026-05-09 16:27:25 +08:00
t8y2
b41e548911
fix(sidebar): preserve expanded tree on refresh
2026-05-09 16:22:00 +08:00
skyler
9b4267ef7b
Merge pull request #180 from rarnu/fix/toolbar-condition
...
Fix: 修复表数据编辑的工具栏,条件过滤和刷新丢状态的问题
2026-05-09 16:12:19 +08:00
t8y2
b8b4ef2e5a
feat(editor): support tab indentation
2026-05-09 15:58:28 +08:00
t8y2
af029daf57
fix(db): normalize default database handling
2026-05-09 15:53:06 +08:00
rarnu
c6aa0cf84f
1. 修复 ORDER BY watch 重复数组
...
2. WHERE / ORDER BY 输入框 @blur 处理
2026-05-09 15:51:13 +08:00
rarnu
9261cb71a2
1. src/components/grid/DataGrid.vue
...
- 左侧搜索框:移除了 WHERE 支持(isWhereSearch 永远返回 false),现在是纯客户端文本过滤。保留了列名代码提示功能(Tab 补全、箭头导航)。
- WHERE 框:新增列名代码提示(独立的下拉建议面板),支持单双引号和小括号自动配对,Enter 直接应用过滤。
- ORDER BY 框:新增列名代码提示(同样的建议面板),Enter 直接应用排序。
- 刷新/回滚/提交:reload emit 现在传递 4 个参数 (sql, searchText, whereInput, orderBy),确保刷新后所有条件不丢失。
- 分页/排序:统一使用新的 currentWhereInput() 函数,替代已废弃的 activeWhereInput。
- 删除了 applyWhereSearch() 和 onSearchEnter()(左侧搜索不再需要执行 WHERE 查询)。
2. src/composables/useDataGridActions.ts
- onReloadData() 签名改为接受 4 个参数 (sql, searchText, whereInput, orderBy)。
- table-data 模式刷新时,用 buildTableSql(tab, { whereInput, orderBy }) 重建 SQL,保留 WHERE 和 ORDER BY 条件。
3. src/components/layout/ContentArea.vue
- reload emit 签名同步更新为 4 个参数。
- results 模式和 table-data 模式两个 DataGrid 的 @reload 处理器都转发全部 4 个参数。
4. src/App.vue
- ContentArea 的 @reload 处理器转发 4 个参数给 onReloadData()。
2026-05-09 15:04:06 +08:00
t8y2
9a9f67f9ae
fix(window): prevent double-toggle on titlebar double-click ( #179 )
...
data-tauri-drag-region already handles double-click to maximize
natively; the @dblclick handler was calling toggleMaximize() again,
immediately restoring the window.
2026-05-09 14:51:47 +08:00
t8y2
5c911f39ff
fix(ui): prevent tab scroll arrow overlapping with text
...
Widen the scroll button gradient area and use a solid-to-transparent
gradient (40% opaque) instead of a semi-transparent via stop, so tab
text is fully hidden behind the arrow overlay.
2026-05-09 14:26:31 +08:00
t8y2
4c5de25f95
fix: enable tab context menu (close all/close others/close right)
2026-05-09 11:56:09 +08:00
t8y2
1a1f128f2b
feat: Redis browser overhaul — Navicat-style table, editing, and pagination
...
- Unified key table with columns: key, type, value preview, size, TTL
- Top-bottom split layout: key table above, value detail below
- Virtual scrolling via RecycleScroller for large key sets
- ZSet editing: add/remove members with scores
- TTL inline editing: click badge to modify expiration
- Batch key deletion with checkbox selection
- Paginated loading for Hash/Set/ZSet/List values (HSCAN/SSCAN/ZSCAN)
- Debounced auto-search (400ms) for key filtering
- Value previews fetched during key scan for instant display
2026-05-09 11:45:50 +08:00
t8y2
d6e273e136
feat: custom titlebar with integrated window controls
...
- macOS: overlay mode with native traffic lights, toolbar as drag region
- Windows/Linux: frameless window with custom minimize/maximize/close buttons
- Double-click toolbar to toggle maximize
2026-05-09 10:44:34 +08:00
t8y2
424bbdfc52
feat: add value editor and Set NULL in cell detail panel
...
Double-click value area or click Edit button to open textarea editor
for long text/JSON. Add Set NULL button for quick null assignment.
Fix: null values via ?? operator were ignored in dirty row display.
2026-05-09 01:06:19 +08:00
t8y2
ad79642502
feat: auto-fit column widths based on header and data content
...
Scan column names and first 50 rows to calculate optimal column width
instead of using a fixed 150px default. Double-click column separator
to auto-fit individual columns. Min 60px, max 400px.
2026-05-09 00:51:51 +08:00
t8y2
9ea098bd57
refactor: use icons for tab mode and Navicat-style tab titles
...
Replace text badges (SQL/表) with icons (Code2/Table2), remove
connection color dot, and adopt table@database.schema naming.
2026-05-09 00:21:56 +08:00
t8y2
70b55fe49a
feat: add independent WHERE and ORDER BY filter inputs to data grid ( #165 )
...
- Split WHERE and ORDER BY into separate inputs alongside search bar
- Three equal sections: Search | WHERE | ORDER BY with border separators
- Preserve tableMeta on error so filters remain visible after failed queries
- Show schema@database format in table data badge
2026-05-09 00:11:46 +08:00
t8y2
0e2fbc5a40
feat: show sort hint icon on column header hover ( #165 )
2026-05-08 21:44:56 +08:00
t8y2
bd08d9865d
feat: add "Copy as INSERT" to data grid context menu ( #166 )
2026-05-08 21:33:41 +08:00
t8y2
77ed6404a0
fix: disable overscroll bounce on data grid to prevent header desync ( #156 )
2026-05-08 20:38:40 +08:00
t8y2
0e6617c817
feat: support create/drop database and schema from sidebar context menu
...
Add context menu actions for creating and dropping databases and schemas
directly from the sidebar tree. Supports MySQL, PostgreSQL, SQL Server,
ClickHouse, Oracle, and other server-based databases.
2026-05-08 19:24:13 +08:00
t8y2
acfe9d1b23
fix: disable native context menu and add sidebar refresh button ( #159 )
...
Prevent browser native "Reload" from resetting app state in Tauri,
and add a refresh button to the sidebar header for convenience.
2026-05-08 19:05:21 +08:00
rarnu
8a249a2194
add: 在结果集中增加数据过滤的功能 ( #163 )
...
* add: 在结果集中增加数据过滤的功能
* 1. 提取 isResultsContext — 新增具名计算属性,替代魔法字符串 results,模板和逻辑中统一使用。
2. wherePredicate 在 results 场景下短路 — 加了 canUseWhereSearch.value ? ... : undefined 守卫,避免在结果集界面无意义地调用 normalizeWhereInput()。在 results 上下文下:
- wherePredicate → undefined
- isWhereSearch → false(因为 canUseWhereSearch 为 false)
- activeWhereInput → undefined
- 搜索框 placeholder 切换为纯 search(由 canUseWhereSearch 控制,已存在)
- 应用按钮隐藏(v-if=isWhereSearch,已存在)
逻辑链现在是一致的:canUseWhereSearch === false 时,所有 where 相关功能(解析、建议、按钮、回车提交)全部失效
2026-05-08 18:33:59 +08:00
Bacon2994
3b4b6c1ff7
fix(query): 修复查询结果表头提示与全量排序 ( #164 )
...
* fix(grid): 修复查询结果表头提示与排序
修复 MySQL 查询结果列元数据取错库名的问题,并补齐查询结果全量排序链路,避免表头提示与排序行为失效。
* fix(query): 修复结果排序重复列名报错
2026-05-08 18:31:09 +08:00
t8y2
c036dd19e4
feat: support middle-click to close tabs ( #162 )
2026-05-08 17:19:31 +08:00
rarnu
47ad960bbb
Fix: DataGrid数据集和工具栏的修复及加强 ( #157 )
...
* fix: 修复结果集内的数据过滤功能
* add: 将原先误删的WHERE查询加回
* add: 合并事务栏和搜索栏,并且在结果集中不启用搜索功能
* add: 修复在表数据和结果集模式下,DataGrid刷新时未保留查询条件的问题,将表数据和结果集的处理逻辑进行拆分
* add: 与主分支合并,解决冲突
* add: 恢复i18n
* add: 恢复useDataGridActions.ts
* add: 恢复ContentArea.vue
* add: 恢复DataGrid.vue
* fix: 修复括号自动配对的bug
* add: 将DDL按钮移到表数据编辑的第一行尾,并且不在DataGrid中显示
2026-05-08 16:04:21 +08:00
t8y2
b06d5ded04
fix(redis): align value viewer header height with key browser search bar
2026-05-08 11:49:03 +08:00
skyler
de244a0b12
Merge pull request #149 from Bacon2994/codex/redis-rdm-consistency
...
feat(redis): 修复全库键浏览与二进制展示
2026-05-08 11:34:20 +08:00
t8y2
9fd16e3c1f
perf(grid): pre-stringify JSON/JSONB values and truncate cell display
...
Serialize JSON/JSONB as strings in Postgres and MySQL drivers to avoid
repeated JSON.stringify in the render loop. Truncate cell display to
256 chars so the browser doesn't lay out huge text nodes on scroll.
2026-05-08 11:23:31 +08:00
t8y2
fdf65ac5e3
fix(grid): display JSONB values as JSON string in edit mode and detail panel ( #152 )
...
String() on objects produces [object Object]. Use JSON.stringify()
consistently wherever cell values are converted to strings.
2026-05-08 11:12:05 +08:00
Bacon2994
d6f5c25c17
fix(redis): 优化 UTF-8 展示与提示文案
2026-05-08 10:31:51 +08:00
Bacon2994
0fb6aebd59
feat(redis): 修复全库键浏览与二进制展示
2026-05-08 10:06:16 +08:00
t8y2
631db17a08
refactor: merge data table info bar and transaction toolbar into one row
...
Move refresh/commit/rollback buttons from DataGrid's internal toolbar
to ContentArea's table info header. Remove the redundant second row
and the column count display.
2026-05-07 23:48:51 +08:00
t8y2
9206daf679
fix: allow text selection in DDL panel
...
Closes #143
2026-05-07 23:22:47 +08:00
rarnu
53c5c28542
fix: 修复结果集内的数据过滤功能 ( #145 )
2026-05-07 22:05:27 +08:00
t8y2
aefb6bf0ef
fix: prevent SELECT with REPLACE/TRUNCATE functions from triggering danger warning
...
The DANGER_RE regex matched keywords anywhere in the SQL text, causing
SELECT queries using REPLACE() or TRUNCATE() functions to incorrectly
trigger the destructive-SQL warning dialog. Check only the first keyword
of each semicolon-separated statement instead.
Also fix dialog content overflow by adding min-w-0 to the <pre> element,
and move macOS frameworks config from tauri.conf.json to CI-only
TAURI_CONFIG so local `tauri dev` no longer requires libltdl/libodbc
to be globally installed.
Closes #135
2026-05-07 19:07:41 +08:00
t8y2
fd444eb080
feat: add duplicate connection context menu action
...
Closes #136
2026-05-07 18:42:41 +08:00
skyler
cf25b7d6d4
Merge pull request #139 from rarnu/feat/edit-on-resultset
...
add: 增加对于查询得到的结果集直接进行数据编辑的功能
2026-05-07 17:44:48 +08:00
skyler
db16bf5edd
Merge pull request #140 from Bacon2994/codex/default-database
...
feat: 支持设置默认数据库
2026-05-07 17:41:51 +08:00
t8y2
4973912666
fix: bundle libodbc into macOS app and improve update UX
...
- Bundle libodbc.2.dylib into .app/Contents/Frameworks/ via Tauri's
macOS frameworks config to fix "app can't be opened" on macOS
- Replace relaunch() with exit(0) to avoid Tauri restart bug (#11392 )
- Lock update dialog during download and after install
- Render release notes as markdown
2026-05-07 17:36:44 +08:00
rarnu
cacaf4d7a2
1. Rust 事务连接池问题 - 用 pool.acquire() 获取专用连接,所有语句在同一物理连接上执行
...
2. BEGIN 失败静默回退 - 直接返回错误,不再静默降级
3. queryStore.ts - 清除了 25+ 条 console.log,合并了两个分支的重复逻辑
4. DataGrid.vue - shouldUseTransaction() 改为 computed 属性 useTransaction
2026-05-07 16:55:32 +08:00
Bacon2994
f9d6edb136
feat(connection): 支持设置默认数据库
...
统一新建查询的默认数据库选择逻辑,减少重复手动选择。
2026-05-07 16:49:56 +08:00
rarnu
814fda7433
add: 增加对于查询得到的结果集直接进行数据编辑的功能。当查询是单表且包含主键(有联合主键时包含全部主键)时,可以在结果集内双击单元格修改数据,修改结果以事务形式提交或回滚。
2026-05-07 15:09:59 +08:00
t8y2
8bea7e40c3
feat(elasticsearch): support REST queries in SQL editor ( #132 )
...
Execute GET/POST/PUT/DELETE queries like Kibana Dev Tools.
Search results are displayed as table rows with _id + _source fields.
Also hide database selector for Elasticsearch connections.
2026-05-07 11:41:33 +08:00
t8y2
14292dd2f8
fix(completion): prevent PostgreSQL completion failure from breaking all subsequent completions ( #131 )
2026-05-07 11:25:50 +08:00