מדיה ויקי:Gadget-watchlistMark.js
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload), או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh), או ללחוץ על צירוף המקשים Ctrl-F5.
- אופרה: ללחוץ על Ctrl-F5.
// the usual prayer if ((mw.config.get('wgNamespaceNumber') == -1 && mw.config.get('wgCanonicalSpecialPageName') == "Contributions") || (mw.config.get('wgNamespaceNumber') == 14)) $(document).ready(function() { var isCat = mw.config.get('wgNamespaceNumber') == 14; var watchList = {}; function readWatchList(continuation) { var params = { action: 'query', list: 'watchlistraw', wrlimit: 'max', format: 'json', rawcontinue: 1 }; if (continuation) params.wrcontinue = continuation; $.getJSON(mw.util.wikiScript('api'), 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 ? ' ':'') + (watch ? '[עקוב]' : '[הסר]');} function watchTitle(watch){ return watch? 'הוסף לרשימת המעקב שלי' : 'הסר מרשימת המעקב שלי';} function colorWatched() { var pagesList = isCat ? $('#mw-pages').find('li') : mw.util.$content.find('ul > li'), 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); }), showLink = $('<a>', {href: '#', text:'הצג קישוריות מעקב'}).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); } function watchIt(span, page) { var watched = span.hasClass('unwatchit-link'); var params = {action: 'watch', title: page, format: 'json'}; if (watched) params.unwatch = ''; if (mw && mw.user && mw.user.tokens) params.token = mw.user.tokens.get('watchToken'); $.post(mw.util.wikiScript('api'), params, 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;}" ); readWatchList(); }); // document ready