Pi’s Blog

My blog about Thunderbird and GSoC 2008

My Recent Lack of Activity

I apologize for my recent lack of activity both on gContactSync and Thunderbird.  I have not vanished from the Open Source scene.  The past month was tough (very busy and not fun) due to some strange medical issues that eventually forced me to go to the hospital.  During that time I had to devote my energy to catching/keeping up with homework, papers, and projects for college as well as my part-time job to help pay for college.

I’m doing well now, and will hopefully find some time to work on gContactSync and a few Thunderbird bugs (like an extended XBL datepicker for the Birthday and (not yet created) Anniversary fields) between homework, finding an apartment, and visiting relatives and friends over my one week off for Thanksgiving break (I also have several computers to fix, remove malware from, and setup for relatives).  I accepted a co-op position (not related to Mozilla) from January until August 2009, so I may have more spare time to work on my extension and Thunderbird.

My first goal is to catch up on bugs, e-mail, etc.  I apologize again for my recent unresponsiveness and inactivity.

Status update

  • Thunderbird
    • Bug 456024 Turn the adapted birthday datepicker into an inherited/extended xbl widget – I’ve had a basic patch for some time now that introduces an extended XBL datepicker widget that allows for blank values for the month and year (with M/D empty text) and removes the year portion of the datepicker
    • Bug 456220 Birthday and month shown in card view aren’t localized well – I just need to have some input on how to solve this.  Using the system settings is fine if the year is present, but if not there are two main choices that I see:

      • Just as the system describes (MM/DD/YYYY for me in US English on Linux, Day Name, Month Name D, YYYY in Windows in US English), but with the YYYY, separator, and  day name & separator removed (if present)
      • Look at how the system does it (find the month/day relative order and the separator between them) and print the month name and day in the detected order with the separator.  However, in Linux this would be inconsistent with the MM/DD/YYYY that I get.
    • Bug 456026 Add day/month order indications to the birthday field on address book contacts – The datepicker bug should fix this
    • Bug 458591 Consider improving the labels on the Birthday Field – I just need some recommendations on how to improve them.  There is an outdated image of the new datepicker here (the card dialog was since changed).  Localizer feedback would be awesome since I only know English and some Spanish.
    • Bug 456025 Implement an anniversary field in the address book – Waiting on the datepicker
  • gContactSync
    • Considering new name (gContacts as it originally was).  Any ideas are welcome
    • Working on replying to recent feedback over e-mail, the mailing list, and blog comments
    • Contrary to what some believe, the gContactSync “team” consists of one busy undergraduate Computer Engineering major only as a volunteer project (started as a paid Google Summer of Code 2008 project)
    • Anyone who wants to help program, fix bugs, or add features is welcome to do so (shoot me an e-mail).  The code has a lot of comments in it.
    • Checking out the poll results from my last post and deciding on what to do after fixing some bugs
    • Bugs
      • 20188 Card Dialog overlay is broken on trunk builds – Trying to figure out the best way to have two totally different overlays
      • 20169 Extra attributes should be disabled for read-only cards – The textboxes and types added are not disabled for read-only cards (like cards found through LDAP)
      • 20153 Groups containing contacts without email addresses break in Thunderbird – Have not figured out the best way to start this yet

November 21, 2008 Posted by | Uncategorized | , , , , | 1 Comment

Birthday Field for Thunderbird’s Address Book

While working on my extension and reading discussions in #maildev, I noticed Bug 13595 – Add Birthday Fields to Address Book is still marked as NEW but has a high priority and a lot of votes in Bugzilla.  With the datepicker XUL element now available and some knowledge of the address book from working on my extension, adding a birthday field should be simple, but I have a few questions about how exactly this should appear.  This post isn’t a promise to fix this since school starts very soon and I’m trying to graduate in 3 years (1 year left after this year), but I’d like to at least get things started so somebody else can finish things up, if I am unable to do so myself.

Question #1: Which type of datepicker should be used?

There are three valid types for the datepicker element

  1. Normal – This just shows a small box that lets one type or increment/decrement the date shown with the arrows
  2. Grid – This shows a calendar and lets one click arrows to change the month (and year) and select a day from the calendar.
  3. Popup – It shows the same box as Normal, but also allows one to chose the date from a calendar like Grid does.

Notes: the two gContactSync tabs are from my extension and the Other tab isn’t necessarily going to be used; it just had the most extra room, and not all three types will be present, obviously.

Question #2 Which tab (for now)?

I know that the new/edit card dialogs might change, but which tab is best until then?  Where should it be located in the tab?

Question #3 What if the user doesn’t change the date?  How can a date be removed?

If the user doesn’t change the date, we probably do not want to save the birthday info.  Right now it only saves the date if it was changed, but there is not a way to remove the date for now.

Question #4 Store the BirthMonth as a number from 0-11 (like JavaScript does) or 1-12?

I tested LDIF import/export of the birthday information, but I remembered that JavaScript treats the month as a number from 0-11 and that is how I store the month.  Storing it as an integer from 0-11 is easiest since it is accessed through JavaScript (and shown from 1-12).


I have created an initial patch that uses a popup datepicker in the Other tab that only sets the card’s BirthDay, BirthMonth, and BirthYear if the datepicker has been updated.  It also adds the birthday to the card view in the format generated by Date.toLocaleDate()

I added BirthDay and BirthMonth to the attribute map in mailnews.js so it will export the birthday information (BirthYear is already present).  CSV and tab imports and exports BirthDay, BirthMonth and BirthYear already.

You can see my current WIP here.

August 17, 2008 Posted by | thunderbird | , , | 4 Comments