We show side navigation menus and object action menus in significantly different ways on mobile and desktop. In particular, they are hidden behind disclosure buttons on mobile.
Currently, the code supporting this is not very clean. In particular:
- Navigation menus and action menus need to render twice. Ideally, the desktop and mobile views should be different views of the same DOM nodes.
- Navigation menus and action menus need to be explicitly attached to work on mobile. Ideally, these should just work by default, and no one should have to remember to hook them up.
- ApplicationSearch navigation menus duplicate a lot of queries because of how they render. We basically have to load all of the search stuff in the controller and then all of the search stuff again to build the menu.
- Some of the patterns are just very old, from before we had standard/unified menus.
Most of this is just about reorganizing how things get built.
For action menus, I want to move them to the header of the ObjectBoxView instead of the page crumbs. In particular, on interfaces like Releeph's list of requests and Diffusion's repository edit page, the page has multiple ObjectBoxViews which each have actions. These interfaces can't reasonably work with only one button available. This should make it fairly easy to share the DOM nodes, and make the rendering happen correctly by default.
Navigation menus are a little more involved. I think that code just needs to be generally reorganized so it fits into modern rendering in a more natural way.