Last modified: 2012-05-11 14:47:00 UTC
Problem: When checking watchlist entries I want to see all changes since I last viewed the page. The current software gives only a diff link to the latest change. Therefore, I have to go to the history page, remember or guess when I have last viewed the article, click the respective radio button, click the submit button, and wait for the final diff page. Solution: If there is more than one change to a page then the diff link will directly display all these changes. Additionally, a diff link for the last change will also be provided. The hack only applies to the new watchlist / history /recent changes view introduced in MediaWiki 1.5 were article links are highlighted. The hacked watchlist will look like this: 22:49 Main Page (diff; hist) . . Corina (Talk) 22:43 Help Page (diff; hist) . . last: Mike (Talk) The first line is a watchlist entry that has already been checked - nothing changes for these. The article in the second line has been changed and is displayed bold. Because it has been changed more than once the 'diff' link will show all these changes and the 'last' link will show only the last change.
The hacked 1.5rc4 scripts can be found as attachments. The changed locations are marked #####. The changed files / funtions are: Article.php: - view(): Run view updates also for diff view. Otherwise the watchlist markers are not reset even if I have checked the recent changes from my watchlist. ChangesList.php: - recentChangesBlockLine(): Generate the 'last' diff link in front of the username if there are more than two new changes. - recentChangesLineNew(): Get the 'lastdiff' message from wfMsg. In english this is displayed as 'last'. - recentChangesLineNew(): Get the notification timestamp for watchlist entry. This value is passed from SpecialWatchlist.php to the variable $watched. - recentChangesLineNew(): Check if the watched article has more than one not viewed revisions. - recentChangesLineNew(): Find the last viewed revision. The database engine has to find the highest revision id with a timestamp < notificationtimestamp (assuming that the id's are numbered chronologically). - recentChangesLineNew(): If there are more than two changed revisions then set the diff link to all changes and the lastdiff link to the last change. - recentChangesLineNew(): also return the lastdiff link UserMailer.php: - notifyOnPageChange(): If a watchlist entry already has a timestamp do not set the timestamp again. This seems to be a bug that had no effect yet. Language.php: The 'lastdiff' link displays as 'last' in front of the username.
Created attachment 885 [details] hacked 1.5rc4 Article.php
Created attachment 886 [details] hacked 1.5rc4 ChangesList.php
Created attachment 887 [details] hacked 1.5rc4 UserMailer.php
Created attachment 888 [details] hacked 1.5rc4 Language.php
Sorry, you missed to consult and install my EnotifWiki; see it live on http://www.enotifwiki.org -- watch the third link in recent changes and the garish green updated marker, which is clickable and directs you directly to the diff view. (diff) (last seen) (hist) which has all changes since your last visit
The http://www.enotifwiki.org is Helpdesk, Documentation and Donwload page (download from the BerliOS Open Source repository incl. live CVS)
(In reply to comment #6) > Sorry, you missed to consult and install my EnotifWiki; see it live on > http://www.enotifwiki.org -- If you check my hack you will see that my changes use your existing enotif changes which in 1.5rc4 do not add the current feature to watchlists (at least I didn't find it). > watch the third link in recent changes and the > garish green updated marker, which is clickable and directs you directly to the > diff view. (diff) (last seen) (hist) That's recent changes - how does it look in watchlists. What do you think about the "(diff; hist) . . last: " style on watchlists which might be a bit more intuitive and self-explaining than a "(diff) (last seen) (hist)" style.
> (In reply to comment #6) > If you check my hack you will see that my changes use your existing enotif > changes which in 1.5rc4 do not add the current feature to watchlists (at least I > didn't find it). Sorry Niels: mea culpa maxima - I haven't expected that and apologise. > > That's recent changes - how does it look in watchlists. What do you think about > the "(diff; hist) . . last: " style on watchlists which might be a bit more > intuitive and self-explaining than a "(diff) (last seen) (hist)" style. Fine. I already proposed in another bugzilla to rename "(diff)(hist)" to "(prev)(hist)" so that Enotif could use "(prev)(last)(hist)", but this was dismissed by the developers due to change of user interface. I'll check your patch later; I like to have watchlist, recent changes _and_ history view in the very same layout, which is currently not the case, neither in MediaWiki nor EnotifWiki. You started to make watchlist layout similar to rc, this seems to be a good initiative. It would also allow to refactor the software RecentChangesLine and so on.
Hi Thomas, did you have a closer look at the proposed changes? I still like this "(diff, hist) .. last:" watchlist style (where the 'diff' link diffing over all new edits, and the 'last' link diffing the last edit). It would be "backward campatible" (to please the developers :-) ) and it does exactly what a naive user would expect the links to do. How could we 'push' this or a similar change to be incorporated into the software. I do really miss this feature during my daily WikiPedia work! The next related change would be some kind of marker (e.g. a partial history list) on the diff page to indicate that this is a diff over several independent edits.
I would prefer a button that would show changes since your last edit. This would be better than last page view, because it's possible for a person to browse that page on Wikipedia without checking the history.
Changed component to "Watchlist"
There have been several different requests in this bug, but this is the original one: (In reply to comment #0) > Solution: > > If there is more than one change to a page then the diff link will directly > display all these changes. This is fixed by the enhanced RC + show all changes preferences, since a while ago.