Utilisateur:Sapindnoel/status.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.//////Merci à Romainhk et Dr Brains pour leur aide.
/* Désactivation */
addOnloadHook(status_nouveauLien);
// Ajoute les liens
function status_nouveauLien() {
var a = document.getElementById("p-personal");
if (a) {
b = a.getElementsByTagName("ul");
if(b.length > 0) {
b[0].innerHTML = b[0].innerHTML
+ '<li id="ca-nstab-user">'
+ '| <a href="javascript:status_majStatus(\'online\');">'
+ '<font color=green>Online</font></a>'
+ ' <a href="javascript:status_majStatus(\'busy\');">'
+ '<font color=grey>Busy</font></a>'
+ ' <a href="javascript:status_majStatus(\'offline\')">'
+ '<font color=red>Offline</font></a></li>';
}
}
}
function status_Ajax(){
var xmlhttp;
try {
xmlhttp = new XMLHttpRequest();
} catch(e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xmlhttp = false
}
}
}
return xmlhttp;
}
function status_majStatus(statut) {
var URL = mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=" + mw.config.get('wgFormattedNamespaces')[2] + ":" + encodeURIComponent(mw.config.get('wgUserName')) + "/Status&action=edit";
var xmlhttp = status_Ajax();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState != 4) return;
while(document.body.firstChild){ document.body.removeChild(document.body.firstChild); }
document.body.innerHTML = xmlhttp.responseText;
document.editform.style.display = "none";
status_saveStatus(statut);
};
xmlhttp.open("GET",URL,true);
xmlhttp.send(null);
}
function status_saveStatus(statut){
var xmlhttp = status_Ajax();
if(!xmlhttp) return;
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4)
document.location = mw.config.get('wgServer') + mw.config.get('wgArticlePath').split('$1').join(mw.config.get('wgPageName'));
};
var URL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=edit';
var EditParam = new Array();
EditParam["token"] = encodeURIComponent(document.editform.wpEditToken.value);
EditParam["title"] = encodeURIComponent(mw.config.get('wgFormattedNamespaces')[2]+":"+mw.config.get('wgUserName')+"/Status");
EditParam["watchlist"] = "nochange";
EditParam["minor"] = "1";
EditParam["summary"] = encodeURIComponent(statut);
EditParam["text"] = encodeURIComponent(statut);
var Params = new Array();
for(var Param in EditParam){
if(EditParam[Param] || EditParam[Param]=="") Params.push(Param+"="+EditParam[Param]);
}
Params = Params.join("&");
xmlhttp.open("POST",URL,true);
try { xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); } catch(err) { }
xmlhttp.send(Params);
}