UI: Maven virtual registry details page
Proposal
The registry details page will render all the upstreams for the maven virtual registry.
The user should also be able to create upstream from this page. The position of the upstream can be updated by using the arrow keys, drag n drop support can be part of future iteration.
We also show some metadata information related to the registry, links to edit the registry & upstreams.
Designs
Implementation plan
The entire page will be rendered using a vue app.
- Create a component with story file which renders the entire app without data fetching.
- Implement the features based on proposed GraphQL query API. Alternatively if it not available, we can use the REST API.
- Once the routes & controllers are available, create page level component which handles API.
- Using
drag-and-dropto re-order upstream positions can be part of next iteration.
2025-04-23 Implementation update
The remaining parts are the aspects not in the component, which can be delivered iteratively:
- rendering upstream items with actions,
- Link to edit
- Delete button, modal with API integration.
- Once the routes & controllers are available, create page level component which handles API.
- Create upstream form with API integration
- Update positions of upstreams with API integration
The Clear all & Clear cache buttons for upstream need not be added since we don't have APIs for it.
2025-04-29 Implementation update
Components exist already for maven_registry_details (added in #537051 (closed)) and maven_upstream_details (added in #537052 (closed)). However, the actual information about an upstream in maven_registry_details is stubbed out and functionality to create new upstreams is not implemented.
- A new component is needed for the details on a specific upstream in
maven_registry_details. We'll call itregistry_upstream_item. This implements the design seen here for individual items in the list of upstreams.- drag and drop will not be implemented at this time, that will need to be covered in a future iteration. However, manual reordering buttons will be implemented.
- Some consideration will be made for responsive layout of individual upstream items.
- A new component is needed for the Vue form used to add a new upstream in the
maven_registry_detailscomponent. this implements this design. - Some tweaks to the
TitleAreaspacing and layout are needed to align with the design intent from #493842[Registry-with-upstream.png].
2025-05-17 implementation plan for remaining work
Since the registry is loaded in the controller when user visits this route, we can have a combination of data provided by rails helpers & REST API similar to Implement Maven upstream details page (!191541 - merged),
- Add element with id in
ee/app/views/groups/virtual_registries/maven/registries/show.html.haml - Re-use parts of
ee/app/assets/javascripts/packages_and_registries/virtual_registries/components/maven_registry_details_app.vueinto its own page-level componentee/app/assets/javascripts/packages_and_registries/virtual_registries/maven/registry_details_app.vue(needs to be created) - Import newly-created
maven/registry_details_appintoee/app/assets/javascripts/pages/groups/virtual_registries/maven/registries/show/index.js - Pass maven registry related data via rails helpers & provide
- Integrate with GET list of all upstream registries for a Maven virtual registry REST API & UI polish.
- Handle delete upstream with REST API for users with
destroy_virtual_registryability - Handle create upstream with REST API for users with
create_virtual_registryability