Page MenuHomePhabricator

Allow marking watchlist entries as unread
Open, LowestPublic

Description

It would be great if there was a possibility to mark a certain page version as unread (so that it is displayed bold in the watchlist again after watching).

Event Timeline

WeernFootis1 raised the priority of this task from to Needs Triage.
WeernFootis1 updated the task description. (Show Details)
WeernFootis1 subscribed.

Why not? ;)

To set a "reminder" for a certain task.

Aklapper renamed this task from Feature request: Mark watchlist entries as unread to Allow marking watchlist entries as unread.Mar 17 2015, 2:28 PM
Aklapper triaged this task as Lowest priority.

That sounds like abusing the read/unread status as bookmarks instead of asking for a kind of bookmark feature (cf. T91902: Add a feature to "bookmark" articles, T27501: Tools for readers: bookmarks, suggestions)?
Though I'm scarred that this might be bookmarks on page edits from a list of bookmarks (called "Watchlist").

I don't think it is abuse of the read/unread, and it is actually already supported by the API. However it does require some more thinking on the design.

I'm giving here some scratch script hack that does something very similar (marking as "read" directly from Watchlist), and it should be easy to modify it to send the desired "unread" instead of read.
If someone modify it and find it useful / implements some better UI for it, I will be happy to get feedback here.

API support:
https://en.wikipedia.org/w/api.php?action=help&modules=setnotificationtimestamp

Script:

$(function(){
if(wgCanonicalSpecialPageName==='Watchlist')
{
$('a:contains("DIFF")').each(function(){ //REPLACE DIFF WITH [[MediaWiki:Diff]]. This script will not load the message from the API...
	var diff = /diff=([0-9]+)/.exec($(this).prop('href'));
	if (!diff) return;
	
	$(this).before($('<span>&Otimes;</span>').data('diff', diff[1]).click(function(){
		new mw.Api().postWithToken('csrf', {
			action: 'setnotificationtimestamp', //HERE YOU SHOULD ADD PARAMETERS AS DESIRED
			revids: $(this).data('diff')
		}).done(function(){
			mw.notify('v');
		});
	}));
});
}
});