User:Iceblock/Scripts/Helpdesk.js
/*
* Documentation: This script adds a link to the personal tools
* with information about the latest Help desk post.
* Clicking the tab will show the latest Help desk diff.
*
*
* This script is based on the script
*
* http://no.wikipedia.org/wiki/MediaWiki:Gadget-HurtigSlett.js
*
* In this script, the query string and links are modified to check the Help desk revision info.
* In the function names, 'qd' is replaced with 'helpdesk'.
*
* An unused function (function displayQuickDelete()) is removed from this script.
*
*/
/* Memo to self, den som skal sjekkes mot er denne */
/* http://no.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=Kategori:Sider%20som%20er%20foresl%E5tt%20raskt%20slettet&format=xml */
/* Vi har to mulige valg å legge denne på: */
/*
/*
/* (function displayQuickDelete() removed) */
/* init ajax */
function helpdesk_create_request() {
try {
helpdesk_http = new XMLHttpRequest();
} catch (e) {
try {
helpdesk_http = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
helpdesk_http = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("Your browser does not support AJAX!");
return false;
}
}
}
helpdesk_http.onreadystatechange = function() {
if(helpdesk_http.readyState == 4) helpdesk_ajax_response();}
return true;
}
/* make a request */
function helpdesk_ajax_request() {
var api_link = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=query&prop=revisions&titles=Wikipedia:Help%20desk&format=xml';
if (helpdesk_create_request () == false) {
return;
}
// Then make the request
helpdesk_http.open("GET", api_link, true);
helpdesk_http.send(null);
}
/* we have received a response */
function helpdesk_ajax_response() {
var refresh_time = 60;
var link = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=Wikipedia:Help_desk&diff=cur';
var items = helpdesk_http.responseXML.getElementsByTagName('rev')[0].getAttribute('comment');
var user = helpdesk_http.responseXML.getElementsByTagName('rev')[0].getAttribute('user');
//items.length;
var aNode = document.createElement('a');
var liNode = document.createElement('li');
aNode.appendChild(document.createTextNode('Latest Help desk post (by ' + user + ')' + (items.length>0?': ':'') + items));
aNode.setAttribute('href', link);
aNode.setAttribute('id', 'pt-helpdesk');
liNode.appendChild(aNode);
liNode.className='plainlinks';
document.getElementById('p-personal').getElementsByTagName('ul')[0].insertBefore(liNode, document.getElementById('p-personal').getElementsByTagName('ul')[0].getElementsByTagName('li')[0]);
/* Repeat */
/* Actually, I think we should not repeat, check if it is updated on page refresh, and if that is enough */
// setTimeout("helpdesk_ajax_request()", refresh_time * 1000);
}
$(helpdesk_ajax_request);