Name null group and project buckets in GLQL tables

What does this MR do and why?

In the DAP Impact dashboard, the "Group and project comparison" table on the Adoption tab showed an italic "None" for some rows. It read as a real value.

Projects directly under the top-level group have no subgroup, so the group(depth=2) dimension is NULL. Sessions not scoped to a project have a NULL project dimension.

This MR changes app/assets/javascripts/glql/components/presenters/table.vue:

  • A null group cell renders "Directly in top-level group" at depth 2, and "No group" with the sub-text "No group at depth N" at other depths.
  • A null project cell renders "No project" with the sub-text "Not scoped to a project".
  • The explanation is visible text under the label rather than a tooltip, so keyboard and screen-reader users get it. The compiler passes depth as a string, so it is read as a number.
  • Other null dimensions keep the existing "None" presenter.
  • Null metrics keep the dash from !259012 (merged).

The wording is a proposal pending design review on the issue. It is easy to change in one constant.

Jest coverage is added in spec/frontend/glql/components/presenters/table_spec.js.

References

Screenshots or screen recordings

Adoption tab, Group and project comparison.

Before: production data as a Developer. prod-adoption-comparison-none-credits

After: GDK on the current head rendering live production responses for gitlab-org. after-comparison-table-labels

The depth-2 bucket reads "Directly in top-level group"; null projects read "No project" with the hint below.

How to set up and validate locally

  1. Open the DAP Impact dashboard Adoption tab at scope gitlab-org.
  2. Check the Group column of "Group and project comparison" for rows that previously said "None".
  3. Run yarn jest spec/frontend/glql/components/presenters/table_spec.js.

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Chandra Saripaka

Merge request reports

Loading
Loading