Skip to content

Commit 75a25ea

Browse files
xuyushun441-sysos-zhuangclaude
authored
docs(ui): document drill 'Open in list' escape hatch + unified report drill (#2135)
Drill-through now opens an in-place drawer with an 'Open in list →' escape hatch to the full object list page, and reports drill via the same drawer (unified with dashboards). Documents the escape hatch, the report parity, and the new DrillDownConfig target 'navigate' in the objectstack-ui skill + dashboard guide. Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 47d978a commit 75a25ea

2 files changed

Lines changed: 28 additions & 7 deletions

File tree

‎content/docs/guides/metadata/dashboard.mdx‎

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,13 @@ drawer to open that single record's detail. This completes the
201201
**group → records → record** chain (e.g. *Revenue by Region* → the orders in
202202
the *West* bucket → one order).
203203

204+
The drawer also offers an **"Open in list →"** escape hatch — escalate the peek
205+
to the object's full list page (sort / bulk-select / export / shareable URL),
206+
scoped by the same drill filter. In-place drawer is the default (keep context);
207+
the escape hatch is there when you need the full surface. **Reports drill
208+
identically**: a `summary` / `matrix` report opens the same in-place drawer on
209+
row/cell click, so dashboard and report drill behave the same.
210+
204211
```typescript
205212
// A drill-through table widget. No drill configuration is required — it is
206213
// automatic whenever the dataset exposes the base object and the widget groups
@@ -222,10 +229,12 @@ click-drillable; expose the detail through a `table`/`pivot` widget instead.
222229

223230
> **Renderer note.** Object/record-backed list and table surfaces (and the
224231
> ObjectUI renderer's `options.drillDown` block) support a richer drill model —
225-
> a `mode: 'filter' | 'record'` discriminator, drawer-vs-dialog target, a column
232+
> a `mode: 'filter' | 'record'` discriminator, a `target` of `'drawer'` /
233+
> `'dialog'` / `'navigate'` (the last opens the list page directly), a column
226234
> whitelist, and chart-segment drill for the `scatter` / `treemap` / `sankey`
227235
> families. Those knobs live in the renderer; dataset-bound dashboards drill
228-
> through the semantic layer as described above.
236+
> through the semantic layer as described above (and get the "Open in list →"
237+
> escape hatch from the host app, e.g. the console).
229238
230239
### Aggregation Functions
231240

‎skills/objectstack-ui/SKILL.md‎

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -963,20 +963,32 @@ behind it; **drill-to-record** opens one record.
963963
*exact* records (no label→id guessing). Automatic — no per-widget config.
964964
* **The drilled record list drills to record.** Any row in that drawer opens the
965965
single record's detail, completing the **group → records → record** chain.
966+
* **Escape hatch — "Open in list →".** The drawer header offers a link to the
967+
object's *full* list page (sort / bulk-select / export / shareable URL),
968+
scoped by the same drill filter. The in-place drawer is the default (peek
969+
without losing the dashboard); the escape hatch escalates when the user wants
970+
the full surface — the Looker / Power BI "see records → open page" model.
966971
* **`metric` / `chart` widgets are not click-drillable** in the dataset form
967972
(they render the aggregate only; `compareTo` still applies). Surface the detail
968973
through a `table` / `pivot` widget instead.
969974

975+
**Reports drill the same way.** A `summary` / `matrix` report (`drilldown`
976+
defaults `true`) opens the identical in-place drawer on row/cell click — peek the
977+
records, click a row to open one, or "Open in list →" for the full list page.
978+
Dashboard and report drill are unified.
979+
970980
> **Renderer note (object/record-backed surfaces).** The ObjectUI renderer
971981
> exposes a richer `options.drillDown` block for non-dataset list/table widgets
972982
> and the drill drawers — `enabled`, `mode` (`'filter'` = aggregate → filtered
973-
> list; `'record'` = row → that record), `target` (`'drawer'` | `'dialog'`),
974-
> `columns` (whitelist), and `title` (`${event.*}` interpolation). At the
975-
> renderer level drill-through covers the `bar` / `line` / `area` / `pie` /
983+
> list; `'record'` = row → that record), `target` (`'drawer'` | `'dialog'` |
984+
> `'navigate'`, where `'navigate'` skips the drawer and opens the list page
985+
> directly), `columns` (whitelist), and `title` (`${event.*}` interpolation). At
986+
> the renderer level drill-through covers the `bar` / `line` / `area` / `pie` /
976987
> `donut` / `funnel` / `scatter` / `treemap` / `sankey` families and pivot
977988
> cell/row/column/total clicks (`radar` is excluded — no single clickable
978-
> category point). **Dataset-bound dashboards use the semantic-layer drill above
979-
> and ignore this block.**
989+
> category point). The "Open in list →" escape hatch appears whenever the host
990+
> app wired drill navigation (the console does). **Dataset-bound dashboards use
991+
> the semantic-layer drill above and ignore the rest of this block.**
980992
981993
| `dateGranularity` | Rendered bucket label |
982994
|:--|:--|

0 commit comments

Comments
 (0)