29 August, 2011
By totten

Several CiviCRM users have expressed an interest in managing CiviCRM activities with a smooth, interactive calendar screen.  Since calendaring can be a complex topic, we've put together a basic, working calendar to facilitate discussion.  The prototype resembles the calendar included in other relationship-management tools:

Calendar screenshot

The calendar is implemented in three pieces: (1) the excellent jquery-week-calendar plugin provides a rich Javascript interface for dragging and dropping calendar items, (2) arms_recur provides an API for creating recurring activities, and (3) example_calendar integrates these pieces into the CiviCRM interface.

If you think that a rich calendar interface would improve CiviCRM, then please give the prototype a...

Read more
24 June, 2011

For all you "customizers" out there - I wanted to highlight a cool new feature that is available as of the 3.4.3 / 4.0.3 release. You can now append jQuery functions, Smarty code, HTML (really anything) to any template without having to create a customized copy of the entire file. Wow - you say, "how the h?!# do I do that?"

All you need to do is put your "extra stuff" in a new file and save it as template_to_append_to.extra.tpl.

EXAMPLE: You want to add some jQuery to hide a few of the fields in the Contact Edit form - Contact.tpl.
1. Configure your Custom Templates directory
2. Create the directory structure in your custom templates directory (CRM/Contact/Form)
3. Write your jQuery script and save it in a file called Contact.extra.tpl

Voila - your jQuery script will be appended to the standard Contact.tpl template!

One heads up … if your file contains Javascript (as it probably will), you will need to start your "...

Read more
25 January, 2011

The staff at Denver DataMan have identified CiviCRM as the CRM that we believe is best suited for making a truly robust CRM that will be accessible for the blind. We have received funding from the Colorado Center for the Blind to allow us to support the development of this innovative project.

The solutions that we are proposing to implement will also help make the overall structure of CiviCRM more adaptable and in doing so paves the way for the development of mobile sites and other applications requiring functional changes based on user selections or device limitations with CiviCRM. 

You can read the post I made recently on the boards to see the methodology we used to identify the issues that need to be addressed to achieve the goal of making CiviCRM accessible to the blind. 

There are a few overarching areas that challenge the accessibility of CiviCRM. These are outlined here along...

Read more
15 December, 2010
Filed under v3.3, Interface and design

I figured you'd be as worked up about this as I have been - but rest easy friend-o, 'cause we've got some good medicine coming your way.


I've been struggling with the lack of right-click support for the context menus as of 3.2. There's been a fair amount of complaint about it (from what I gather) and the context menu solution that was in place was sub-optimal for a variety of reasons, the greatest being that it didn't allow the user to right-click an action to open it in a new window (a very common behavior if you use CIviCRM on a regular basis). So I did some research and came up with a solution that I think is a significant improvement over the current solution, but it *is* fairly different, and I wanted to address the differences ahead of time so that we can make changes (if necessary) before the release. I shall portray it to you in three acts:


First, the improvement:


Read more
01 October, 2010
By xavier

Hi all,


For the training in london, we wanted a simple example that illustrates how to customise and improve civicrm for specific usages using the ajax interface. I'm sharing the result with you, hoping you will find it useful.

One common workflow we have is to change the status of an activity from "scheduled" to "complete". The default way is to click on edit, go to the full form, change the status, save, and go back to the list of activities

We are going to improve it with a "one click click complete": on the list of activities, we transform the status column into an action (when "scheduled"), and when I click on it, it changes it to Completed, without changing screen. For that, we are using the ajax interface and the activity api....

Read more
11 June, 2010
By xavier
Relationship are a natural way of storing relations between contacts. However, it doesn't work so well if you have several hundreds of related contacts as the realationship tab becomes unreadable quite quickly. One of our client needed to associate each individual in their base to a local branch (we implemented a nice geo lookup based on the postal code to identify the local branch, but that's another story). It means that each local branch has 1000th of individuals. This could happen in other situations, for instance to keep a relationship between a "main teacher" and each pupil or who is the latest volunteer that contacted each person in a GOTV/ Canvassing campaign... We choose to store that relation as a custom field of the type "contact reference". Each individual has a new field "nearest local branch", that is a reference to an organisation (the local branch). It works fine and you have a nice autocomplete field, like the search field in the top left corner in the... Read more
22 February, 2010
Filed under Interface and design
DGG and I have been discussing a small modification to the Contact page that we think will have a nice impact on usability for people who spend a lot of time working inside of the contact record. After some thought, we decided that it makes sense to move the edit/dashboard/vCard and "Create activity" buttons up and outside of the Summary tab. We'd like to change the "Create Activity" dropdown into an "Add ..." dropdown that could include contributions, activities, cases, memberships, relationships and notes. This will have the effect of removing one click from the process of adding any of these (commonly used) entities to a contact, as well as surfacing many of the "jump-off" points that administrators use on the contact page. Additionally, it seems that the order of the buttons could be re-worked. Specifically, the "delete" button which is used least, should be moved away from the prime real estate of the top left. I've set it as the last item in the list, and have put the "Add... Read more
25 January, 2010
Filed under v3.1, Interface and design

This is a follow up to Refactoring CiviCRM's templating system (starting with CSS). It may be helpful to read that first, although it is certainly not necessary. We have made a lot of progress on CiviCRM 3.1's templating system, and I'm quite please to share some of the details of the work with you! In addition to a number of minor fixes and CSS cleanup, the main contribution page template has been re-worked and we have begun implementing many of the ideas outlined in the Layout Standards page. I've also created a new subsection in the Wiki, that deals specifically with templates & theming. I hope that this section will...

Read more
22 September, 2009

In the course of the recent NYC Developer camp, I had the opportunity to discuss the state of CiviCRM's templating system with members of the core team .  In the course of our work with CiviCRM we have done extensive theming and have discovered a number of opportunities for improvement over the current system. In this post I will outline a quick overview of the current state of affairs, and then I'll move on to a broad overview of the changes we would like to see and then specific goals for the 3.1 release.

Current state of affairs


The current templates make extensive use of tables when divs would be more appropriate. This is not in keeping with the Web Content Accessibility Guidelines, specifically, separating structure from presentation (refer to the difference between content, structure, and presentation).  While it may not be possible to follow the WCAG to...

Read more