Logan.Li
|
f6d636fa44
|
feat(query): sql workspace conveniences per opsxdb patterns
- generic ContextMenu component (viewport flip, esc/outside close)
- SchemaSidebar table right-click menu: preview data, generate
SELECT/INSERT/UPDATE/DELETE templates with pk-aware WHERE, copy table
name; double-click table runs preview SELECT; column right-click
copy/insert; dialect-aware quoting; preview SELECT carries no LIMIT
- SqlEditor selection-first execution (Mod-Enter runs selection else
statement at cursor via quote/comment-aware splitter); pagination
replays last executed statement
- query history persisted server-side: drawer fetches query-histories
with keyword/mine/favorites filters, star toggle (new PUT favorite +
mine filter endpoints), insert and insert-and-run
- custom templates in localStorage alongside built-ins
- unit tests: genSql + statement splitter (28 tests green)
|
2026-10-26 18:53:02 +08:00 |
|
Logan.Li
|
ac498c7ba2
|
refactor(frontend): split 7 oversized pages into feature co-location
Per guide ch.7 page split pattern (skeleton orchestrates, private
components live in features/<domain>/):
- InstancePage 1716->328, UsersPage 1309->240, TicketsPage 1076->195,
TicketDetailPage 911->287, QueriesPage 883->479, LdapConfigPage 860->393,
WorkflowPage 852->194
- new feature modules: datasource/ rbac/ ticket/ query/ system/ldap/
governance/workflow/ (components + hooks + types + utils)
- stable keys replace index keys in dynamic lists; polling intervals
and toast call sites preserved 1:1 (verified by agents)
- filter/pagination state moved to URL query via new useQueryState hook
(Instance/Users/Tickets/AuditLogs pages): refresh/share/back-button
restore state; composite updates applied atomically
- permission pure functions extracted to lib/permissions.ts (used by
useAuth + useLogin); page-size audit: 0 pages over 700-line budget
|
2026-10-26 17:54:15 +08:00 |
|