Version 7 (modified by 14 years ago) ( diff ) | ,
---|
Menu
The current 3 menu system should be migrated to a single menu to take upo less screen real estate & provide a consistent UI experience.
Ideally this would be loaded once & then cached (e.g. have the system generate a static menu.js which can then be loaded/cached)
We should always know where in the system we are.
- e.g. Chevron-style breadcrumbs (e.g. http://www.guardian.co.uk/world/usa)
- e.g. Highlight the active menu item using CSS (JS to set this would be in the main body template, rather than in menu.js)
- Web2Py implementation of breadcrumbs: http://www.web2pyslices.com/main/slices/take_slice/47
Icons in Menus?
ExtJS menus are flexible & can allow DRY creation of navigation elements (buttons/menus):
- http://www.extjs.com/deploy/dev/examples/menu/menus.html
- http://www.extjs.com/deploy/dev/examples/menu/actions.html
Ideas for improving the menu:
- Code for the menus should be segregated between the technical implementation and the layout - making it easy for non-technical users to customize the menu and reducing the clutter in the code, and reduce the amount of code being executed every run in the models.
- Define the customization of the menu in CSV?
- Make Menu customization completely independent from the modules.
- How many levels? Configurable. Suggestion.
- Application - a deployments of Sahana may contain different applications, which may be used by different people and certainly at different times/workflows. This could be separate from the main menu - at the very top.
- Functional - what does someone want to do in the current application.
- Functional level 2 / Work Stage - this could represent work flow, or just reduce the clutter in one level of functional
- Avoid 3rd level - especially pop-ups!
- Breadcrumbs
- Allow modules to be turned on/off and also excluded from releases of code with simple switches.
- Allow the menu to indicate which option has been clicked (flag to set a class in the li - where set flag?).
Allow the user to define a custom home page, without editing core code.
Note:
See TracWiki
for help on using the wiki.