User:Iceblock/Scripts/Seeking-help.js

/*

To use the script, add the following line to Special:MyPage/common.js importScript('User:Iceblock/Scripts/Seeking-help.js'); // Linkback: User:Iceblock/Scripts/Seeking-help.js

* Documentation: This script adds a tab with information on how * many Wikipedians currently are looking for help. * Clicking the tab will open Category:Wikipedians_looking_for_help * * * This script is based on the two scripts * * http://no.wikipedia.org/wiki/MediaWiki:Gadget-HurtigSlett.js * http://en.wikipedia.org/wiki/MediaWiki:Gadget-dropdown-menus.js * * The function createTab2 is taken from * MediaWiki:Gadget-dropdown-menus.js (called createTab there). * It is modified not to include 'mid' and to include 'link'. * It is also modified to check the page name and set the class * name to 'selected' if the page name matches the category name. * The rest of this script is based on MediaWiki:Gadget-HurtigSlett.js * and modified to check Category:Wikipedians_looking_for_help * Under the Vector skin, it places the tab to the left (!) to ensure it is * being displayed on special pages. * * In the function names, 'qd' is replaced with 'seekinghelp'. * * An unused function (function displayQuickDelete) is removed from this script. * */

// Create cactions LI tab function createTab2(cid,ltxt,link) { var elements = { li: document.createElement('li'), a: document.createElement('a'), span: document.createElement('span'), txt: document.createTextNode(ltxt) };       with (elements) { if ( wgPageName == 'Category:Wikipedians_looking_for_help' ) { li.className='selected'; }           li.id = cid; a.href = link; span.appendChild(txt); a.appendChild(span); li.appendChild(a); }       return elements.li; }

/* 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 seekinghelp_create_request {

try { seekinghelp_http = new XMLHttpRequest; } catch (e) { try { seekinghelp_http = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { seekinghelp_http = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Your browser does not support AJAX!"); return false; }   }  }  seekinghelp_http.onreadystatechange = function { if(seekinghelp_http.readyState == 4) seekinghelp_ajax_response; } return true; }

/* make a request */ function seekinghelp_ajax_request {

var api_link = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=query&list=categorymembers&cmtitle=Category:Wikipedians%20looking%20for%20help&format=xml&cmlimit=25';

if (seekinghelp_create_request == false) { return; } // Then make the request seekinghelp_http.open("GET", api_link, true); seekinghelp_http.send(null); }

/* we have received a response */ function seekinghelp_ajax_response {

var refresh_time = 60; var link = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=Category:Wikipedians_looking_for_help&action=purge'; var items = seekinghelp_http.responseXML.getElementsByTagName('cm'); //items.length;

document.getElementById((skin=='vector')?'left-navigation':'p-cactions').getElementsByTagName('div')[0].getElementsByTagName('ul')[0].appendChild(createTab2('ca-seekinghelp', items.length + ' seeking help', link));

/* Repeat */ /* Actually, I think we should not repeat, check if it is updated on page refresh, and if that is enough */ // setTimeout("seekinghelp_ajax_request", refresh_time * 1000); }

addOnloadHook(seekinghelp_ajax_request);