Issue #3610909: Replace bare cloud/local glyphs with inline SVG icons

What this does

  • Replaces the bare Unicode glyphs (☁️ U+2601, ⬡ U+2B21) used for the cloud/local provider-type icons with inline SVG icons drawn via a CSS mask (background-color: currentColor), so they no longer depend on font coverage. Affects the dashboard KPI card and the by-role dashboard (KPI card, per-role rows, totals row).
  • Icons are aria-hidden="true"; the text label stays the accessible name.
  • The cloud/local count labels are now wrapped in |t() with an @count placeholder instead of being concatenated as bare text, so they can be translated.

How to test

  1. Log some AI usage (cloud and local providers) and visit /admin/reports/ai-metering and /admin/reports/ai-metering/by-role.
  2. The cloud/local counts show a small icon instead of a missing-glyph box, regardless of the system font.
  3. DashboardTest::testDashboardProviderTypeIconsAreNotRawGlyphs and ByRoleDashboardTest::testByRoleProviderTypeIconsAreNotRawGlyphs assert the raw glyphs never reach the response and the icon markup is present.

AI assistance

Yes.

Edited by Jérôme Tchania

Merge request reports

Loading