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å: */ /* <-- Brukerside, diskusjon, overvåk, etc. */ /* <-- Brukernavn, min diskusjonsside, innstillinger, etc. */

/* (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);