Modify ↓
Opened 16 years ago
Closed 16 years ago
#4091 closed enhancement (fixed)
Watchlist like the one on Wikipedia
Reported by: | Martin Scharrer | Owned by: | Martin Scharrer |
---|---|---|---|
Priority: | normal | Component: | Request-a-Hack |
Severity: | normal | Keywords: | |
Cc: | Trac Release: | 0.11 |
Description
Logged-in users should have an entry on the meta-nav-bar which allows them to add or remove the current wiki page to a personal watch list. Then there should be a page (e.g. /watchlist
) which displays all the watched wiki pages with name, last change date and author, as well as links to diffs and a remove button, etc. See http://en.wikipedia.org/wiki/Special:Watchlist for reference.
Adding tickets to the watch list would be an additional feature.
My thought about the implementation:
- Create table
watchlist
with user,id,realm. Id is the wiki name or ticket number and the realm is eitherwiki
orticket
(IEnvironmentSetupParticipant). - Implement an INavigationContributor to add a meta-nav link for all wiki or ticket pages.
If the wiki or ticket isn't already watched it should be an
add
button, otherwise anremove
button. - If the current user has a (non-empty) watchlist the main-nav should have a
watchlist
button to point to/watchlist
. - The watchlist is displayed using an IRequestHandler and a SQL query like:
select name,author,MAX(time) from wiki where name in (select id from watchlist where user = 'martin' and realm = 'wiki') group by name order by time;
. - An custom Genshi template can be used for this (ITemplateProvider).
I might implement it by myself if I find the time.
Attachments (0)
Change History (3)
comment:1 Changed 16 years ago by
Summary: | Watch list like the one on Wikipaedia → Watchlist like the one on Wikipedia |
---|
comment:2 Changed 16 years ago by
Owner: | changed from anybody to Martin Scharrer |
---|---|
Status: | new → assigned |
comment:3 Changed 16 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
I started now implementation of the WatchlistPlugin.