Weekly reports on the progress made on T130490
Community Bonding Period | April 22 - May 22
Report can be seen at T135474
Week 1 | May 23 - May 29
- Implement EmailNotification::transformContentToHTML, that accepts string (plaintext version of $body) and returns $body with both text and html fields.
- Enclose hyperlinks within <a> tags, convert newlines to <br/> tags.
- Investigate and capture different kinds of URLs (URL protocols, ending characters, accounting for URLs with commas, etc) using regular expressions.
Week 2 | May 30 - June 5
- Change EmailNotification::transformContentToHTML to accept an i18n key, corresponding to the body of the email.
- Implement $wgCoreHTMLEmail in order to give Wiki admins an option between transforming their emails using EmailNotification::transformContentToHTML() or keeping the current default.
- Investigate Special:Preferences to add user preference for receiving plaintext emails only.
Week 3 | June 6 - June 13
- Add user preference for receiving plaintext emails only to Special:Preference.
- Incorporate user preference in UserMailer::sendMail.
- Initiate discussion on whether HTML in messages is to be supported.
- Investigate incorporating the transformation function into the existing code.
Week 4 | June 14 - June 20
- Discussion on how to incorporate the user's preference in batch emails.
- Incorporate user preference in UserMailer::sendInternal, for batch emails.
- Implement a getter function in MailAddress for the $user object associated with a MailAddress object.
- Investigate templating mechanisms for the conversion to HTML.
Week 5 (Midterm Evaluation) | June 21 - June 27
- Wrapped up pending reviews and bugs in MVP, submitted evaluation to google.
- Initiated discussion with mentors about what is to be done after the i18n team informed us that HTML tags are not be included in messages.
Week 6 | June 28 - July 4
- Discussion with mentors and i18n team with regard to an alternative approach to email formatting, after it was said that HTML tags are no longer allowed in i18n messages.
Week 7 | July 5 - July 12
- Researched on how semantics of the email can be preserved when converting it from wikitext or HTML to plain text.
- Ongoing discussion with mentors, and awaiting reply from i18n team.
Week 8 | July 13 - July 19
Inactive due to certain family commitments and health issues. Also awaiting reply from the i18n team.
Week 9 | July 20 - July 26
- 19th-22nd Jul : Got feedback from Nikerabbit. Worked on revamping the main function, since feedback from Nikerabbit and Siebrand (regarding i18n messages) suggested that work was already ongoing to remove existing HTML formatting from internal system messages, and that only wiki text formatting was acceptable. Found that GMail already follows a lot of HTML to plain text conversions that I thought of, and got a go ahead on it from my mentors. Finalised a workflow of sorts and breakdown of functionality to be implemented into functions to avoid clutter. Started going through the parser code to figure out how to use it.
- 22nd-24th Jul: started writing the functions. Realised that converting wiki text to html and then converting that to plaintext might be a better option. Finished prepareHTMLEmail and transformContentToHTML.
- - 25th Jul: Started work on changing transformContentToPlainText. Faced a little trouble with the regex for transforming links. Went through system messages to see if any other type of text formatting (other than bold, italics, underlined) was being used, but did not find any.
Week 10 | July 27 - Aug 2
- 27th Jul: Tested the written functions, fixed bugs. The functions were now working as expected. The sender could send multipart Emails.
- 28th Jul-2nd Aug: Laptop crashed, hard-disk stopped responding. The workshop took until 2nd Aug to repair it. Got the laptop back on 2nd evening.
Week 11 | Aug 3 - Aug 9
- 3rd Aug: Travelling.
- 4th - 5th: Recovered laptop memory. Integrated the rest of the MVP work in the current patch ( user preferences for single and batch Emails ). Submitted patch.
- 6th: Started looking into branding and templates for the HTML Emails.
- 7th-9th: Looked at Mustache for using templates in HTML Emails, went through the different zurb email templates, to see which one could be used. Awaiting response from mentors and community on whether to use mustache for templating.
Week 12 | Aug 10 - Aug 17
- 10th-12th: Looked at other templates from sendwithus as well. Awaiting response from mentors and community on whether to use mustache for templating.
- 13th-15th: After looking through and comparing templates from zurb and sendwithus, decided that sendwithus templates might be better to work with. Edited sendwithus templates to see which one worked best.
- 15th-17th: Looked into adding images to the templates. Tested different methods to see which one worked on most clients. Realised it would require adding new email headers. Spoke to mentor and decided that a separate patch on it upon further review on the HTML template might be a good idea.
Week 13 | Aug 18 - Aug 23
- 18th: Finalised and edited a sendwithus HTML Email template, tested it on multiple clients. Submitted patch.
- 19th-20th: Looking into email headers for embedded images. Pinged community members and mentor for review. Awaiting response.