Last modified: 2012-05-11 14:47:00 UTC
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.
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:
- 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.
- 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
- 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
- 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.
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) (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.
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.
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
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)
> 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.