-
Feature
-
Resolution: Done
-
Critical
-
None
-
None
-
False
-
-
True
-
0% To Do, 0% In Progress, 100% Done
-
-
Story
Currently in RHDH the main navigation is a flat hard coded list of entries, except for where navigation elements contributed by dynamic plugins that have configured a dynamicRoute with a menuItem are rendered. Navigation elements contributed by dynamic plugins are rendered in no particular order based on how the configuration is parsed.
As an administrator of RHDH, I want to have control over the main navigation. I may want the option to have sub-navigation items in the main navigation or change the order of items so that the sidebar can be better organized to suit my needs.
- Update the main navigation sidebar to be configuration driven
- Add functionality to the sidebar and configuration to support nested menu items
- Provide a default sidebar configuration as needed in the static frontend config
- Provide some example configurations including one that uses an external dynamic plugin
Background
The initial focus of this story is to first implement a way to configure the main navigation sidebar using configuration, most specifically this section of the main navigation. A future effort could focus on this section with the static links, unless it's easier to also handle this during the initial implementation.
The approach will build on the existing dynamicRoute menuItem configuration a bit but in a direction that allows more control to the RHDH administrator for how the main menu renders to users. The administrator would need to be able to define nested menuItems in configuration somehow. When a nested sidebar configuration is used, the resulting element tree should like sort of like this
An suggestion is to use the entityTabs configuration implementation as inspiration (here's a starting point breadcrumb), as this allows a high level of customize-ability, though keep in mind it's only a flat list of links, not a tree.
Dependencies and Blockers
QE impacted work
Documentation impacted work
Acceptance Criteria
upstream documentation updates (design docs, release notes etc)
Technical enablement / Demo