AJAX features from DIMP integrated into IMP

Michael Slusarz recently "backported" two AJAX features from DIMP to IMP, namely the spell checker and the address lookups.

It looks like DIMP is becoming an incubator project for new IMP features, at least two new features have found they way from the AJAX-only webmail client DIMP into our webmail flagship IMP.

Address expansion 


 Address expansion
The first is an improvement for the address expanion in IMP's compose window. Until now you have no less than three methods to get names and addresses into the recipient fields of the message composition form:
  1. You can use an address book popup to search for certain names or addresses in your address books, or list the complete address books, pick the recipients you want, and assign them to the various recpient fields (To:, Cc:, Bcc:).
  2. You can enter part of a name or email address into the recipient fields and hit the "Expand" button. The page reloads and the name fragments are replaced with complete addresses, looked up from your address books. If the address book search returned multiple results, you can pick one from a drop down list.
  3. Name and address fragments are expanded automatically in the background as soon as you move the focus out of the recipient field. The name parts are replaced with the full matches from the address books while you keep typing somewhere else in the compose view. Multiple matches are not supported, if the search returned more than one result, you have to use method 2. This last method already uses an AJAX technique based on hidden IFRAMEs.

The latter two methods are completely replaced by the new method which works like combination of these two. While you type name or address fragements in the recipient fields, as soon as you stop typing for a short period, an address book lookup is started in the background and a drop down list is displayed with all matching contacts. You can pick the correct one with the mouse or the arrow buttons, or continue typing the name to further narrow down the search. Browsers that don't support AJAX requests still get the expand button.

Spell checking

 Spell checker in action

The current spell checker is a mess. If you start spell checking, a new view is loaded into the compose window and you have to wade through pages of ugly forms displaying the spelling errors and possible replacements. It doesn't support spell checking in a language different from the current interface language, doesn't support different spell check backends, and you don't even want to know how the backend code looks like.

 Selecting a replacment

The new spell checker is a salvation compared to that. The spell checking happens "in-place", i.e. the page doesn't get reloaded when you click the spell check button. Instead the text field where you write your email message is turned into a non-editable field with all potential spelling errors underlined in red. If you click on the marked words with the mouse, you get a drop down list with possible replacements that you can select with the mouse or the arrow keys. If you selected a replacement, the underline is turning green, but you can still select a different replacement by clicking on the word.

 Selecting a language

If you want to start the spell checker for a different language than the one you currently use in your interface, you click the small arrow next to the spell check button. Up pops another drop down list with all supported languages. If you are finished, you click again on the spell check button (now called "Resume Editing"), and get the text field back with all your corrections.


Both features are currently only implemented in the CVS HEAD branch and will be released with IMP 4.2. There is no planned release date for 4.2 yet, we will wait for the Horde 3.1/IMP 4.1 releases to stabilize before we start the Horde 3.2 release cycle which should happen in the second half of this year.