openvidu/openvidu-dashboard/openspec/changes/ui-review-fixes/tasks.md

46 lines
2.9 KiB
Markdown

# Tasks
## 1. Backend
- [x] 1.1 Replace the index discovery of `InfoService.storageEntry()` with the time field map of design D6 (the
`global` scope for `analytics_daily`, `firstSeenAt` for `nodes`, no entry for `tracks`,
`track_subscriptions` and `track_stats`). Verify with the info unit tests and an integration test of "Oldest per collection" that
runs `explain()` on every query: one document examined, `COLLSCAN` only on `nodes`.
## 2. UI library
- [x] 2.1 Set the x-axis `minInterval` from the label unit, the y-axis `minInterval: 1` for all-integer data and the
closing point of step series in `timeSeriesOption()`. Verify with chart-options unit tests of the three scenarios
of "Time-series chart fixed to the range".
- [x] 2.2 Make `ovd-skeleton` invisible for its first 300 ms while keeping its height, and drop the fade under
`prefers-reduced-motion`. Verify with a component test of the delay and an e2e check that a fast mocked response
paints no skeleton bar.
- [x] 2.3 Round `formatDuration()` to the smallest unit shown, add the `floor` mode and use it in `ovd-duration` while
running. Verify with formatter unit tests of "Rounded durations" and a duration component test of "Running and
then ended".
- [x] 2.4 Add `BROWSER_LABELS` and `clientOsLabel()` to `format/labels.ts`, export them, and label the browser donut
and its table with them. Verify with label unit tests of "Browser keys" and "Reported OS" and an Analytics
component test of "Sessions without a browser".
- [x] 2.5 Render the footer version as plain text. Verify with the sidenav footer test.
- [x] 2.6 Hint "No room ended in this range" on both room averages when `roomsEnded` is 0. Verify with Analytics
component tests of "No room ended yet" and "Missing average".
- [x] 2.7 Rename the Egress page tile "Total duration" with `INFO_TEXTS.egressTotalDuration`. Verify with the Egress
page test of the tiles and the info tip.
- [x] 2.8 Add the Total row and the "—" tooltip to the About storage table. Verify with About tab tests of "Storage
total" and "Collection without an oldest date".
- [x] 2.9 Add the locked `tracks/:trackSid` route, and map `track` in `exactIdTarget()` to it. Verify with a global
search test of "Exact track ID" and an e2e test of "Track route in CE".
## 3. End-to-end and docs
- [x] 3.1 Update the e2e fixtures and screenshots whose durations or labels change, and run `./dashboard.sh e2e`.
Verify that it passes.
- [x] 3.2 Update the library README and `AGENTS.md` notes that list the exported labels or the routes, if any. Verify by
reading them against the change.
## 4. Integration check
- [x] 4.1 Run `./dashboard.sh check` and `./dashboard.sh test-integration`. Verify that both pass.
- [x] 4.2 On a local deployment with `./dashboard.sh dev`, check an Analytics chart of a 15-minute custom range, the
About table and a fast page load against the scenarios. Verify by screenshots.