-
Epic
-
Resolution: Done
-
Blocker
-
None
-
None
-
Replace the static home page content with a dynamic UI mount point
-
M
-
False
-
-
False
-
RHIDP-1312 - Be able to customize the Home page
-
0% To Do, 0% In Progress, 100% Done
-
-
Feature
-
Done
-
-
Story
As a user of RHDH, I want to customize the home page in a similar fashion as catalog entity pages so that I can provide my developers with a customized home dashboard.
- Move the current home page content to a new static frontend plugin
- Define a mount point and grid layout to host the dynamically configured home page content
- Add a default static UI configuration for the static home page plugin content.
Background
The current RHDH home page is a static component with search bar, quick access and starred entities components, arranged in a static grid layout. The quick access component can be customized already in this fashion, requiring the user to provide some service that returns a specific JSON format.
The content of the current RHDH home page could be instead initially replaced with a simple Grid layout that contains a mount point that can render card content dynamically. The current home page components (including the search bar) would need to be converted to work with this dynamic view.
The name of the exposed mount point should be consistent with the existing available mount points in the RHDH application. Many of the existing mount points map to tabs and are named as such. Given that the home page has no tabs, maybe just a mount point named "home.page/cards" will do. Using a mount point with this name will leave the possibility open to have a future "home.page/context" mount point which could be helpful for sharing data between views.
An example conversion of the current home page components could start with the QuickAccess component. This component could be moved to a new static frontend plugin, perhaps called "home-page-components". This static frontend plugin would then be wired up to show the quick access component by adding an entry for the plugin to the default static UI configuration. An existing static frontend plugin to use as an example is [here](https://github.com/janus-idp/backstage-showcase/tree/main/plugins/dynamic-plugins-info), when adding a new one it needs to be added to the image.
Because the home page will often be used as a sort of dashboard, a flexible and predictable layout system is needed. A wrapped grid component is used for the catalog entity page, it may be worthwhile examining if this will be needed for the home page and if this component should be copied or adapted.
Dependencies and Blockers
QE impacted work
Documentation impacted work
Acceptance Criteria
- With no configuration the home page should look basically the same.
- Adding configuration using the configuration file should replace the default configuration (this should already be the behavior).
- An external plugin should be able to target the home page mount point
- If a plugin fails to render, it should fail silently and not break the entire UI
- The dynamic plugin documentation should be updated to reflect the new mount point.
- A demo should be produced, ideally showing an external plugin rendering some content on the home page.
upstream documentation updates (design docs, release notes etc)
Technical enablement / Demo