Extension:MassMessage/Page input list improvements/Progress reports

Community bonding period

 * Community bonding report

Week of May 19

 * May 20-May 22: Studied ContentHandler and JSON storage by reading documentation and studying Extension:EventLogging.
 * May 23: Looked into how ContentHandler interacts with the revision table.

Week of May 26

 * May 26-May 28: Worked on creating a simple extension using ContentHandler.
 * May 30: Started work on ContentHandler backend for MassMessage.
 * May 31: Continued work on the above; simple patch to reorganise directory structure.
 * June 1: Worked on the special page for managing a list; currently supports creating pages with a dummy content model and editing those pages (GitHub repository).

Week of June 2

 * June 2: Added some i18n strings, started work on processing user input for the special page.
 * June 3-June 4: Finished basic raw watchlist editor-like list editor. User input is parsed and stored as JSON, with invalid titles and duplicates removed.
 * June 6: Added validation for list contents.
 * June 8: Implemented basic display of list contents.

Week of June 9

 * June 9: Submitted.
 * June 11-June 12: Added a wikitext description field and rewrote the code for displaying input lists; refactored some logic.
 * June 13: Added handling for empty lists; escaped i18n messages.
 * June 14: Overrode "Edit" link for delivery lists; added logic for updating links table.
 * June 15: Documented current code; standardised terminology with MassMessage.

Week of June 16

 * June 16-June 17: Split out list creation into a separate special page and rewrote some of the code related to list creation and editing; updated i18n messages; combined new backend code with the main extension.
 * June 18: Added message documentation; fixed issues raised in code review; merged.
 * June 19-June 20: Added links for external targets; changed code to create content objects through ContentHandler; improved validation; added ability for MassMessage to deliver to lists using the new format.
 * June 22: Improved validation and error handling; minor tweaks.

Week of June 23

 * June 23: Simplified MassMessage::normalizeTargets; addressed issues brought up in code review of previous patch.
 * June 24: Worked on improving error handling in Special:EditMassMessageList (code abandoned).
 * June 25: Changed error handling in Special:EditMassMessage, rerouted list creation and editing through API.
 * June 26: Changed list content display to use the Html class for HTML generation.
 * June 27: Added ability to import targets from an existing list or category and refactored code for getting targets ; made site handling more consistent in list storage.
 * June 29: Submitted, worked on code refactoring.

Week of June 30

 * June 30: Worked on code refactoring, submitted as ; submitted.
 * July 1: Discussed and planned user interface for basic list editing and related API with mentors.
 * July 2-July 3: Submitted ; worked on API.
 * July 5-July 6: Worked on API and reducing code duplication (it turns out that the API would do a lot of what Special:EditMassMessageList already does); submitted.

Week of July 7

 * July 7-9: Split some common tasks into utility functions functions and finished API.
 * July 10-13: Worked on adding a JavaScript UI for removing items (WIP at ).

Week of July 14

 * July 14: Finished JavaScript UI for removing items.
 * July 15-16: Worked on a UI for adding items in list view (WIP at ).
 * July 17-18: Finished the above.

Week of July 21

 * July 21-July 22: Addressed issues with UI for adding items raised in code review; fixed handling of '@' in titles in JavaScript UI ; changed the API to allow partially invalid requests.
 * July 23: Implemented redlinks for nonexistent pages in the page-adding UI and added LinkBatch to API and list display.
 * July 24: Made the error message when adding an invalid page more descriptive.
 * July 25: Added helper text for when all pages in a list section have been removed ; attempted to implement a more readable diff.
 * July 26: Added normalization of JSON data on save ; implemented editing of old revisions.
 * July 27: Resolved issues with editing of old revisions raised in code review.

Week of July 28

 * July 28: Finished the above; started work on autocomplete for site entry.
 * July 30-July 31: Finished title and site autocomplete ; continued work on making diffs more readable.
 * August 1-August 2: Finished work on diffs ; improved handling of pre-existing lists with invalid sites and UI for wikis not part of a wikifarm.
 * August 3: Improved the error message shown for invalid targets on Special:EditMassMessageList and edit summaries.

Week of August 4

 * August 4-August 8: Discussed numerous changes to make with User:MZMcBride and worked on implementing them (see Bugzilla comment); implemented warning for blank edit summaries.

Week of August 11

 * Worked on unit tests.

(The official coding period ended on August 18.)