CiviCRM Developer Hack-a-thon: Days 4-6

2008-05-04 03:29
Written by

I am a big fan of the Lord of the Rings trilogy, hence i was very excited about coming to New Zealand and exploring few Middle Earth locations. I must say NZ has some of the most amazing places I have ever seen.

Coming to work, a major focus of the NZ Meetup was improving usability. So we decided to tackle CRM-3000 - "Prevent reloads of new contribution, event registration, new membership, new relationship forms by Implementing dojo method to add custom fields to the form."

Our main goal with this was to reduce page reloads, so that user does not lose any data entered on the form. Let's take an example New Event Registration form. On this page we had 2 reloads, one when user selects "Event" and we build the event fee block. A second reload occurred when user selected "Participant Role" and we display any custom data associated with that particular role.

So we decide to ajaxify this form and make it much simple and more usable. After ajax improvements, instead of loading entire page we only reload certain sections on the form using XMLHttpRequest, without reloading entire page. This was a significant improvement in terms of usability. We have lot of places where we use custom data and display it on page reloads. So we will be porting this model for all those pages.

Since we had lot of people complaining about the existing ToolTip widget which we use for help pop-ups, we replaced it with the TooltipDialog widget. This new widget allows users to click links in the help, as well as copy and paste text, which were 2 problems w/ the prior solution reported by users on the forums. We have ported this fix to CiviCRM v2.0.3 as well.

In general we trying to simplify complex/large pages and use ajax( Dojo ) to improve performance and user experience. We have a few other issues in v2.1 queue that also focus on usability.

Filed under