feat(settings): nest groups, add breadcrumbs, search, basic/advanced toggle #281
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/MAPPS-258-settings-nesting-breadcrumbs-search"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Introduce a single const taxonomy table (SETTINGS_SURFACES plus SettingsGroupKey) in settings.rs as the source of truth for the settings information architecture. The table carries each surface's route, title, description, parent group, and an advanced flag, and it drives the index, the per-group landing pages, the breadcrumb trail, and the search filter so a new surface gets all four for free (MAPPS-258).
Nest the hub: the /settings index now lists the four group cards (Service & Asset Types, Billing & SLA, Tickets, Integrations) plus the Personalization leaf, and each group gets its own landing route (/settings/group/*) that lists only that group's surfaces. The eighteen leaf routes stay flat, so existing deep links and bookmarks keep resolving (the index just gains a level, per the MAPPS-169 keep-old-links principle).
Add a SettingsBreadcrumb component that renders Settings > Group > Leaf from the taxonomy, with clickable ancestor links, and wire it into every settings.rs-owned sub-page in place of the old single "Back to Settings" button. The group landing pages render Settings > Group. The re-homed surfaces (SLA, rate cards, tax rates, gateways) share components with their non-settings routes and are left unchanged to avoid showing a settings breadcrumb off the settings path; they still appear in the taxonomy so the index, search, and nesting cover them.
Add a search box on the index bound to a use_signal(String) that filters the taxonomy case-insensitively by title and description and shows matching leaf cards in a flat list while a query is present, bypassing the nesting so deep surfaces are one step away; the grouped view returns when the query is empty.
Add a basic/advanced toggle (a checkbox) on the index whose state persists via crate::utils::prefs::set_bool under settings_show_advanced, defaulting to basic. Basic mode hides the advanced-flagged surfaces (Tax Rates, Payment Gateways, Ticket Categories, and the three RMM surfaces) from the index, group landings, and search; a group whose every surface is advanced drops off the basic index, and its landing shows a hint to enable advanced settings. No server changes are required.
#MAPPS-258
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com