MediaWiki:Gadget-quickUnwatch.js
Notă: După publicare, trebuie să treceți peste memoria cache a navigatorului pentru a putea vedea modificările:
- Firefox / Safari: Țineți apăsat pe Shift în timp ce faceți clic pe Reîncărcare ori apăsați Ctrl-F5 sau Ctrl-R (⌘-R pe un sistem Mac);
- Google Chrome: Apăsați Ctrl-Shift-R (⌘-Shift-R pe un sistem Mac);
- Internet Explorer / Edge: Țineți apăsat pe Ctrl în timp ce faceți clic pe Reîmprosptare sau apăsați Ctrl-F5;
- Opera: Apăsați Ctrl-F5.
// 2008, [[w:ro:Utilizator:Gutza]], GPL
quickUnwatch=new Object;
quickUnwatch.onLoad = function()
{
this.unwatching=false;
if (mw.config.get('wgCanonicalSpecialPageName') != "Watchlist") {
return false;
}
var links=document.getElementsByTagName('a');
for(var i=0;i<links.length;i++) {
if (links[i].href.indexOf('action=history')==-1) continue;
var article_link=links[i+1];
var article_name=article_link.innerHTML;
var newnode=document.createElement("span");
newnode.innerHTML="(<a href='#' onClick='quickUnwatch.unwatch(\""+article_name+"\"); return false'>-u</a>) ";
article_link.parentNode.insertBefore(newnode,article_link);
}
}
quickUnwatch.unwatch = function(article)
{
if (this.unwatching) {
alert("Already unwatching!");
return false;
}
this.unwatching=true;
if (mw.config.get('wgCanonicalSpecialPageName') != "Watchlist") {
return false;
}
var links=document.getElementsByTagName('a');
for(var i=0;i<links.length;i++) {
if (links[i].href.indexOf('action=history')==-1) continue;
var article_link=links[i+2]; // we now have the "(u)" in between
var article_name=article_link.innerHTML;
if (article_name!=article) {
continue;
}
links[i+1].innerHTML="…";
break;
}
sajax_do_call(
"wfAjaxWatch",
[article_name, "u"],
quickUnwatch.processResult
);
// if the request isn't done in 10 seconds, allow user to try again
wgAjaxWatch.timeoutID = window.setTimeout(
function() { quickUnwatch.unwatching = false; quickUnwatch.restoreLink(article_name); },
10000
);
}
quickUnwatch.processResult = function(request)
{
var response = request.responseText;
if( response.match(/^<u#>/) ) {
window.location="/w/index.php?title=Special:Watchlist&action=purge";
} else {
// Either we got a <err#> error code or it just plain broke.
alert("Unwatch failed, please try again!");
quickUnwatch.unwatching = false;
return;
}
if(quickUnwatch.timeoutID) {
window.clearTimeout(quickUnwatch.timeoutID);
}
}
quickUnwatch.restoreLink = function(article)
{
if (mw.config.get('wgCanonicalSpecialPageName') != "Watchlist") {
return false;
}
var links=document.getElementsByTagName('a');
for(var i=0;i<links.length;i++) {
if (links[i].href.indexOf('action=history')==-1) continue;
var article_link=links[i+2]; // we now have the "(u)" in between
var article_name=article_link.innerHTML;
if (article_name!=article) {
continue;
}
links[i+1].innerHTML="-u";
break;
}
}
hookEvent("load", quickUnwatch.onLoad);