Skip to content

Dynamic menus #154

@kevindeyne

Description

@kevindeyne

We introduce a Medusa Menu tag. This gets replaced with the known menu options. We can give it a name.

Prev impl was: <nav h:menu="top-menu"></nav>

In our controllers, we can define a @HydraMenu("top-menu"). This registers the URL to that page to the 'top-menu', regardless of where 'top-menu' will get defined.

At registration time, we need to provide Hydra with which URLs are available within our Medusa instance.

We store this in Hydra and send out an update to all attached instances of all known menu items / registered instances.

That would mean the following scenario should occur, presuming 2 medusa instances (A, B) and a hydra instance (H):

  • H is started
  • A is started, it registers with H. H update is sent out with only A's menu items. If you browse to a page with said menu, you'll see just A's menu.
  • B is started, it registers with H. H update sent out with both A and B's menu items. If you browse to a page with said menu, you'll see both A and B's menu items.
  • We bring A down. H update sent out with only B menu items. If you browse to a page with said menu, you'll see just B's menu.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions