// the usual prayer
if (mw.config.get('wgCanonicalSpecialPageName') == "Contributions" || mw.config.get('wgNamespaceNumber') == 14)
mw.loader.using('mediawiki.api', function() { $(function() {
function i18n(key) {
switch (mw.config.get('wgUserLanguage')) {
case 'he':
switch (key) {
case 'watch':
return '[עקוב]';
case 'unwatch':
return '[הסר]'
case 'watchhint':
return 'הוסף לרשימת המעקב שלי';
case 'unwatchhint':
return 'הסר מרשימת המעקב שלי';
case 'showwatchlinks':
return 'הצג קישוריות מעקב';
}
break;
default:
switch (key) {
case 'watch':
return '[watch]';
case 'unwatch':
return '[unwatch]'
case 'watchhint':
return 'Add to my Watchlist';
case 'unwatchhint':
return 'Remove from my watchlist';
case 'showwatchlinks':
return 'Show watchlist controls';
}
break;
}
return key;
}
var isCat = mw.config.get('wgNamespaceNumber') == 14,
watchList = {},
api = new mw.Api();
function readWatchList(continuation) {
var params = {list: 'watchlistraw', wrlimit: 500, rawcontinue: ''};
if (continuation)
params.wrcontinue = continuation;
api.get(params, function(data) {
if (data && data.watchlistraw)
$.each(data.watchlistraw, function(key, val) { watchList[val.title] = true; });
if (data && data['query-continue'])
readWatchList(data['query-continue']['watchlistraw']['wrcontinue']);
else
colorWatched();
});
}
function watchText(watch) { return (isCat ? ' ':'') + i18n(watch ? 'watch' : 'unwatch');}
function watchTitle(watch){ return i18n(watch ? 'watchhint' : 'unwatchhint');}
function colorWatched() {
var pagesList = isCat ? $('#mw-pages').find('li') : mw.util.$content.find('ul > li');
var all = [];
var all = pagesList.each(function() {
var li = $(this);
var line = li.children().filter('a:last');
var page = line.attr('title');
var watched = watchList[page] || false;
if (watched)
line.addClass('iswatched');
var watchLink = $('<span>', {'class': watched? 'unwatchit-link' : 'watchit-link', title: watchTitle( !watched)})
.text(watchText(! watched))
.click(function() {watchIt($(this), page)})
li.append(watchLink);
});
}
function watchIt(span, page) {
var watched = span.hasClass('unwatchit-link');
api[watched ? 'unwatch' : 'watch'](page, function() {
var lines=$('a').filter(function(){return $(this).text()==page});
lines.parent().children('span.watchit-link, span.unwatchit-link')
.toggleClass('unwatchit-link watchit-link')
.text(watchText(watched))
.attr({title: watchTitle(watched)});
lines.toggleClass('iswatched');
});
}
mw.util.addCSS(
".unwatchit-link{color:#a00; cursor: pointer; font-size: 70%;display:none} \n" +
".watchit-link{color:#008; cursor: pointer; font-size: 70%;display:none} \n" +
".iswatched{font-weight: bolder;} \n" +
"</style> "
)
readWatchList();
var showLink = $('<a>', {href: '#', text: i18n('showwatchlinks')}).click(
function(){
mw.util.addCSS('.unwatchit-link,.watchit-link{display:inline;}');
$(this).remove();
}
);
if ($('#contentSub a').length)
$('#contentSub a:last').after(showLink).after(' | ');
else
$('#contentSub').append(showLink);
})}); // using ... ready