User:Isarra/ChangesList

The idea is to take the following classes and reimplement them to be more consistent with each other in a better object-oriented approach - all as implementations of a List object that is made up of the same sort of shared item objects. Each list item as an object, handled in such a way that it allows for a more consolidated user experience.

Classes:
 * [//svn.wikimedia.org/doc/classChangesList.html ChangesList]
 * [//svn.wikimedia.org/doc/classRevisionList.html RevisionList]
 * [//svn.wikimedia.org/doc/classLogEventsList.html LogEventsList]

Others?

Stuff:
 * Consolidate the lot.
 * Extendable objects for the components - perhaps like LogEntry, if it does what it sounds like, except have it extend some general list/feed entry class that they all use...
 * Currently it's all separate
 * ChangesList implementations just write out the list item directly, no way to add other stuff or mess with them without changing the implementation itself
 * No hooks to add in arbitrary other stuff - extension items into watchlists, logs of stuff not in the logging table still showing up in all logs (like a checkuser might want to be able to see if other folks are running checkusers even if they don't go out of their way to check its separate log), handling for notifications, etc
 * Not easily sortable - objects could potentially be better sorted, rather like log entries are currently sortable by type, but allowing for more arbitrary and fine-grained stuff
 * Add hooks for extensions and all that. Extension creates object, inserts it, pow, AFTv5 notification right in the watchlist
 * Might help make changeslist handling of log entries better, too?