fix(dashboard): consolidate duplicate Profiles archetype filter

What

The Profiles view had two archetype dropdowns for the same concept, which confused users:

  • #enablement-archetype-filter ("Any Archetype") in the gap-filter bar. The broader control: it filters the Gaps table, the enablement Groups, and the Profiles table.
  • #archetype-filter ("All Archetypes") in the profiles toolbar. Profiles-only.

This consolidates to ONE archetype control. The toolbar #archetype-filter is removed; #enablement-archetype-filter is now the single archetype filter for the Profiles table.

How the Adoption to Profiles cross-filter is preserved

Clicking an archetype on the Adoption view (heatmap row or cell, or a distribution bar) still switches to the Profiles tab and filters by that archetype. Those handlers previously set #archetype-filter; they now drive the surviving #enablement-archetype-filter instead (set .value, dispatch change). The control's existing change listener sets state.enablementArchetypeFilter and re-renders the Profiles table, so the cross-filter behavior is unchanged from the user's point of view.

Cleanup

Removed the now-dead wiring tied to #archetype-filter:

  • 06-profiles.js filterProfileRows: dropped the #archetype-filter read; the table filters solely by state.enablementArchetypeFilter. Search box and strong/weak/min-delta filters untouched.
  • 10-ui.js: dropped the initProfilesFilter change listener, the updateFilterActiveStates pair plus profilesArchEl read, the updateEnablementMatchCount toolbar read, and the clear-filters reset. The search-box wiring stays; match-count and active-state indicators now run on the surviving filter plus the search box.

Tests

TestRender_SingleArchetypeFilter (committed, fail-on-old): index.html has exactly one archetype <select> and the #archetype-filter id is gone; the bundle has no getElementById('archetype-filter') / "archetype-filter"; the Adoption cross-filter references enablement-archetype-filter.

Validation: make check (no-race vet plus test) passes, -race suite passes, golangci-lint 0 issues, coverage 69.9 percent.

Merge request reports

Loading