Usabilty improvements: Configurable navigation menu with one-click access to any screen

2009-06-24 13:55
Written by
Two key usability goals for the upcoming 2.3 release are:
  • Reduce the number of "clicks" needed to move around in CiviCRM
  • Allow sites to optimize CiviCRM navigation for the way they use it
We've been working hard on the new navigation system - and it's now ready for folks to try it out on the 2.3 sandbox. Login as usual with: user = demo password = demo ... and click CiviCRM on the Drupal navigation block. The "default menu set" gives you one-click access to pretty much any screen in CiviCRM. I've been using the new menus a lot recently since I'm doing a lot of issue review and QA - and I have to say it really puts a smile on my face :-) Some comparisons....
  • Find Contributions: Instead of clicking the CiviContribute link, waiting for the dashboard to load, then clicking Find Contributions .... just click the Contributions menu and select Find Contributions
  • Payment Processor configuration: Instead of 3 clicks and 3 page loads (Administer CiviCRM, Global Settings, Payment Processors) ... drill down with your mouse from Administer >> Configure >> Global Settings >> Payment Processors.
Once you've tried out the new menus, you can check out the customization features. Select Navigation Menu from Administer >> Customize. You'll see a "tree" widget which represents the current menu hierarchy. Some things to try:
  • Click on the triangles on the left side to expand any branch of the tree
  • Change the order of menu items by dragging and dropping them
  • Click New Menu Item and add something to the menu. I've already added a "Favorites..." menu at the top level and put some links in it (one goes to a profile edit form, a second one goes to the Dedupe screen). You can add menu items for CiviCRM screens as well as for other web forms or pages. Click on the help icons for more pointers about adding menu items.
  • Right mouse-click on a menu item to Rename or Delete it.
After you've played around for a bit, let us know what you think by posting a comment here. Looking forward to your feedback!
Filed under


It's times like this where we're basically re-creating a CMS. Perhaps it would've been better to integrate with the host's menu system instead of re-inventing the wheel?

dalin's comment was my initial thought too!

The great thing about CMS are the flexibility they give you with these sorts of things including styling etc, so given the standalone version of CiviCRM hasn't had a significant take-up that I am aware of, it would seem to be a lot more economical to put efforts into developing default modules/blocks for navigation which users can install and modify through the CMS.

This is a particular issue for those of us Joomla! users as it is not acceptable to most clients for CMS users to have to have administrator access to the Joomla! CMS to be able to use CiviCRM properly and with CiviCRM now having its own ACL, I would think that having all "non-admin" users log in through the front-end of Joomla! would be much preferred.


I'm not sure that it would have been easier to use the CMS build in capacities for the menu, as it would have meant having to develop it twice (I'm assuming joomla and drupal have completely different and incompatible systems), then having to develop a custom solution anyway for the standalone.

And, it might not have chosen the right themes on drupal, but the usability of their menu is not what I would suggest to imitate/integrate to anyway ;)

Beside the technical implementation, what do you think of the navigation ? Improved ?


With jquery-ui new theme roller, you will easily change the layout of civicrm, and tit seems there is already a drupal jquery-ui adapted theme, probaly true as well for joomla



It always seems non intuitive to me that profile creating and editing is in the administration menu.

I wonder if it could at least be in the short cut menu.

Also, from the Joomla perspective I think that most of the advanced settings should be in menu options. It doesn't make sense that I should have to make a separate profile for each group that I want to apply the profile to or for logged in versus non logged in users (account create option). Would be great if the basic options were overridable in a menu link also :). (Oh boy I think I found my next project.)

It would also be really useful to have a profile create/manage link directly when creating a contribution, event etc.


I think it does significantly enhance usability.

I guess it's not really appropriate to add a link to the FLOSS Manual or IRC channel from Help....

I would personally prefer links from the Help Menu open in a new window - does anyone have thoughts on that? (as generally you don't want to lose the page you are on)

I have some thoughts about the structure of the menu with relation to global settings vs. other configure settings. I don't know what defines Global Settings vs other configure settings but there are a bunch of settings that relate to directory and URL paths that are on different screens and seem therefore hard to find (or easy to change some and not others when you move a site). They are in

Configure/Update Directory Path and URL
Configure/Global Settings / Resource URLS
Configure/Global Settings /Directories

I think these should be grouped together.

One last usability item that always annoys me but I never raise (it's really trivial). From the events dashboard you have to scroll right to the bottom if you want to choose 'find more participants'. It would be great if that link could appear at the top of the recent registrations table on that page as well as the bottom.

I have been playing around with the new menu system and I think it will have 2 huge impacts on user satisaction:
- impression that the system is faster - less screen refreshes on the way to get to something
- ability to make them feel it does what they need rather than they need to go looking (use of language, having the most common things they need right at their fingertips, etc.)
I know you know this stuff, but I am really excited by it!