Entity Centre: configurations as module menu items
Description
From the navigation perspective, each Entity Centre is represented by a single module menu item, which can be either accessed from a module menu or from the menu search (F3). Each Entity Centre may have multiple configurations, where the last loaded becomes "current" and gets automatically loaded when users access that centre the next time (e.g., after closing and opening the browser or opening the app in another tab). So, it is a one-2-many situation – one menu item associated with multiple configurations.
This issue should develop the capability for users to add saved configurations (their own or inherited from a base user) as separate module menu items. Users should be able to choose what configurations they want to represent as menu items (add/remove).
The module menu supports one nested level of menus. It is preferred to retain this "flat" representation and avoid creating another nested level to represent Entity Centre configurations. Instead, Entity Centre configurations should be added as menu items immediately below the default Entity Centre menu item, pushing all other items on the same level farther down.
Alternative rendering of configuration-related menu items should be considered to provide a non-intrusive visual cue to users that those items represent Entity Centre configurations and "belong" to a corresponding centre menu item above them. This could, for example, be achieved by indenting titles for such menu items to the right, which would mimic the nested structure without being one.
Titles and descriptions for Entity Centre configurations should be used as menu item titles and tooltips. It should be possible to specify that a configuration should appear as a menu item by using the "Edit title" dialog. A separate boolean property "Show as menu item?" can be allocated for that. For inherited configurations, which currently do not allow access to the "Edit title" dialog for non-base users, it should be possible to open this dialog with only the new property editable. However, additional validation logic should be introduced to only allow adding inherited configurations as menu items – never removing them in cases where the base user "forced" for some configuration to be present as a menu item. This approach will provide non-base users with the flexibility to add inherited configurations as menu items, but would also provide application administrators with the ability to enforce the presence of some configurations as menu items.
Making a configuration to be shown as menu item should dynamically update the menu. It should only be possible to modify "Show as menu item?" by loading and editing configuration from the main Entity Centre item. This should help to avoid unnecessary complexity of "what to do" when such capability should be present for any menu item. The same is true the ability to load configurations – this should be constrained to the main menu item, not the configuration menu items.
Construction of the menu items to represent Entity Centre configurations should be completely dynamic, client side, and built strictly based on the information about Entity Centre configurations.
Expected outcome
Ability for users to represent Entity Centre configurations as individual module menu items.