MediaWiki:Gadget-quickUnwatch.js
Notă: După salvare, trebuie să treceți peste cache-ul browser-ului pentru a vedea modificările.
- Mozilla, Google Chrome, Safari, Konqueror: țineți apăsat Shift în timp ce apăsați butonul Reload (sau apăsați Ctrl-Shift-R).
- Internet Explorer: apăsați Ctrl-F5.
- Opera: apăsați F5.
// 2008, [[:ro:Utilizator:Gutza]], GPL
quickUnwatch={};
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( /* FIXME */
"wfAjaxWatch",
[article_name, "u"],
quickUnwatch.processResult
);
// if the request isn't done in 10 seconds, allow user to try again
mw.config.get('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;
}
};
$(quickUnwatch.onLoad);