From: Jason Munro <jason@ha...> - 2008-06-02 02:53:03
It was yet another busy week of development with 20 SVN commits since last
weeks update, including some large language translation related changes. The
code is now stable enough for our first beta release which will be announced
shortly after this update is posted. Read on for more details on whats new.
-Several updates to the interface language system. Ported the Chinese, French,
Spanish, and Ukranian language files from the Hastymail 1 code. Doing so only
provides about 1/4 of the strings required for for a complete interface
translation, but after porting a few it illuminated several bugs that are now
fixed and it gives translators a head start on a complete translation. During
the beta release cycle the remaining Hastymail 1 translations will be ported
-Added arrows for previous/up/next dropdown menus on the message view. These
dropdowns allow users to delete/flag/unread a message while moving around the
mailbox, but without some sort of additional visual indicator their purpose is
-Fixed a bug that would not allow a folder with a quote in the name to be
selected. There may be other IMAP operations that are not handling this
correctly and if so they should be fixed by the next update.
-Fixed a bug that caused the "previous and next in search" links to be in an
incorrect order, now they follow the order of the search results (newest
-Added the affected mailbox name to message action notices (ala Hastymail 1).
Not a significant change but nice to have.
-Fixed a bug with saving sent or draft messages with attachments. Saving a
message requires the use of the IMAP APPEND command. To properly do this we
need the exact octet count of a message including all the attachments it
contains, mime headers, messages headers, etc. Because of memory limitations
getting the exact size can be tricky and a bug during IMAP testing that caused
the APPEND command to fail when the message had attachments is fixed.
-Added on demand IMAP connection support. Previously we were establishing a
connection to the IMAP server on every page load (once logged in). Now the
class automatically connects when the first query or command is issued. This
way pages that don't require any IMAP communication don't incur the overhead,
and there is no need to check for the connection when working with the IMAP
-Improved the AJAX update system to use less resources. This is a nice
optimization that reduces the amount of data returned to a page via AJAX
callbacks. AJAX updates now return false when the state of the account is
unchanged. It's a pretty slick improvement that "short circuits" the AJAX
makes this tricky is that multiple instances (for example 2 tabs open to the
same logged in account) can cause the cache to be incoherent. We account for
this with a simple instance check during AJAX callbacks that helps identify
which instance needs an update and which does not.
-W3c validation fixes. I ran all the main pages through the W3C validation for
XHTML transitional and fixed any warnings generated.