Configuration · Dashboard configuration

Defines the dashboards available in the app: a name, a category (general / home / traffic), a panel type (data-quality, custom, external URL) and — for custom panels — a JSON component and filter configuration, plus which staff roles may see it.

AreaConfiguration
Routesconfiguration.dashboards · configuration.dashboards.index · configuration.dashboards.new · configuration.dashboards.edit
Centre modulesanalytics
Staff levelsper dashboard ability canCreate/canDelete/canRead
Modelsdashboard · dashboard-component · dashboard-config · dashboard-query
UI labeltitle.header.configuration.dashboard / menu.navbar.configuration.dashboards
Coverage4 use cases · 2 happy · 5 failure

Known issues (1)

How it works

The category: 'home' dashboard is what the desktop renders, so this screen indirectly configures the landing page. Custom panels are authored as raw JSON: components is a JSON.stringify/JSON.parse round-trip in a getter/setter pair and filters is a comma-separated string split on , — powerful but completely unvalidated, so a syntax error in the components JSON throws inside the setter. onPanelChange seeds an empty config (styles, filters, components) when switching to custom, and switchDashboardType clears panel or bimeId depending on the type. Dashboards are attached to staff roles and injected into the navbar from auth.dashboards.

Use cases

Why someone opens this (4)

  • Making the data-quality panel the centre’s home dashboard.
  • Embedding an external BI dashboard by URL for the owners.
  • Building a custom KPI panel from configured components.
  • Giving a particular role its own dashboard in the menu.

Path map

flowchart LR
    F(["Dashboard configuration"]):::feat
    F --> H1["Home dashboard configured"]:::ok
    F --> H2["External URL dashboard"]:::ok
    F -.-> X1["Name, category or panel missing"]:::bad
    F -.-> X2["URL panel without a URL"]:::bad
    F -.-> X3["Malformed component JSON"]:::bad
    F -.-> X4["Unknown panel at render time"]:::bad
    F -.-> X5["External dashboard missing"]:::bad
    classDef feat fill:#566066,stroke:#566066,color:#ffffff,font-weight:bold
    classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e
    classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13

Happy paths

Home dashboard configured

  1. User creates a dashboard named e.g. ‘Registration quality’ with category home and panel data-quality.
  2. Roles that should see it are selected.
  3. It saves and appears in the navbar; the desktop now renders it after login.

External URL dashboard

  1. Panel is set to url and the URL is entered in parameters.
  2. Validation requires the URL for this panel type, so a blank is caught.
  3. The dashboard renders full-bleed with the page header hidden.

Failure paths

QA checklist

Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.

  • ✅ Home dashboard configured
  • ✅ External URL dashboard
  • ⛔ Name, category or panel missing
  • ⛔ URL panel without a URL
  • ⛔ Malformed component JSON
  • ⛔ Unknown panel at render time
  • ⛔ External dashboard missing

Implementation


Generated from doc/feature-inventory.json · id config-dashboards · commit 276788ca6