מדיה ויקי:Gadget-Watchlist.js
קפיצה לניווט
קפיצה לחיפוש
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload), או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh), או ללחוץ על צירוף המקשים Ctrl-F5.
- אופרה: ללחוץ על Ctrl-F5.
if ($.inArray( mw.config.get('wgCanonicalSpecialPageName'), ['Recentchanges', 'Watchlist', 'Newpages']) + 1) $(document).ready(function() { var cannonicalPageName = mw.config.get('wgCanonicalSpecialPageName'); // Adds Watch/Unwatch links to recent-changes list. function wlinrc_setText(element, text) { if (typeof element.innerText != "undefined") element.innerText = text; if (typeof element.textContent != "undefined") element.textContent = text; } function wlinrc_done(span) { if (cannonicalPageName == 'Watchlist') { span.parentNode.removeChild(span); return; } wlinrc_setText(span.firstChild, span.isWatched ? '[עקוב]' : '[הפסק לעקוב]'); span.source.style.fontWeight = span.isWatched ? 'normal' : 'bolder'; span.style.color = span.isWatched ? 'blue' : 'green'; span.isWatched ^= true; } function wlinrc_watchme() { var params = {action: 'watch', title: this.target.replace(' ', '_') , format: 'json'}; if (this.isWatched) params.unwatch = ''; if (mw && mw.user && mw.user.tokens) params.token = mw.user.tokens.get('watchToken'); var span = this; $.post(mw.util.wikiScript('api'), params, function() { wlinrc_done(span); }); wlinrc_setText(this.firstChild, '[נשלח...]'); this.style.color = 'orange'; } function wlinrc_addWatchListLink(element, anchor) { var link, source; if (anchor) { source = anchor; link = anchor.title; } else { var anchors = element.getElementsByTagName('a'); link = ''; source = null; for (var i = 0; i < anchors.length; i++) { anchor = anchors[i]; var linkString = anchor.href; if (linkString && linkString.indexOf('/wiki/', 0) > 0) { link = anchor.title; source = anchor; break; } } if (!link) return; } var span = document.createElement(span); // this is a kludge: we take advantage of the fact that watched pages appear in boldface // in last changes page, with className of "'mw-changeslist-line-watched'" to deduc that this page is watched. var inWatchList = cannonicalPageName == 'Watchlist'; span.isWatched = inWatchList || $(element).closest('.mw-changeslist-line-watched').length; var stopFollowStr = inWatchList ? (mw.user.options.get('watchlistunwatchlinks') === "1" ? null : '[הסר]' ) : '[הפסק לעקוב]'; if (stopFollowStr) span.appendChild(document.createTextNode(span.isWatched ? stopFollowStr : '[עקוב]')); $.extend(span.style, {cursor: 'pointer', color: span.isWatched ? 'green' : 'blue'}); $.extend(span, {onclick: wlinrc_watchme, target: link, source: source}); element.appendChild(span); } // this works in "regular" changes list $('li.mw-line-even, li.mw-line-odd').each(function(i,e){wlinrc_addWatchListLink(e)}); // this works in "enhanced" changes list. var tds = $("td.mw-enhanced-rc").next().each(function() { var a = $(this).find("a:eq(0)"); if (a.length) wlinrc_addWatchListLink(this, a[0]); }); if (cannonicalPageName == 'Newpages') { $(".mw-newpages-time").parent().each(function() { var anchors = $(this).find(".mw-newpages-time").next(); if (anchors.length) wlinrc_addWatchListLink(this, anchors[0]); }); } });