Skip to content

feat(results+header): cell-detail drawer, sticky # column, version/types/github/save polish#8

Merged
BorisTyshkevich merged 2 commits into
mainfrom
feat/results-cell-detail
Jun 21, 2026
Merged

feat(results+header): cell-detail drawer, sticky # column, version/types/github/save polish#8
BorisTyshkevich merged 2 commits into
mainfrom
feat/results-cell-detail

Conversation

@BorisTyshkevich

Copy link
Copy Markdown
Collaborator

Round 3 of results/header UX improvements (all verified live on otel).

1. Cell-detail drawer + truncation (the #1 issue)

Result cells now truncate with ellipsis and a hard max-width (so a fat HTML/JSON column can't force a long horizontal scroll). Click any cell → a right-side drawer with the full value:

  • pretty-printed (valid JSON reindented),
  • for HTML, a Rendered ↔ Source toggle — Rendered shows it in a sandbox="" (script-less, inert) srcdoc iframe.
  • Esc / backdrop / ✕ to close.

2. Sticky # column

The row-number column is frozen (position: sticky; left: 0) so you keep your place when scrolling right.

3. Version truncated

Header shows ClickHouse 26.3.10 (first three segments); full string (e.g. 26.3.10.20001.altinityantalya) on hover.

4. Types on hover

Column types are no longer inline in the header — shown as a tooltip (title) on the header cell.

5. GitHub logo after the version

Moved the source link to sit right after the version chip.

6. Save left-aligned

Save now groups with Run / Format on the left.

Code

  • core/format.js: shortVersion. core/cell.js (new): looksLikeHtml, prettyValue (pure, 100%).
  • results.js: header title=type, truncated clickable cells, openCellDetail drawer.
  • app.js: short version + title, header reorder, Save left.
  • deploy/http_handlers.xml + README: frame-src 'self' for the sandboxed preview iframe (documented; the sandbox keeps it inert).

npm test392 passing; core/cell.js, core/format.js, results.js at 100%, app.js meets its gate.

Generated with Claude Code
https://claude.ai/code/session_01QennTvGKAtJZrv9EpQagef

Isolator acm and others added 2 commits June 21, 2026 18:33
Round 3 of UX improvements:

1. Result cells truncate (CSS max-width + ellipsis) so one fat column (e.g.
   HTML blobs) can't dominate; click a cell → right-side detail drawer with the
   full value pretty-printed (JSON reindented), and for HTML a Rendered (in a
   sandbox="" srcdoc iframe) ↔ Source toggle. Esc / backdrop / ✕ close it.
2. Freeze the row-number (#) column (position: sticky; left: 0) so it stays
   visible when scrolling right.
3. Truncate the version to its first three segments ("26.3.10"); full string on
   hover (title).
4. Column types are no longer shown inline in the header — exposed as a hover
   tooltip (title) on the header cell instead.
5. Move the GitHub source link to immediately after the version in the header.
6. Left-align the Save button (now grouped with Run/Format).

- core/format.js: shortVersion. core/cell.js: looksLikeHtml, prettyValue (pure).
- deploy/http_handlers.xml + README: add frame-src 'self' for the sandboxed
  HTML-preview iframe (the sandbox keeps it script-less/inert).

npm test → 392 passing; new core files + results.js 100%, app.js meets its gate.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QennTvGKAtJZrv9EpQagef
Restoring a saved query now links the new tab to it (loadIntoNewTab takes an
optional savedId; the Saved list passes the entry id, History passes none), so
the toolbar Save button reads "Saved" — matching the post-save state. Editing
the restored query flips it back to "Save" (dirty) and re-saving updates the
entry in place, as before.

npm test → 393 passing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QennTvGKAtJZrv9EpQagef
@BorisTyshkevich BorisTyshkevich merged commit 7b454a9 into main Jun 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant